00001 #ifndef _Observer_h
00002 #define _Observer_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 class Observable;
00016
00028 class Observer
00029 {
00030 public:
00031
00032
00035 Observer(void);
00036
00037
00040 virtual ~Observer(void);
00041
00042
00043
00044
00045
00046
00051 virtual void Update() = 0;
00052
00053
00054
00055
00056
00057
00058
00059 protected:
00060 std::set<const Observable*> mObservables;
00061
00062 private:
00063
00064 friend class Observable;
00065
00066 void AddObservable(const Observable* pObservable);
00067 void RemoveObservable(const Observable* pObservable);
00068
00069 };
00070
00071
00072
00073
00074
00075
00076
00077 #endif // _Observer_h