KSquare Utilities
KKObserver.h
Go to the documentation of this file.
1 /* KKObserver.cpp -- Used to manage call-back functions in a multi-threaded environment.
2  * Copyright (C) 2012 - 2014 Kurt Kramer
3  * For conditions of distribution and use, see copyright notice in KKB.h
4  */
5 
6 #if !defined(_KKOBSERVER_)
7 #define _KKOBSERVER_
8 
9 #include "MsgQueue.h"
10 
11 
12 
13 namespace KKB
14 {
15  #if !defined(_KKOBSERVABLE_)
16  class KKObservable;
18  #endif
19 
20 
21  /**
22  *@brief The base class to be used by Observer classes.
23  *@details And application would register instances of a Observer
24  */
25  class KKObserver
26  {
27  public:
29 
30  KKObserver (const KKStr& _name);
31 
32  virtual ~KKObserver ();
33 
34 
36 
37  virtual void Notify (KKObservablePtr obj);
38 
39  const KKStr& Name () const {return name;}
40 
41  private:
42 
43  /** @brief Called by "KKObserver::RegisterObservable. */
44  void RegisterObservable (KKObservablePtr observable);
45 
46  /** @brief Called by "KKObserver::RegisterObservable. */
47  void UnRegisterObservable (KKObservablePtr observable);
48 
49 
50  KKStr name;
51  multimap<KKObservablePtr,KKObservablePtr> observables; /**< List of Observable instances that we are registered with. */
52  multimap<KKObservablePtr,KKObservablePtr>::iterator observablesIdx;
53 
54  friend class KKObservable;
55  }; /* KKObserver */
56 
57  typedef KKObserver::KKObserverPtr KKObserverPtr;
58 
59 
60 } /* KKB*/
61 
62 #endif
The base class to be used by Observer classes.
Definition: KKObserver.h:25
__int32 kkint32
Definition: KKBaseTypes.h:88
virtual void Notify(KKObservablePtr obj)
Definition: KKObserver.cpp:85
const KKStr & Name() const
Definition: KKObserver.h:39
KKObserver * KKObserverPtr
Definition: KKObserver.h:28
KKTHread * KKTHreadPtr
virtual ~KKObserver()
Definition: KKObserver.cpp:40
kkint32 MemoryConsumedEstimated()
Definition: KKObserver.cpp:55
KKObserver(const KKStr &_name)
Definition: KKObserver.cpp:32
static KKStr Concat(const std::vector< std::string > &values)
Concatenates the list of &#39;std::string&#39; strings.
Definition: KKStr.cpp:1082
KKObservable * KKObservablePtr
Definition: KKObserver.h:16
friend class KKObserver
Definition: KKObservable.h:46
friend std::ostream & operator<<(std::ostream &os, const Matrix &matrix)