// EventManager.h: interface for the CEventManager class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_EVENTMANAGER_H__988BB45B_8C93_11D3_BE83_0000F87A3912__INCLUDED_) #define AFX_EVENTMANAGER_H__988BB45B_8C93_11D3_BE83_0000F87A3912__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "SystemEventContainer.h" #include "WbemClassObject.h" #include "Tree.h" #include "DataElementEvent.h" #include "RuleEvent.h" #include "HMStatistics.h" #include "DataPointStatistics.h" #include "DataPointEventContainer.h" ////////////////////////////////////////////////////////////////////// // CEventManager - manages events, status and statistics for console class CEventManager : public CObject { // Construction/Destruction public: CEventManager(); virtual ~CEventManager(); // Operations public: void ProcessEvent(CWbemClassObject* pEventObject); void ProcessUnknownEvent(const CString& sSystemName, CRuleEvent* pEvent); void ProcessActionEvent(CWbemClassObject* pActionEventObject); void ProcessStatisticEvent(CWbemClassObject* pStatObject); void GetEventContainer(const CString& sSystemName, const CString& sGuid, CEventContainer*& pContainer); void DeleteEvents(const CString& sSystemName, const CString& sStatusGuid); void AddContainer(const CString& sSystemName, const CString& sParentGuid, const CString& sGuid, CHMObject* pObject, CRuntimeClass* pClass = RUNTIME_CLASS(CEventContainer)); void RemoveContainer(const CString& sSystemName, const CString& sGuid); void AddSystemContainer(const CString& sParentGuid, const CString& sSystemName, CHMObject* pObject); void RemoveSystemContainer(const CString& sSystemName); void AddSystemShortcutAssociation(const CString& sParentGuid, const CString& sSystemName); void RemoveSystemShortcutAssociation(const CString& sParentGuid, const CString& sSystemName); int GetStatus(const CString& sSystemName, const CString& sGuid); int GetSystemStatus(const CString& sSystemName); void ActivateStatisticsEvents(const CString& sSystemName, const CString& sGuid); void DeactivateStatisticsEvents(const CString& sSystemName, const CString& sGuid); void ActivateSystemEventListener(const CString& sSystemName); protected: void ProcessSystemStatusEvent(CWbemClassObject* pEventObject); void ProcessDataGroupStatusEvent(CWbemClassObject* pEventObject); void ProcessDataElementStatusEvent(CWbemClassObject* pEventObject, EventArray& NewEvents); void ProcessRuleStatusEvent(CWbemClassObject* pEventObject); void ProcessRuleStatusInstanceEvent(CWbemClassObject* pEventObject, EventArray& NewEvents); void DeleteEvents(CTreeNode* pNode,const CString& sSystemName, const CString& sStatusGuid); CString GetCompositeGuid(const CString& sSystemName, const CString& sGuid); void PropogateStatisticsToChildren(const CString& sSystemName, const CString& sParentGuid, StatsArray& Statistics); // Attributes protected: CTree m_EventContainers; // tree of event containers CTypedPtrMap*> m_GuidToContainerMap; // maps Guid of a config object to a event container CTypedPtrMap*> m_SystemNameToContainerMap; // maps the system name to a system event container }; #include "EventManager.inl" extern CEventManager theEvtManager; inline CEventManager* EvtGetEventManager() { return &theEvtManager; } #endif // !defined(AFX_EVENTMANAGER_H__988BB45B_8C93_11D3_BE83_0000F87A3912__INCLUDED_)