00001
00009 #ifndef _Observable_h
00010 #define _Observable_h
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "Observer.h"
00021
00022
00023
00024
00025 class Observable
00026 {
00027 public:
00028
00029
00032 Observable(void);
00033
00034
00040 virtual ~Observable(void);
00041
00042
00043
00044
00045
00046
00055 virtual void AttachObserver(Observer* pObserver) const;
00056
00066 virtual void DetachObserver(Observer* pObserver) const;
00067
00068
00069
00070
00071
00072 protected:
00078 void NotifyObservers() const;
00079
00080 private:
00081 mutable std::vector<Observer*> mObservers;
00082 };
00083
00084
00085
00086
00087
00088
00089
00090 #endif // _Observable_h