Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

CStateObservable.hpp

Go to the documentation of this file.
00001 
00002 #ifndef CStateObservable_h
00003 #define CStateObservable_h 1
00004 
00005 // EState
00006 #include "jic/base/EState.hpp"
00007 // CObserver
00008 #include "jic/base/CObserver.hpp"
00009 // stl_base
00010 #include "jic/base/stl_base.hpp"
00011 #include <iostream>
00012 
00013 class CStateObservable 
00014 {
00015 
00016   public:
00017       CStateObservable();
00018 
00019       CStateObservable(const CStateObservable &right);
00020 
00021       ~CStateObservable();
00022 
00023       CStateObservable & operator=(const CStateObservable &right);
00024 
00025       friend std::ostream & operator<<(std::ostream &stream,const CStateObservable &right);
00026 
00027       friend std::istream & operator>>(std::istream &stream,CStateObservable &object);
00028 
00029       void removeObserver (CObserver& observer);
00030 
00031       void addObserver (CObserver& observer);
00032 
00033       void changeState (EState newState);
00034 
00035       EState getState () const;
00036 
00037       const VECTOR_pCObserver get_observers () const;
00038       void set_observers (VECTOR_pCObserver value);
00039 
00040     // Additional Public Declarations
00041 
00042   protected:
00043     // Additional Protected Declarations
00044 
00045   private:
00046 
00047       void notifyObservers ();
00048 
00049       const EState get_state () const;
00050       void set_state (EState value);
00051 
00052     // Additional Private Declarations
00053 
00054   private: 
00055     // Data Members for Associations
00056 
00057       EState m_state;
00058 
00059       VECTOR_pCObserver m_observers;
00060 
00061     // Additional Implementation Declarations
00062 
00063 };
00064 
00065 // Class CStateObservable 
00066 
00067 inline const EState CStateObservable::get_state () const
00068 {
00069   return m_state;
00070 }
00071 
00072 inline void CStateObservable::set_state (EState value)
00073 {
00074   m_state = value;
00075 }
00076 
00077 inline const VECTOR_pCObserver CStateObservable::get_observers () const
00078 {
00079   return m_observers;
00080 }
00081 
00082 inline void CStateObservable::set_observers (VECTOR_pCObserver value)
00083 {
00084   m_observers = value;
00085 }
00086 
00087 #endif

Generated on Wed Mar 5 21:31:47 2003 for JIC by doxygen1.3-rc3