Gabriele Contini
2019-09-19 6f5db32d147166ab1617c66844e3297eededc704
src/library/base/EventRegistry.cpp
@@ -2,12 +2,15 @@
 * EventRegistry.cpp
 *
 *  Created on: Mar 30, 2014
 *      Author: devel
 *
 */
#include "EventRegistry.h"
#include <cstddef>
#include <string.h>
#include <algorithm>
using namespace std;
namespace license {
EventRegistry::EventRegistry() {
@@ -32,7 +35,7 @@
void EventRegistry::turnLastEventIntoError() {
   if (logs.size() > 0) {
      logs.back().severity = SEVERITY_ERROR;
      logs.back().severity = SVRT_ERROR;
   }
}
@@ -40,7 +43,7 @@
   bool eventFound = false;
   for (auto it = logs.begin(); it != logs.end(); ++it) {
      if (it->event_type == event) {
         it->severity = SEVERITY_ERROR;
         it->severity = SVRT_ERROR;
         eventFound = true;
      }
   }
@@ -48,14 +51,14 @@
}
AuditEvent const * EventRegistry::getLastFailure() const {
   const AuditEvent* result = NULL;
   if(logs.size() == 0){
   const AuditEvent* result = nullptr;
   if (logs.size() == 0) {
      return result;
   }
   auto it = logs.end();
   do  {
   do {
      --it;
      if (it->severity == SEVERITY_ERROR) {
      if (it->severity == SVRT_ERROR) {
         result = &(*it);
         break;
      }
@@ -67,7 +70,7 @@
bool EventRegistry::isGood() const {
   bool isGood = true;
   for (auto it = logs.begin(); it != logs.end(); ++it) {
      if (it->severity == SEVERITY_ERROR) {
      if (it->severity == SVRT_ERROR) {
         isGood = false;
         break;
      }
@@ -75,9 +78,10 @@
   return isGood;
}
void EventRegistry::addError(EVENT_TYPE event){
   addEvent(event,SEVERITY_ERROR);
void EventRegistry::addError(EVENT_TYPE event) {
   this->addEvent(event, SVRT_ERROR);
}
void EventRegistry::addEvent(EVENT_TYPE event, SEVERITY severity) {
   AuditEvent audit;
   audit.severity = severity;
@@ -92,9 +96,25 @@
   AuditEvent audit;
   audit.severity = severity;
   audit.event_type = event;
   strncpy(audit.param1,eventParameter.c_str(),255);
   strncpy(audit.param1, eventParameter.c_str(), 255);
   audit.param2[0] = '\0';
   logs.push_back(audit);
}
bool EventRegistry::turnErrosIntoWarnings() {
   bool eventFound = false;
   for (auto it = logs.begin(); it != logs.end(); ++it) {
      if (it->severity == SVRT_ERROR) {
         it->severity = SVRT_WARN;
         eventFound = true;
      }
   }
   return eventFound;
}
void EventRegistry::exportLastEvents(AuditEvent* auditEvents, int nlogs) {
   const int sizeToCopy = min(nlogs, (int) logs.size());
   std::copy(logs.begin(), logs.begin() + sizeToCopy, auditEvents);
}
}