Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

rmEvent.h

Go to the documentation of this file.
00001 #ifndef __rmEvent_h_
00002 #define __rmEvent_h_
00003 
00004 #include <queue>
00005 #include <string>
00006 #include <posix_evlog.h>
00007 
00008 #include <ResourceMonitor/ResourceMonitorTypes.h>
00009 
00010 #include "rmClientError.h"
00011 #include "rmSysInfo.h"
00012 
00013 typedef enum _EventType
00014 {
00015   THRESHOLD,
00016   THRESHOLDCANCEL,
00017   LEAKYBUCKET,
00018 
00019   SUBSYSTEM,
00020   RESOURCE,
00021 } EventType;
00022 
00023 typedef enum _EventName
00024 {
00025   SUBSYSTEM_ADDED,
00026   SUBSYSTEM_REMOVED,
00027   RESOURCE_ADDED,
00028   RESOURCE_REMOVED,
00029   DATACAPTURE_ADDED,
00030   DATACAPTURE_REMOVED
00031 } EventName;
00032 
00038 class rmEvent 
00039 {
00040   public:
00041 
00042     rmEvent(subsystemInfo * aSubsystemInfo, 
00043             resourceInfo * aResourceInfo, 
00044             dataCaptureInfo * aDataCaptureInfo) : 
00045                                    mSubsystemInfo(aSubsystemInfo), 
00046                                    mResourceInfo(aResourceInfo), 
00047                                    mDataCaptureInfo(aDataCaptureInfo) {}
00048 
00049     virtual ~rmEvent(){posix_log_notify_remove(mSystemNotifyHandle);}
00050 
00051     int init();
00052 
00054     void addEvent(posix_log_recid_t aRecID, unsigned long aMonID);
00055 
00057     void processEvents();
00058 
00059   private:
00060 
00061     int getEventType(posix_log_recid_t aRecID, long & aType);
00062 
00063     int getEventText(posix_log_recid_t aRecID, char * * aText);
00064 
00065     int sendMonitorEvent(EventType aType, eventData & aEvent);
00066 
00067     int processSystemEvent(EventType aType, eventData & aEvent);
00068 
00069     int sendSubSystemEvent(EventName aEvent, uuid_t aUUID);
00070 
00071     int sendResourceEvent(EventName aEvent, uuid_t aUUID, unsigned long aID, string aName);
00072 
00073     int sendPluginEvent(EventName aEvent, uuid_t aUUID, unsigned long aID, string aName);
00074 
00075     queue<eventData> mEventQueue;
00076 
00077     bool mUpdating;
00078 
00079     posix_log_notify_t mSystemNotifyHandle;
00080 
00081     subsystemInfo * mSubsystemInfo;
00082     resourceInfo * mResourceInfo;
00083     dataCaptureInfo * mDataCaptureInfo;
00084 };
00085 
00086 #endif // __rmEvent_h_

Generated on Tue Sep 10 16:46:32 2002 for ResourceMonitorSNMPSubagent by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002