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

CTasksControler.hpp

Go to the documentation of this file.
00001 
00002 #ifndef CTasksControler_h
00003 #define CTasksControler_h 1
00004 
00005 #include <list>
00006 
00007 // CObserver
00008 #include "jic/base/CObserver.hpp"
00009 // CControler
00010 #include "jic/base/CControler.hpp"
00011 // CTaskException
00012 #include "jic/exc/CTaskException.hpp"
00013 
00014 namespace TASK {
00015   class CTask;
00016 
00017 } // namespace TASK
00018 
00019 namespace TASK {
00020 
00021   typedef std::list<CTask *> ListTasks;
00022 
00023   //    Controlador de tareas.
00024   //    Tiene la responsabilidad de controlar las tareas que se
00025   //    han registrado con él.
00026   //    Toda tarea tiene un estado. Cuando se crea se crea con
00027   //    el estado not working.
00028 
00029   class CTasksControler : public CControler, 
00030                                 public CObserver  
00031   {
00032 
00033     public:
00034         CTasksControler();
00035 
00036         CTasksControler (const std::string &strName);
00037 
00038         virtual ~CTasksControler();
00039 
00040         virtual void start ();
00041 
00042         virtual void stop ();
00043 
00044         void registerTask (CTask *pTask);
00045 
00046         virtual void update (CStateObservable& obj);
00047 
00048       // Additional Public Declarations
00049 
00050     protected:
00051 
00052         CTask * findTaskFromState (CStateObservable &state) throw (CTaskException);
00053 
00054         bool existsTask (CTask *pTask);
00055 
00056       // Data Members for Associations
00057 
00058         ListTasks m_listTasks;
00059 
00060       // Additional Protected Declarations
00061 
00062     private:
00063         CTasksControler(const CTasksControler &right);
00064 
00065         CTasksControler & operator=(const CTasksControler &right);
00066 
00067       // Additional Private Declarations
00068 
00069     private: 
00070       // Data Members for Class Attributes
00071 
00072         std::string m_strName;
00073 
00074       // Additional Implementation Declarations
00075 
00076   };
00077 
00078   // Class TASK::CTasksControler 
00079 
00080 } // namespace TASK
00081 
00082 #endif

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