00001
00002 #ifndef CReportTasksControler_h
00003 #define CReportTasksControler_h 1
00004
00005
00006 #include "jic/task/CTask.hpp"
00007
00008 #include "jic/task/CTasksControler.hpp"
00009
00010 #include "jic/task/STaskCounters.hpp"
00011
00012 namespace TASK {
00013 class CTaskReportObject;
00014
00015 }
00016
00017 namespace TASK {
00018
00019 typedef std::map<std::string,STaskCounters> MapTaskCounters;
00020
00021
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
00035 friend class ACE_Unmanaged_Singleton<CReportTasksControler, ACE_SYNCH_MUTEX>;
00036 protected:
00037
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
00051
00052 private:
00053
00054
00055 long m_nReportPeriod;
00056
00057
00058
00059 CTaskReportObject *m_pReportObject;
00060
00061
00062
00063 MapTaskCounters m_mapCounters;
00064
00065
00066
00067 };
00068
00069
00070
00071 typedef ACE_Unmanaged_Singleton<CReportTasksControler, ACE_SYNCH_MUTEX> ReportTasksControler;
00072
00073
00074
00075 inline const long CReportTasksControler::get_nReportPeriod () const
00076 {
00077 return m_nReportPeriod;
00078 }
00079
00080 }
00081
00082 #endif