From 5a8a12d7a2c69610cd7a9a00ed1b3579b750a914 Mon Sep 17 00:00:00 2001
From: gcontini <1121667+gcontini@users.noreply.github.com>
Date: 周六, 16 11月 2019 21:39:10 +0800
Subject: [PATCH] issue #42 #38 \n review build system, \n issue #38 added clang format

---
 src/library/license++.cpp |   44 +++++++++++++++++++++++++-------------------
 1 files changed, 25 insertions(+), 19 deletions(-)

diff --git a/src/library/license++.cpp b/src/library/license++.cpp
index 03f2f2c..b702d51 100644
--- a/src/library/license++.cpp
+++ b/src/library/license++.cpp
@@ -1,6 +1,6 @@
 //============================================================================
 // Name        : license-manager-cpp.cpp
-// Author      : 
+// Author      :
 // Version     :
 // Copyright   : BSD
 //============================================================================
@@ -9,30 +9,32 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <cstring>
+#include <iostream>
+
 #include "api/license++.h"
-#include "LicenseReader.h"
+
+#include "LicenseReader.hpp"
 
 using namespace std;
-DllExport void print_error(char out_buffer[256], LicenseInfo* licenseInfo) {
+void print_error(char out_buffer[256], LicenseInfo* licenseInfo) {
 
 }
 
-DllExport void identify_pc(IDENTIFICATION_STRATEGY pc_id_method,
-		char chbuffer[PC_IDENTIFIER_SIZE + 1]) {
+void identify_pc(IDENTIFICATION_STRATEGY pc_id_method, char chbuffer[PC_IDENTIFIER_SIZE + 1]) {
 
 }
 
 static void mergeLicenses(vector<license::FullLicenseInfo> licenses,
 		LicenseInfo* license) {
-	if (license != NULL) {
+	if (license != nullptr) {
 		time_t curLicense_exp = 0;
 		for (auto it = licenses.begin(); it != licenses.end(); it++) {
 			//choose the license that expires later...
 			if (!it->has_expiry) {
 				it->toLicenseInfo(license);
 				break;
-			} else if (curLicense_exp < it->to_date) {
-				curLicense_exp = it->to_date;
+			} else if (curLicense_exp < it->expires_on()) {
+				curLicense_exp = it->expires_on();
 				it->toLicenseInfo(license);
 			}
 		}
@@ -40,7 +42,7 @@
 }
 
 EVENT_TYPE acquire_license(const char * product,
-		LicenseLocation licenseLocation, LicenseInfo* license) {
+		const LicenseLocation* licenseLocation, LicenseInfo* licenseInfoOut) {
 	license::LicenseReader lr = license::LicenseReader(licenseLocation);
 	vector<license::FullLicenseInfo> licenses;
 	license::EventRegistry er = lr.readLicenses(string(product), licenses);
@@ -49,38 +51,42 @@
 		vector<license::FullLicenseInfo> licenses_with_errors;
 		vector<license::FullLicenseInfo> licenses_ok;
 		for (auto it = licenses.begin(); it != licenses.end(); it++) {
-			license::EventRegistry validation_er = it->validate(0);
-			if (validation_er.isGood()) {
+			bool valid = it->validate(0,er);
+			if (valid) {
 				licenses_ok.push_back(*it);
 			} else {
 				licenses_with_errors.push_back(*it);
 			}
-			er.append(validation_er);
 		}
 		if (licenses_ok.size() > 0) {
-			er.turnErrosIntoWarnings();
+			er.turnErrorsIntoWarnings();
 			result = LICENSE_OK;
-			mergeLicenses(licenses_ok, license);
+			mergeLicenses(licenses_ok, licenseInfoOut);
 		} else {
+			er.turnWarningsIntoErrors();
 			result = er.getLastFailure()->event_type;
-			mergeLicenses(licenses_with_errors, license);
+			mergeLicenses(licenses_with_errors, licenseInfoOut);
 		}
 
 	} else {
+		er.turnWarningsIntoErrors();
 		result = er.getLastFailure()->event_type;
 	}
-	if (license != NULL) {
-		er.exportLastEvents(license->status, 5);
+#ifdef _DEBUG
+	cout << er <<endl;
+#endif
+	if (licenseInfoOut != nullptr) {
+		er.exportLastEvents(licenseInfoOut->status, AUDIT_EVENT_NUM);
 	}
 	return result;
 }
 
-DllExport enum EVENT_TYPE confirm_license(char * product,
+EVENT_TYPE confirm_license(char * product,
 		LicenseLocation licenseLocation) {
 	return LICENSE_OK;
 }
 
-DllExport enum EVENT_TYPE release_license(char * product,
+EVENT_TYPE release_license(char * product,
 		LicenseLocation licenseLocation) {
 	return LICENSE_OK;
 }

--
Gitblit v1.9.1