Observer.h

Go to the documentation of this file.
00001 /* $Id: Observer.h,v 1.7 2005/06/10 07:49:02 pfb Exp $ */
00002 
00003 #ifndef _Observer_h
00004 #define _Observer_h
00005 
00010 class Subject;
00011 
00012 #include <list>
00013 
00020 class Subject;
00021 
00022 class Observer
00023   {
00024   //****************************************************************************
00025                              public:
00026 
00027   friend class Subject;
00028 
00032   Observer();
00033 
00037   virtual ~Observer();
00038 
00043   int numberOfSubjects() const;
00044 
00052   virtual void notify();
00053 
00054   //****************************************************************************
00055                              protected:
00056 
00061   void addSubject(Subject *subject);
00062 
00067   void removeSubject(Subject *subject);
00068 
00069   //****************************************************************************
00070                              private:
00071 
00078   void Observe(Subject *subject);
00079 
00088   void unObserve(Subject *subject);
00089 
00090   typedef std::list<Subject *>::iterator ListIterator;
00091   std::list <Subject *>sublist;
00092   };
00093 
00094 /*
00095  * $Log: Observer.h,v $
00096  * Revision 1.7  2005/06/10 07:49:02  pfb
00097  * Changes made as a result of dev. machine update from woody to sarge.
00098  * Most of the changes are because of the upgrade from gcc-2.95 to gcc-3.3.
00099  *
00100  * Revision 1.6  2005/05/10 17:08:02  pfb
00101  * Added module info.
00102  *
00103  * Revision 1.5  2003/02/26 05:32:52  pfb
00104  * Added comments.
00105  *
00106  * Revision 1.4  2003/02/25 13:55:49  pfb
00107  * Added numberOfSubjects().
00108  *
00109  * Revision 1.3  2003/02/24 03:01:13  pfb
00110  * Added Observe() and unObserve().
00111  *
00112  * Revision 1.2  2003/02/24 02:28:36  pfb
00113  * Added expansion keywords etc.
00114  *
00115  *
00116  */
00117 
00121 #endif  // _Observer_h
00122