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

CReportTasksControler.hpp

Go to the documentation of this file.
00001 
00002 #ifndef CReportTasksControler_h
00003 #define CReportTasksControler_h 1
00004 
00005 // CTask
00006 #include "jic/task/CTask.hpp"
00007 // CTasksControler
00008 #include "jic/task/CTasksControler.hpp"
00009 // STaskCounters
00010 #include "jic/task/STaskCounters.hpp"
00011 
00012 namespace TASK {
00013   class CTaskReportObject;
00014 
00015 } // namespace TASK
00016 
00017 namespace TASK {
00018 
00019   typedef std::map<std::string,STaskCounters> MapTaskCounters;
00020 
00021   //    Controlador por defecto para las tasks.
00022 
00023   class CReportTasksControler : public CTasksControler, 
00024                                         public ACE_Task  
00025   {
00026 
00027     public:
00028         CReportTasksControler();
00029 
00030         CReportTasksControler (const std::string &strName, long nReportPeriod = 0, CTaskReportObject *pReportObject = 0);
00031 
00032         virtual ~CReportTasksControler();
00033 
00034       // Additional Public Declarations
00035         friend class ACE_Unmanaged_Singleton<CReportTasksControler, ACE_SYNCH_MUTEX>; // @
00036     protected:
00037       // Additional Protected Declarations
00038 
00039     private:
00040         CReportTasksControler(const CReportTasksControler &right);
00041 
00042         CReportTasksControler & operator=(const CReportTasksControler &right);
00043 
00044         int svc ();
00045 
00046         int close (u_long flags = 0);
00047 
00048         const long get_nReportPeriod () const;
00049 
00050       // Additional Private Declarations
00051 
00052     private: 
00053       // Data Members for Class Attributes
00054 
00055         long m_nReportPeriod;
00056 
00057         //      Se invocará por el metodo counterCollector, el cual se
00058         //      llama periodicamente
00059         CTaskReportObject *m_pReportObject;
00060 
00061       // Data Members for Associations
00062 
00063         MapTaskCounters m_mapCounters;
00064 
00065       // Additional Implementation Declarations
00066 
00067   };
00068 
00069   //    El Singleton
00070 
00071   typedef ACE_Unmanaged_Singleton<CReportTasksControler, ACE_SYNCH_MUTEX> ReportTasksControler;
00072 
00073   // Class TASK::CReportTasksControler 
00074 
00075   inline const long CReportTasksControler::get_nReportPeriod () const
00076   {
00077     return m_nReportPeriod;
00078   }
00079 
00080 } // namespace TASK
00081 
00082 #endif

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