• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

newmonitor/base/Event.h (r3879/r3878)

Go to the documentation of this file.
00001 #ifndef BASE_EVENT_H
00002 #define BASE_EVENT_H
00003 
00004 
00005 #include "base/SubEvent.h"
00006 
00007 #include <map>
00008 #include <string>
00009 
00010 namespace base {
00011 
00016    typedef std::map<std::string, base::SubEvent*> EventsMap;
00017 
00018    class Event {
00019       protected:
00020          EventsMap  fMap;
00021 
00022          GlobalTime_t  fTriggerTm;
00023 
00024       public:
00025          Event() : fMap(), fTriggerTm(0.) {}
00026 
00027          virtual ~Event()
00028          {
00029             DestroyEvents();
00030          }
00031 
00032          void SetTriggerTime(GlobalTime_t tm) { fTriggerTm = tm; }
00033 
00034          GlobalTime_t GetTriggerTime() const { return fTriggerTm; }
00035 
00036          void DestroyEvents()
00037          {
00038             for (EventsMap::iterator iter = fMap.begin(); iter != fMap.end(); iter++)
00039                delete iter->second;
00040             fMap.clear();
00041          }
00042 
00043          void ResetEvents()
00044          {
00045             for (EventsMap::iterator iter = fMap.begin(); iter != fMap.end(); iter++)
00046                if (iter->second)
00047                   iter->second->Reset();
00048 
00049             fTriggerTm = 0;
00050          }
00051 
00052          void AddSubEvent(const std::string& name, base::SubEvent* ev)
00053          {
00054             EventsMap::iterator iter = fMap.find(name);
00055             if (iter != fMap.end()) delete iter->second;
00056             fMap[name] = ev;
00057          }
00058 
00059          base::SubEvent* GetSubEvent(const std::string& name) const
00060          {
00061             EventsMap::const_iterator iter = fMap.find(name);
00062             return (iter != fMap.end()) ? iter->second : 0;
00063          }
00064 
00065    };
00066 
00067 }
00068 
00069 
00070 
00071 #endif

Generated on Thu Dec 13 2012 04:52:22 for ROCsoft by  doxygen 1.7.1