X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fcore%2Foam%2FModule.hpp;h=ea8e627c3c999953900c70698dc86e3fdc62139b;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=39bc31c4b6b5f61fce66624088f19fe1a7153289;hpb=3d71e5185fa9c93bde7363a668aecf96240ae2e9;p=anna.git diff --git a/include/anna/core/oam/Module.hpp b/include/anna/core/oam/Module.hpp index 39bc31c..ea8e627 100644 --- a/include/anna/core/oam/Module.hpp +++ b/include/anna/core/oam/Module.hpp @@ -136,16 +136,11 @@ class Module { Handler a_defaultHandler; // default OAM handler Handler *a_handler; // Handler reference + std::string a_name; // module description - std::string a_className; // module description bool a_counters_enabled; // Enable/Disable registered counters over this module (default is 'false') bool a_alarms_enabled; // Enable/Disable registered alarms over this module (default is 'false') - // dynamic modifications over alarm text - bool a_alarms_preffix_enabled; // Show own module alarm preffix - bool a_alarms_suffix_enabled; // Show own module alarm suffix - std::string alarmComponentsToText(const std::vector & components, const std::string & psL, const std::string & psS, const std::string & psR) const throw(); - // GENERIC COUNTERS anna::oam::CounterScope* a_active_counter_scope; // Current scope for counters generation typedef std::map scope_container; @@ -156,29 +151,33 @@ class Module { // GENERIC ALARMS typedef std::map < int /*type*/, alarm_data_t > alarm_container; alarm_container a_alarms; + void alarmEvent(bool activation, const int & type, va_list argList) const ; - void alarmEvent(bool activation, const int & type, va_list argList) const throw(); + // dynamic modifications over alarm text + bool a_alarms_preffix_enabled; // Show own module alarm preffix + bool a_alarms_suffix_enabled; // Show own module alarm suffix + std::string alarmComponentsToText(const std::vector & components, const std::string & psL, const std::string & psS, const std::string & psR) const ; // Counters typedef scope_container::iterator scope_iterator; typedef scope_container::const_iterator const_scope_iterator; - scope_iterator scope_find(const int &key) throw() { return a_scopes.find(key); } - scope_iterator scope_begin() throw() { return a_scopes.begin(); } - scope_iterator scope_end() throw() { return a_scopes.end(); } - static anna::oam::CounterScope* scope(scope_iterator ii) throw() { return ii->second; } - const_scope_iterator scope_begin() const throw() { return a_scopes.begin(); } - const_scope_iterator scope_end() const throw() { return a_scopes.end(); } - static const anna::oam::CounterScope* scope(const_scope_iterator ii) throw() { return ii->second; } - anna::oam::CounterScope *getScope(const int &id) throw(); + scope_iterator scope_find(const int &key) { return a_scopes.find(key); } + scope_iterator scope_begin() { return a_scopes.begin(); } + scope_iterator scope_end() { return a_scopes.end(); } + static anna::oam::CounterScope* scope(scope_iterator ii) { return ii->second; } + const_scope_iterator scope_begin() const { return a_scopes.begin(); } + const_scope_iterator scope_end() const { return a_scopes.end(); } + static const anna::oam::CounterScope* scope(const_scope_iterator ii) { return ii->second; } + anna::oam::CounterScope *getScope(const int &id) ; typedef counter_container::iterator counter_iterator; typedef counter_container::const_iterator const_counter_iterator; -// bool counter_remove(const int &key) throw(); - const_counter_iterator counter_find(const int &key) const throw() { return a_counters.find(key); } - const_counter_iterator counter_begin() const throw() { return a_counters.begin(); } - const_counter_iterator counter_end() const throw() { return a_counters.end(); } - counter_iterator counter_find(const int &key) throw() { return a_counters.find(key); } - counter_iterator counter_begin() throw() { return a_counters.begin(); } - counter_iterator counter_end() throw() { return a_counters.end(); } +// bool counter_remove(const int &key) ; + const_counter_iterator counter_find(const int &key) const { return a_counters.find(key); } + const_counter_iterator counter_begin() const { return a_counters.begin(); } + const_counter_iterator counter_end() const { return a_counters.end(); } + counter_iterator counter_find(const int &key) { return a_counters.find(key); } + counter_iterator counter_begin() { return a_counters.begin(); } + counter_iterator counter_end() { return a_counters.end(); } CounterRecorder* a_counterRecorder; bool a_counterRecording; @@ -193,14 +192,14 @@ class Module { // Alarms typedef alarm_container::iterator alarm_iterator; typedef alarm_container::const_iterator const_alarm_iterator; -// bool alarm_remove(const int &key) throw(); - const_alarm_iterator alarm_find(const int &key) const throw() { return a_alarms.find(key); } - const_alarm_iterator alarm_begin() const throw() { return a_alarms.begin(); } - const_alarm_iterator alarm_end() const throw() { return a_alarms.end(); } - alarm_iterator alarm_find(const int &key) throw() { return a_alarms.find(key); } - alarm_iterator alarm_begin() throw() { return a_alarms.begin(); } - alarm_iterator alarm_end() throw() { return a_alarms.end(); } - void getAlarmPreffixSuffixAndZoneSeparator(std::string & preffix, std::string & suffix, char & zS) const throw(); +// bool alarm_remove(const int &key) ; + const_alarm_iterator alarm_find(const int &key) const { return a_alarms.find(key); } + const_alarm_iterator alarm_begin() const { return a_alarms.begin(); } + const_alarm_iterator alarm_end() const { return a_alarms.end(); } + alarm_iterator alarm_find(const int &key) { return a_alarms.find(key); } + alarm_iterator alarm_begin() { return a_alarms.begin(); } + alarm_iterator alarm_end() { return a_alarms.end(); } + void getAlarmPreffixSuffixAndZoneSeparator(std::string & preffix, std::string & suffix, char & zS) const ; public: @@ -208,80 +207,85 @@ public: /** Constructor - @param className Logical name for the class (better use fullNaming format including namespace resolution) + @param name Logical name for the class (better use fullNaming format including namespace resolution) */ - Module(const std::string &className) : a_className(className), + Module(const std::string &name) : a_handler(&a_defaultHandler), + a_name(name), a_counters_enabled(false), - a_counterRecorder(NULL), - a_counterRecording(false), a_alarms_enabled(false), a_alarms_preffix_enabled(true), - a_alarms_suffix_enabled(true) {;} + a_alarms_suffix_enabled(true), + a_counterRecorder(NULL), + a_counterRecording(false) {;} /** * Destructor */ virtual ~Module(); + /** + * Number of scopes registered + */ + int scopes() const { return a_scopes.size(); } /** * Enable all the counters registered in this module (enabled by default at constructor). * Usually managed at PROCCESS implementation */ - void enableCounters(void) throw(); + void enableCounters(void) ; /** * Disable all the counters registered in this module (enabled by default at constructor). * Usually managed at PROCCESS implementation */ - void disableCounters(void) throw(); + void disableCounters(void) ; /** * Enable all the alarms registered in this module (enabled by default at constructor). * Usually managed at PROCCESS implementation */ - void enableAlarms(void) throw(); + void enableAlarms(void) ; /** * Disable all the alarms registered in this module (enabled by default at constructor). * Usually managed at PROCCESS implementation */ - void disableAlarms(void) throw(); + void disableAlarms(void) ; /** Getter for counters enabled */ - bool countersEnabled() const throw() { return a_counters_enabled; } + bool countersEnabled() const { return a_counters_enabled; } /** Getter for alarms enabled */ - bool alarmsEnabled() const throw() { return a_alarms_enabled; } + bool alarmsEnabled() const { return a_alarms_enabled; } /** * Show own module alarm preffix (enabled by default at constructor). * Usually managed at PROCCESS implementation */ - void enableAlarmsPreffix(void) throw(); + void enableAlarmsPreffix(void) ; /** * Show own module alarm suffix (enabled by default at constructor). * Usually managed at PROCCESS implementation */ - void enableAlarmsSuffix(void) throw(); + void enableAlarmsSuffix(void) ; /** * Hide own module alarm preffix (enabled by default at constructor). * Usually managed at PROCCESS implementation */ - void disableAlarmsPreffix(void) throw(); + void disableAlarmsPreffix(void) ; /** * Hide own module alarm suffix (enabled by default at constructor). * Usually managed at PROCCESS implementation */ - void disableAlarmsSuffix(void) throw(); + void disableAlarmsSuffix(void) ; /** * Sets the operations handler. By default, all modules will use the default anna::oam::Handler. @@ -292,7 +296,7 @@ public: * * @param handler Handler used for OAM operations (registering and launch). NULL is ignored */ - void setHandler(Handler *handler) throw() { if(handler) a_handler = handler; } + void setHandler(Handler *handler) { if(handler) a_handler = handler; } /** * Counter scope registration. Usually, only one scope id will be registered, but multicontext applications @@ -308,7 +312,7 @@ public: * better than 'Main OAM Module' for all of them. Also, you can use the same description for all scopes * (that is the case of default assignment). */ - void initializeCounterScope(const int & scopeId, const std::string & description = "") throw(anna::RuntimeException); + void initializeCounterScope(const int & scopeId, const std::string & description = "") noexcept(false); /** @@ -318,7 +322,7 @@ public: * * @param scopeId Counter scope id which becomes active. */ - void setActiveCounterScope(const int & scopeId) throw(); + void setActiveCounterScope(const int & scopeId) ; /** @@ -326,7 +330,7 @@ public: * * @return Activated counter scope */ - const anna::oam::CounterScope* getActiveCounterScope() const throw() { return a_active_counter_scope; } + const anna::oam::CounterScope* getActiveCounterScope() const { return a_active_counter_scope; } /** * Child oam module classes should define descriptions for each enum type. A good practice would be the use of @@ -337,7 +341,7 @@ public: * * @return Default alarm description */ - virtual std::string getDefaultInternalAlarmDescription(const int & type) const throw(); + virtual std::string getDefaultInternalAlarmDescription(const int & type) const ; /** * Child oam module classes should define descriptions for each enum type. A good practice would be the use of @@ -348,7 +352,7 @@ public: * * @return Default counter description */ - virtual std::string getDefaultInternalCounterDescription(const int & type) const throw(); + virtual std::string getDefaultInternalCounterDescription(const int & type) const ; /** @@ -361,7 +365,7 @@ public: * for non-registered will be searched (#getDefaultInternalCounterDescription). * @param offset Counter offset over (1000 * scope id). Offset has 0-999 range. */ - void registerCounter(const int &type, const std::string &description, const int &offset) throw(anna::RuntimeException); + void registerCounter(const int &type, const std::string &description, const int &offset) noexcept(false); /** @@ -377,7 +381,7 @@ public: * @param activationId Alarm activation identifier * @param cancellationId Alarm cancellation identifier. If missing, the alarm will interpreted as non-transferable */ - void registerAlarm(const int &type, const std::string &description, const int &externalId, const std::string &dynamicVariablesCSL, const int &activationId, const int &cancellationId = -1) throw(anna::RuntimeException); + void registerAlarm(const int &type, const std::string &description, const int &externalId, const std::string &dynamicVariablesCSL, const int &activationId, const int &cancellationId = -1) noexcept(false); /** @@ -385,7 +389,7 @@ public: @param OAM module name */ - const char *getClassName() const throw() { return a_className.c_str(); } + const char *getName() const { return a_name.c_str(); } /** @@ -393,7 +397,7 @@ public: @param type Alarm enum-identification within the own context/module. */ - const counter_data_t *counter(const int &type) const throw() { + const counter_data_t *counter(const int &type) const { const_counter_iterator it = counter_find(type); return ((it != counter_end()) ? (&(*it).second) : NULL); } @@ -403,7 +407,7 @@ public: @param type Counter enum-identification within the own context/module. */ - const alarm_data_t *alarm(const int &type) const throw() { + const alarm_data_t *alarm(const int &type) const { const_alarm_iterator it = alarm_find(type); return ((it != alarm_end()) ? (&(*it).second) : NULL); } @@ -416,7 +420,7 @@ public: * @param type Counter enum-identification within the own context/module * @param amount Units increased. Default is 1 */ - void count(const int & type, const int & amount = 1) throw(anna::RuntimeException); + void count(const int & type, const int & amount = 1) noexcept(false); /** @@ -427,7 +431,7 @@ public: * * @return Number of affected counters which have been reset (only those which have non-zero accumulated count). */ - int resetCounters(const int & scopeId = -1) throw(); + int resetCounters(const int & scopeId = -1) ; /** @@ -435,7 +439,7 @@ public: * @counterRecorder Provided instance * @warning It should be invoked periodically as a common solution */ - void setCounterRecorder(CounterRecorder* counterRecorder) throw() { a_counterRecorder = counterRecorder; } + void setCounterRecorder(CounterRecorder* counterRecorder) { a_counterRecorder = counterRecorder; } /** * Dumps the modified counters from last invocation to this method. @@ -443,7 +447,7 @@ public: * will have the specific behaviour. This procedure is oriented to have physical storage * for counters information. */ - void recordCounters() throw(anna::RuntimeException); + void recordCounters() noexcept(false); /** @@ -453,7 +457,7 @@ public: * @param alarmType Alarm enum-identification within the own context/module * @param ... Optional parsing data for dynamic-composed text. */ - void activateAlarm(int type, ...) const throw(anna::RuntimeException); + void activateAlarm(int type, ...) const noexcept(false); /** @@ -463,7 +467,7 @@ public: * @param alarmType Alarm enum-identification within the own context/module * @param ... Optional parsing data for dynamic-composed text. */ - void cancelAlarm(int type, ...) const throw(anna::RuntimeException); + void cancelAlarm(int type, ...) const noexcept(false); /** @@ -472,7 +476,7 @@ public: * * @return String with class content */ - virtual std::string asString(void) const throw(); + virtual std::string asString(void) const ; /** @@ -481,7 +485,7 @@ public: * * @return XML with class content */ - virtual anna::xml::Node* asXML(anna::xml::Node* parent) const throw(); + virtual anna::xml::Node* asXML(anna::xml::Node* parent) const ; protected: @@ -496,7 +500,7 @@ protected: * * @param components Alarm preffix components defined by oam module. Empty on default implementation. */ - virtual void readAlarmPreffixComponents(std::vector & components) const throw() {;} + virtual void readAlarmPreffixComponents(std::vector & components) const {;} /** @@ -509,7 +513,7 @@ protected: * * @param components Alarm suffix components defined by oam module. Empty on default implementation. */ - virtual void readAlarmSuffixComponents(std::vector & components) const throw() {;} + virtual void readAlarmSuffixComponents(std::vector & components) const {;} friend class RecordingGuard;