From c4f49d99ce9d26413bb02843a5b66097f66a07dc Mon Sep 17 00:00:00 2001 From: Benjamin Decavel Date: Thu, 5 Nov 2009 15:20:12 +0100 Subject: SNMP agent: refactored some code about traps --- application/agent/inc/eventListener.h | 33 ++-- application/agent/src/eventListener.cpp | 287 ++++++++------------------------ 2 files changed, 87 insertions(+), 233 deletions(-) diff --git a/application/agent/inc/eventListener.h b/application/agent/inc/eventListener.h index f281af9430..cde11cf12c 100755 --- a/application/agent/inc/eventListener.h +++ b/application/agent/inc/eventListener.h @@ -24,32 +24,33 @@ */ -class eventListener //: public commonThread - +class eventListener //: public commonThread + { public: - virtual ~eventListener(); - - virtual void run(); - + virtual ~eventListener(); + + virtual void run(); + ///////////////////////////////////////////////////////////////////// - // Singleton static accessor - static eventListener* instance(); + // Singleton static accessor + static eventListener* instance(); private: eventListener(); - /** + /** * Build the event detected - */ - bool buildHostUpDown(unsigned int iHostId, uint8_t mac_addr[], bool isActive); - bool buildMaxAttenuation(unsigned int iHostId, uint8_t mac_addr[], bool isActive); - bool buildMaxNoise(unsigned int iHostId, uint8_t mac_addr[], bool isActive); - static eventListener* m_instance_p; - - eventListenerSocket* m_socket; + */ + bool buildHostUpDown(unsigned int iHostId, uint8_t mac_addr[], bool isActive); + bool buildMaxAttenuation(unsigned int iHostId, uint8_t mac_addr[], bool isActive); + bool buildMaxNoise(unsigned int iHostId, uint8_t mac_addr[], bool isActive); + bool buildEventForTrap(unsigned int iHostId, uint8_t mac_addr[], bool isActive, unsigned int type); + static eventListener* m_instance_p; + + eventListenerSocket* m_socket; }; diff --git a/application/agent/src/eventListener.cpp b/application/agent/src/eventListener.cpp index e0b0d9ce7e..2a0e1795c8 100644 --- a/application/agent/src/eventListener.cpp +++ b/application/agent/src/eventListener.cpp @@ -233,242 +233,95 @@ eventListener* eventListener::instance() - - +bool eventListener::buildHostUpDown(unsigned int iHostId, uint8_t mac_addr[], bool isActive) +{ + return buildEventForTrap(iHostId, mac_addr, isActive, 2); +} +bool eventListener::buildMaxAttenuation(unsigned int iHostId, uint8_t mac_addr[], bool isActive) +{ + return buildEventForTrap(iHostId, mac_addr, isActive, 3); +} -bool eventListener::buildHostUpDown(unsigned int iHostId, uint8_t mac_addr[], bool isActive) + +bool eventListener::buildMaxNoise(unsigned int iHostId, uint8_t mac_addr[], bool isActive) { - - bool result = false; - - //a plc interface is down - char* aManagedObject = "modem/interface/plc"; - DEBUG("aManagedObject: "<updateAlarmList(aAlarmFromEvent); - - - if (0 != aALarmMod) - { - trapBuilder aTrapBuilder; - aTrapBuilder.sendTrap(*aALarmMod); - DEBUG("Trap should be sent"< delete alarm object - if (aALarmMod->getAlarmStatus() == 2) - { - delete(aALarmMod); - aALarmMod = NULL; - } + DEBUG("aDescription: "<updateAlarmList(aAlarmFromEvent); - - - if (0 != aALarmMod) - { - trapBuilder aTrapBuilder; - aTrapBuilder.sendTrap(*aALarmMod); - DEBUG("Trap should be sent"< delete alarm object - if (aALarmMod->getAlarmStatus() == 2) - { - delete(aALarmMod); - aALarmMod = NULL; - } + AlarmObjectModel::alarmStatus aAlarmStatus; + //alarm clear + if (isActive) + aAlarmStatus = (AlarmObjectModel::alarmStatus) 1; + else + aAlarmStatus = (AlarmObjectModel::alarmStatus) 2; - result = true; - } - else - { - DEBUG( "Alarm returned by udpate is NULL !!!"<updateAlarmList(aAlarmFromEvent); - //remote node transmission error - unsigned long aPbCause = 25; - - AlarmObjectModel::alarmStatus aAlarmStatus; - //alarm clear - if (isActive) - aAlarmStatus = (AlarmObjectModel::alarmStatus) 1; - else - aAlarmStatus = (AlarmObjectModel::alarmStatus) 2; - - //communication error - AlarmObjectModel::eventType aEvent = (AlarmObjectModel::eventType) 4; - - - //Build the alarm Object - AlarmObjectModel aAlarmFromEvent(aManagedObject, aPbCause, aEvent, 0, - aAlarmStatus, aTime, aDescription); - - - //If consumer producer: changes are here: put in queue instead of treating - //The update automatically save the alarms in the file - const AlarmObjectModel* aALarmMod = - AlarmListManager::instance()->updateAlarmList(aAlarmFromEvent); - - - if (0 != aALarmMod) - { - trapBuilder aTrapBuilder; - aTrapBuilder.sendTrap(*aALarmMod); - DEBUG("Trap should be sent"< delete alarm object - if (aALarmMod->getAlarmStatus() == 2) - { - delete(aALarmMod); - aALarmMod = NULL; - } + if (0 != aALarmMod) + { + trapBuilder aTrapBuilder; + aTrapBuilder.sendTrap(*aALarmMod); + DEBUG("Trap should be sent"< delete alarm object + if (aALarmMod->getAlarmStatus() == 2) + { + delete(aALarmMod); + aALarmMod = NULL; + } + + result = true; + } + else + { + DEBUG( "Alarm returned by udpate is NULL !!!"<