KSquare Utilities
KKObservable.h
Go to the documentation of this file.
1 /* KKObservable.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 #if !defined(_KKOBSERVABLE_)
6 #define _KKOBSERVABLE_
7 
8 #include <map>
9 
10 #include "MsgQueue.h"
11 
12 
13 
14 namespace KKB
15 {
16  #if !defined(_KKOBSERVER_)
17  class KKObserver;
18  typedef KKObserver* KKObserverPtr;
19  #endif
20 
21 
22  /**
23  *@brief The base class to be used by Observer classes.
24  */
26  {
27  public:
29 
30  KKObservable ();
31 
32  virtual ~KKObservable ();
33 
35 
36  virtual void RegisterObserver (KKObserverPtr observer);
37 
38  virtual void UnRegisterObserver (KKObserverPtr observer);
39 
40  virtual void NotifyObservers ();
41 
42  private:
43  std::multimap<KKObserverPtr,KKObserverPtr> observers;
44  std::multimap<KKObserverPtr,KKObserverPtr>::iterator observersIdx;
45 
46  friend class KKObserver;
47  }; /* KKObservable */
48 
50 
51 } /* KKB*/
52 
53 #endif
virtual void UnRegisterObserver(KKObserverPtr observer)
virtual ~KKObservable()
virtual void RegisterObserver(KKObserverPtr observer)
__int32 kkint32
Definition: KKBaseTypes.h:88
virtual void NotifyObservers()
KKTHread * KKTHreadPtr
KKObservable * KKObservablePtr
Definition: KKObservable.h:28
KKObservable * KKObservablePtr
Definition: KKObserver.h:16
friend class KKObserver
Definition: KKObservable.h:46
kkint32 MemoryConsumedEstimated()