From 95d1452eefadffaf1ec75dd0a8336bc2c387eb17 Mon Sep 17 00:00:00 2001
From: gcontini <1121667+gcontini@users.noreply.github.com>
Date: 周六, 01 2月 2020 02:48:51 +0800
Subject: [PATCH] rename enums and further developments

---
 src/library/base/EventRegistry.h |   66 ++++++++++++++++++--------------
 1 files changed, 37 insertions(+), 29 deletions(-)

diff --git a/src/library/base/EventRegistry.h b/src/library/base/EventRegistry.h
index 310a430..38b44d0 100644
--- a/src/library/base/EventRegistry.h
+++ b/src/library/base/EventRegistry.h
@@ -2,51 +2,59 @@
  * EventRegistry.h
  *
  *  Created on: Mar 30, 2014
- *      Author: devel
+ *
  */
 
 #ifndef EVENTREGISTRY_H_
 #define EVENTREGISTRY_H_
 
-#include "../api/datatypes.h"
+#include <licensecc/datatypes.h>
+
 #include <vector>
+#include <map>
+#include <set>
 #include <string>
 
 namespace license {
-using namespace std;
-/*
-AuditEvent error_event_builder(EVENT_TYPE event);
-AuditEvent audit_event_builder(EVENT_TYPE event, SEVERITY severity);
-AuditEvent audit_event_builder(EVENT_TYPE event, SEVERITY severity,
-		const string& eventParameter);*/
 
+/**
+ * Tracks the events relative to a license and provide explanation regarding
+ * failures to verify licenses.
+ */
 class EventRegistry {
 private:
-	friend EventRegistry& operator<<(EventRegistry&, AuditEvent&);
-	friend EventRegistry& operator<<(EventRegistry&, EventRegistry&);
-	//TODO change into map
-	vector<AuditEvent> logs;
-	//Forbid copy
-	//EventRegistry(const EventRegistry& that) = delete;
+	friend EventRegistry &operator<<(EventRegistry &, AuditEvent &);
+	friend EventRegistry &operator<<(EventRegistry &, EventRegistry &);
+	friend std::ostream &operator<<(std::ostream &out, const EventRegistry &er);
+
+	std::vector<AuditEvent> logs;
+	/**
+	 * For every license keep track of the events who progressed most
+	 * in the validation process
+	 */
+	std::map<std::string, size_t> mostAdvancedLogIdx_by_LicenseId;
+	int current_validation_step;
+
 public:
 	EventRegistry();
-	//operator <<
-	void append(const EventRegistry& eventRegistry);
-	void turnLastEventIntoError();
-	bool turnEventIntoError(EVENT_TYPE event);
-	bool turnErrosIntoWarnings();
+	// operator <<
+	void append(const EventRegistry &eventRegistry);
 	/**
+	 * Turn the event warning for the license with the most advanced status
+	 * into an error.
+	 */
+	bool turnWarningsIntoErrors();
+	bool turnErrorsIntoWarnings();
+	bool isGood() const;
+	/**
+	 * Return the last failure (event with warn or error status)
+	 * for the license with the most advanced status.
 	 * @return NULL if no failures are found.
 	 */
-	AuditEvent const * getLastFailure() const;
-	bool isGood() const;
-
-	void addError(EVENT_TYPE event);
-	void addEvent(EVENT_TYPE event, SEVERITY severity);
-	void addEvent(EVENT_TYPE event, SEVERITY severity,
-			const string& eventParameter);
-	void exportLastEvents(AuditEvent* auditEvents,int nlogs);
-
+	const AuditEvent *getLastFailure() const;
+	void addEvent(LCC_EVENT_TYPE event, const std::string &licenseLocationId);
+	void addEvent(LCC_EVENT_TYPE event, const char *licenseLocationId = nullptr, const char *info = nullptr);
+	void exportLastEvents(AuditEvent *auditEvents, int nlogs);
 };
-}
+}  // namespace license
 #endif /* EVENTREGISTRY_H_ */

--
Gitblit v1.9.1