//------------------------------------------------------------------------------
//----------------------------------------------------------- Module::getScope()
//------------------------------------------------------------------------------
-anna::oam::CounterScope *anna::oam::Module::getScope(const int &id) throw() {
+anna::oam::CounterScope *anna::oam::Module::getScope(const int &id) {
scope_iterator it = scope_find(id);
return ((it != scope_end()) ? scope(it) : NULL);
}
////------------------------------------------------------------------------------
////------------------------------------------------------- Module::alarm_remove()
////------------------------------------------------------------------------------
-//bool anna::oam::Module::alarm_remove(const int &key) throw() {
+//bool anna::oam::Module::alarm_remove(const int &key) {
// alarm_iterator it = alarm_find(key);
// if (it != alarm_end()) {
// a_alarms.erase(key);
////------------------------------------------------------------------------------
////----------------------------------------------------- Module::counter_remove()
////------------------------------------------------------------------------------
-//bool anna::oam::Module::counter_remove(const int &key) throw() {
+//bool anna::oam::Module::counter_remove(const int &key) {
// counter_iterator it = counter_find(key);
// if (it != counter_end()) {
// a_counters.erase(key);
//------------------------------------------------------------------------------
//----------------------------------------------------- Module::enableCounters()
//------------------------------------------------------------------------------
-void anna::oam::Module::enableCounters(void) throw() {
+void anna::oam::Module::enableCounters(void) {
a_counters_enabled = true;
LOGDEBUG(anna::Logger::debug("Scoped counters ENABLED", ANNA_FILE_LOCATION));
}
//------------------------------------------------------------------------------
//---------------------------------------------------- Module::disableCounters()
//------------------------------------------------------------------------------
-void anna::oam::Module::disableCounters(void) throw() {
+void anna::oam::Module::disableCounters(void) {
a_counters_enabled = false;
LOGDEBUG(anna::Logger::debug("Scoped counters DISABLED", ANNA_FILE_LOCATION));
}
//------------------------------------------------------------------------------
//------------------------------------------------------- Module::enableAlarms()
//------------------------------------------------------------------------------
-void anna::oam::Module::enableAlarms(void) throw() {
+void anna::oam::Module::enableAlarms(void) {
a_alarms_enabled = true;
LOGDEBUG(anna::Logger::debug("Scoped alarms ENABLED", ANNA_FILE_LOCATION));
}
//------------------------------------------------------------------------------
//------------------------------------------------------ Module::disableAlarms()
//------------------------------------------------------------------------------
-void anna::oam::Module::disableAlarms(void) throw() {
+void anna::oam::Module::disableAlarms(void) {
a_alarms_enabled = false;
LOGDEBUG(anna::Logger::debug("Scoped alarms DISABLED", ANNA_FILE_LOCATION));
}
//------------------------------------------------------------------------------
//------------------------------------------------ Module::enableAlarmsPreffix()
//------------------------------------------------------------------------------
-void anna::oam::Module::enableAlarmsPreffix(void) throw() {
+void anna::oam::Module::enableAlarmsPreffix(void) {
a_alarms_preffix_enabled = true;
LOGDEBUG(anna::Logger::debug("Alarm preffix module components SHOWN", ANNA_FILE_LOCATION));
}
//------------------------------------------------------------------------------
//------------------------------------------------- Module::enableAlarmsSuffix()
//------------------------------------------------------------------------------
-void anna::oam::Module::enableAlarmsSuffix(void) throw() {
+void anna::oam::Module::enableAlarmsSuffix(void) {
a_alarms_suffix_enabled = true;
LOGDEBUG(anna::Logger::debug("Alarm suffix module components SHOWN", ANNA_FILE_LOCATION));
}
//------------------------------------------------------------------------------
//----------------------------------------------- Module::disableAlarmsPreffix()
//------------------------------------------------------------------------------
-void anna::oam::Module::disableAlarmsPreffix(void) throw() {
+void anna::oam::Module::disableAlarmsPreffix(void) {
a_alarms_preffix_enabled = false;
LOGDEBUG(anna::Logger::debug("Alarm preffix module components HIDDEN", ANNA_FILE_LOCATION));
}
//------------------------------------------------------------------------------
//------------------------------------------------ Module::disableAlarmsSuffix()
//------------------------------------------------------------------------------
-void anna::oam::Module::disableAlarmsSuffix(void) throw() {
+void anna::oam::Module::disableAlarmsSuffix(void) {
a_alarms_suffix_enabled = false;
LOGDEBUG(anna::Logger::debug("Alarm suffix module components HIDDEN", ANNA_FILE_LOCATION));
}
//------------------------------------------------------------------------------
//--------------------------------- Module::getDefaultInternalAlarmDescription()
//------------------------------------------------------------------------------
-std::string anna::oam::Module::getDefaultInternalAlarmDescription(const int & type) const throw() {
+std::string anna::oam::Module::getDefaultInternalAlarmDescription(const int & type) const {
return UNDEFINED_EVENT_DESCRIPTION;
}
//------------------------------------------------------------------------------
//------------------------------- Module::getDefaultInternalCounterDescription()
//------------------------------------------------------------------------------
-std::string anna::oam::Module::getDefaultInternalCounterDescription(const int & type) const throw() {
+std::string anna::oam::Module::getDefaultInternalCounterDescription(const int & type) const {
return UNDEFINED_EVENT_DESCRIPTION;
}
//------------------------------------------------------------------------------
//---------------------------------------------- Module::alarmComponentsToText()
//------------------------------------------------------------------------------
-std::string anna::oam::Module::alarmComponentsToText(const std::vector<std::string> & components, const std::string & psL, const std::string & psS, const std::string & psR) const throw() {
+std::string anna::oam::Module::alarmComponentsToText(const std::vector<std::string> & components, const std::string & psL, const std::string & psS, const std::string & psR) const {
if(components.size() == 0) return ("");
std::vector<std::string>::const_iterator it_min(components.begin());
//------------------------------------------------------------------------------
//------------------------------ Module::getAlarmPreffixSuffixAndZoneSeparator()
//------------------------------------------------------------------------------
-void anna::oam::Module::getAlarmPreffixSuffixAndZoneSeparator(std::string & preffix, std::string & suffix, char & zS) const throw() {
+void anna::oam::Module::getAlarmPreffixSuffixAndZoneSeparator(std::string & preffix, std::string & suffix, char & zS) const {
Configuration &conf = Configuration::instantiate();
const std::vector<std::string> * globalPreffixComponents = conf.getAlarmPreffixComponents();
const std::vector<std::string> * globalSuffixComponents = conf.getAlarmSuffixComponents();
//------------------------------------------------------------------------------
//--------------------------------------------- Module::initializeCounterScope()
//------------------------------------------------------------------------------
-void anna::oam::Module::initializeCounterScope(const int & scopeId, const std::string & description) throw(anna::RuntimeException) {
+void anna::oam::Module::initializeCounterScope(const int & scopeId, const std::string & description) noexcept(false) {
LOGMETHOD(anna::TraceMethod tttm("anna::oam::Module", "initializeCounterScope", ANNA_FILE_LOCATION));
// Order of use:
- if(a_counters.size() != 0) // any counter have been registered
- throw anna::RuntimeException("After use of counter registration can't initialize more scope ids!. Do initializations firstly", ANNA_FILE_LOCATION);
+ // https://redmine.teslayout.com/issues/48
+ //if(a_counters.size() != 0) // any counter have been registered
+ // throw anna::RuntimeException("After use of counter registration can't initialize more scope ids!. Do initializations firstly", ANNA_FILE_LOCATION);
// Scope range: 0 - 99
if(scopeId < 0 || scopeId >= MaxScope) {
anna::Logger::warning("This is not the first initialized scope. Perhaps you should provide specific description better than general module name ...", ANNA_FILE_LOCATION);
}
);
- const char * c_description = (missingScopeDescription ? getClassName() : description.c_str());
+ const char * c_description = (missingScopeDescription ? getName() : description.c_str());
a_active_counter_scope = new CounterScope(scopeId, c_description);
a_scopes[scopeId] = a_active_counter_scope;
}
//------------------------------------------------------------------------------
//---------------------------------------------- Module::setActiveCounterScope()
//------------------------------------------------------------------------------
-void anna::oam::Module::setActiveCounterScope(const int & scopeId) throw() {
+void anna::oam::Module::setActiveCounterScope(const int & scopeId) {
anna::oam::CounterScope *scope = getScope(scopeId);
if(!scope) {
//------------------------------------------------------------------------------
//---------------------------------------------------- Module::registerCounter()
//------------------------------------------------------------------------------
-void anna::oam::Module::registerCounter(const int & type, const std::string & description, const int & offset) throw(anna::RuntimeException) {
+void anna::oam::Module::registerCounter(const int & type, const std::string & description, const int & offset) noexcept(false) {
// Handler-specific
a_handler->registerCounter(this, type, description, offset);
//------------------------------------------------------------------------------
//------------------------------------------------------ Module::registerAlarm()
//------------------------------------------------------------------------------
-void anna::oam::Module::registerAlarm(const int & type, const std::string &description, const int & externalId, const std::string & dynamicVariablesCSL, const int & activationId, const int & cancellationId) throw(anna::RuntimeException) {
+void anna::oam::Module::registerAlarm(const int & type, const std::string &description, const int & externalId, const std::string & dynamicVariablesCSL, const int & activationId, const int & cancellationId) noexcept(false) {
// Handler-specific
a_handler->registerAlarm(this, type, description, externalId, dynamicVariablesCSL, activationId, cancellationId);
// Check type existence:
//------------------------------------------------------------------------------
//------------------------------------------------------ Module::activateAlarm()
//------------------------------------------------------------------------------
-void anna::oam::Module::alarmEvent(bool activation, const int & type, va_list argList) const throw() {
+void anna::oam::Module::alarmEvent(bool activation, const int & type, va_list argList) const {
// Preffix/Suffix and separator:
std::string userPreffix, userSuffix; char separator;
getAlarmPreffixSuffixAndZoneSeparator(userPreffix, userSuffix, separator);
//------------------------------------------------------------------------------
//------------------------------------------------------ Module::activateAlarm()
//------------------------------------------------------------------------------
-void anna::oam::Module::activateAlarm(int type, ...) const throw(anna::RuntimeException) {
+void anna::oam::Module::activateAlarm(int type, ...) const noexcept(false) {
// LOGMETHOD(anna::TraceMethod tttm("anna::oam::Module", "activateAlarm", ANNA_FILE_LOCATION));
// Checkings
LOGDEBUG
(
std::string msg = "Alarm activation ignored over module '";
- msg += getClassName();
+ msg += getName();
msg += "': alarms are disabled";
anna::Logger::debug(msg, ANNA_FILE_LOCATION);
);
//------------------------------------------------------------------------------
//-------------------------------------------------------- Module::cancelAlarm()
//------------------------------------------------------------------------------
-void anna::oam::Module::cancelAlarm(int type, ...) const throw(anna::RuntimeException) {
+void anna::oam::Module::cancelAlarm(int type, ...) const noexcept(false) {
// LOGMETHOD(anna::TraceMethod tttm("anna::oam::Module", "cancelAlarm", ANNA_FILE_LOCATION));
// Checkings
LOGDEBUG
(
std::string msg = "Alarm cancellation ignored over module '";
- msg += getClassName();
+ msg += getName();
msg += "': alarms are disabled";
anna::Logger::debug(msg, ANNA_FILE_LOCATION);
);
//------------------------------------------------------------------------------
//-------------------------------------------------------------- Module::count()
//------------------------------------------------------------------------------
-void anna::oam::Module::count(const int & type, const int & amount) throw(anna::RuntimeException) {
+void anna::oam::Module::count(const int & type, const int & amount) noexcept(false) {
// LOGMETHOD(anna::TraceMethod tttm("anna::oam::Module", "count", ANNA_FILE_LOCATION));
// Checkings
LOGDEBUG
(
std::string msg = "Count operation ignored over module '";
- msg += getClassName();
+ msg += getName();
msg += "': counters are disabled";
anna::Logger::debug(msg, ANNA_FILE_LOCATION);
);
//------------------------------------------------------------------------------
//------------------------------------------------------ Module::resetCounters()
//------------------------------------------------------------------------------
-int anna::oam::Module::resetCounters(const int & scopeId) throw() {
+int anna::oam::Module::resetCounters(const int & scopeId) {
LOGMETHOD(anna::TraceMethod tttm("anna::oam::Module", "resetCounters", ANNA_FILE_LOCATION));
int result = 0; // affected number
//------------------------------------- Module::RecordingGuard::RecordingGuard()
//------------------------------------------------------------------------------
anna::oam::Module::RecordingGuard::RecordingGuard(anna::oam::Module* module) :
- a_module(module) {
- module->a_counterRecording = true;
-}
-
+ a_module(module) {
+ module->a_counterRecording = true;
+}
+
//------------------------------------------------------------------------------
//------------------------------------ Module::RecordingGuard::~RecordingGuard()
//------------------------------------------------------------------------------
-anna::oam::Module::RecordingGuard::~RecordingGuard() {
- a_module->a_counterRecording = false;
-}
+anna::oam::Module::RecordingGuard::~RecordingGuard() {
+ a_module->a_counterRecording = false;
+}
//------------------------------------------------------------------------------
//----------------------------------------------------- Module::recordCounters()
//------------------------------------------------------------------------------
-void anna::oam::Module::recordCounters() throw(anna::RuntimeException) {
+void anna::oam::Module::recordCounters() noexcept(false) {
LOGMETHOD(anna::TraceMethod tttm("anna::oam::Module", "recordCounters", ANNA_FILE_LOCATION));
if(a_counterRecorder == NULL)
RecordingGuard guard(this);
a_counterRecorder->open();
- Counter* counter = NULL;
CounterScope* cscope = NULL;
try {
//------------------------------------------------------------------------------
//----------------------------------------------------------- Module::asString()
//------------------------------------------------------------------------------
-std::string anna::oam::Module::asString(void) const throw() {
+std::string anna::oam::Module::asString(void) const {
std::string trace;
trace = "Module name: '";
- trace += getClassName();
+ trace += getName();
trace += "'";
trace += "\n\nCOUNTERS"; trace += "\n--------";
trace += "\nScoped counters "; trace += a_counters_enabled ? "Enabled" : "Disabled";
for(const_counter_iterator cnt_it = counter_begin(); cnt_it != counter_end(); cnt_it++) {
ptrCounterData = (counter_data_t *) & ((*cnt_it).second);
+
+ // Counter registered ?
+ int offset = ptrCounterData->Offset;
+ unsigned long long int accValue = 0ULL;
+ try {
+ const anna::oam::CounterScope *csAux = scope(scope_it);
+ accValue = csAux->getAccValue(offset);
+ } catch(anna::RuntimeException &ex) {
+ ex.trace();
+ continue;
+ }
+
// Counter:
trace += "\n\tType: "; trace += anna::functions::asString((*cnt_it).first);
trace += " | Description: '"; trace += ptrCounterData->Description; trace += "'";
- int offset = ptrCounterData->Offset;
int realId = (1000 * scopeId) + offset;
trace += " | ScopeId/Offset: "; trace += anna::functions::asString(scopeId); trace += "/"; trace += anna::functions::asString(offset);
trace += " | RealId: "; trace += anna::functions::asString(realId);
- unsigned long long int accValue = scope(scope_it)->getAccValue(offset);
+ accValue = scope(scope_it)->getAccValue(offset);
if(accValue != 0ULL) {
trace += " | AccumulatedAmount: ";
//------------------------------------------------------------------------------
//-------------------------------------------------------------- Module::asXML()
//------------------------------------------------------------------------------
-anna::xml::Node* anna::oam::Module::asXML(anna::xml::Node* parent) const throw() {
+anna::xml::Node* anna::oam::Module::asXML(anna::xml::Node* parent) const {
anna::xml::Node* result = parent->createChild("oam.Module");
- result->createAttribute("Name", getClassName());
+ result->createAttribute("Name", getName());
result->createAttribute("Counters", a_counters_enabled ? "Enabled" : "Disabled");
anna::xml::Node* registeredCounterScopes = result->createChild("RegisteredCounterScopes");
for(const_counter_iterator cnt_it = counter_begin(); cnt_it != counter_end(); cnt_it++) {
ptrCounterData = (counter_data_t *) & ((*cnt_it).second);
+
+ // Counter registered ?
+ int offset = ptrCounterData->Offset;
+ unsigned long long int accValue = 0ULL;
+ try {
+ const anna::oam::CounterScope *csAux = scope(scope_it);
+ accValue = csAux->getAccValue(offset);
+ } catch(anna::RuntimeException &ex) {
+ ex.trace();
+ continue;
+ }
+
// Counter:
anna::xml::Node* counter = registeredCounters->createChild("Counter");
counter->createAttribute("Type", anna::functions::asString((*cnt_it).first));
counter->createAttribute("Description", ptrCounterData->Description);
- int offset = ptrCounterData->Offset;
int realId = (1000 * scopeId) + offset;
counter->createAttribute("ScopeId", anna::functions::asString(scopeId));
counter->createAttribute("Offset", anna::functions::asString(offset));
counter->createAttribute("RealId", anna::functions::asString(realId));
- unsigned long long int accValue = scope(scope_it)->getAccValue(offset);
if(accValue != 0ULL)
counter->createAttribute("AccumulatedAmount", anna::functions::asString("%llu", accValue));