#pragma once #include "style.h" #include "receiver.h" //######################################################################### //######################## EventStatistics ########################## //######################################################################### class EventStatistics : public Plug { friend class EventStatisticsManager; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction, Destruction // public: EventStatistics::EventStatistics(ClassID class_ID, Receiver::MessageID message_ID); ~EventStatistics() {} //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Private Data // private: ClassID classID; Receiver::MessageID messageID; long eventCount; }; //######################################################################### //##################### EventStatisticsManager ###################### //######################################################################### class EventStatisticsManager : public Node { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction, Destruction // public: EventStatisticsManager::EventStatisticsManager(); ~EventStatisticsManager() {} //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Statistic collection and reporting // public: void Maintain(Event *event); void Report(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Private Data // private: TableOf eventStatisticsSocket; Logical printedReport; }; extern EventStatisticsManager event_statistics_manager;