00001 /* -*- mode:c++ -*- */ 00002 00016 class Observable 00017 { 00018 %TypeHeaderCode 00019 #include "pattern/Observable.h" 00020 #include "pattern/Observer.h" 00021 %End 00022 00023 public: 00024 00027 typedef std::list < Observer * > ObserverList_t; 00028 00031 virtual ~ Observable (); 00032 00034 virtual void addObserver ( Observer * ); 00035 00036 // /** Returns the list of observers. */ 00037 // const ObserverList_t & getObservers () const; 00038 00040 void removeObserver ( Observer * ); 00041 00048 virtual void notifyObservers () const; 00049 00050 // /** The member function of the Observer that is called. */ 00051 // typedef void ( Observer::*Action ) ( const Observable * ); 00052 00053 00054 00055 protected: 00056 00057 Observable (); 00058 //virtual ~Observable (); 00059 00060 // /** An internal method to iterate over all observers and 00061 // to send the message @a action. */ 00062 // void notifyObservers ( Action action ) const; 00063 };