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/api/datatypes.h |   59 ++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 38 insertions(+), 21 deletions(-)

diff --git a/src/library/api/datatypes.h b/src/library/api/datatypes.h
index 899d4c1..439f477 100644
--- a/src/library/api/datatypes.h
+++ b/src/library/api/datatypes.h
@@ -1,12 +1,6 @@
 #ifndef DATATYPES_H_
 #define DATATYPES_H_
 
-/*
- * This include file is the public api di License++
- * You should include this file if your software don't plan to use
- * the part of the library dealing with features.
- * Otherwise licensepp-features.h should be included.
- */
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -19,32 +13,38 @@
 
 #ifdef __unix__
 #define DllExport
+#ifndef MAX_PATH
+	#define MAX_PATH 1024
+#endif
 #else
 #include <windows.h>
 #define DllExport  __declspec( dllexport )
 #endif
 
-#define ENVIRONMENT_VAR_NAME_MAX 64
+
 #define PC_IDENTIFIER_SIZE 18
 #define PROPRIETARY_DATA_SIZE 16
+#define AUDIT_EVENT_NUM 5
 
-#define LICENESE_INT_VERSION 100
-#define LICENSEPP_VERSION "1.0.0"
+#define LICENESE_INT_VERSION 110
+#define LICENSEPP_VERSION "1.1.0"
 
 typedef enum {
-	LICENSE_OK = 0, 						//OK
+	LICENSE_OK = 0, 					//OK
 	LICENSE_FILE_NOT_FOUND = 1, 		//license file not found
 	LICENSE_SERVER_NOT_FOUND = 2, 		//license server can't be contacted
 	ENVIRONMENT_VARIABLE_NOT_DEFINED = 3, //environment variable not defined
-	FILE_FORMAT_NOT_RECOGNIZED = 4,	//license file has invalid format (not .ini file)
-	LICENSE_MALFORMED = 5, //some mandatory field are missing, or data can't be fully read.
+	FILE_FORMAT_NOT_RECOGNIZED = 4,		 //license file has invalid format (not .ini file)
+	LICENSE_MALFORMED = 5,			//some mandatory field are missing, or data can't be fully read.
 	PRODUCT_NOT_LICENSED = 6,		//this product was not licensed
 	PRODUCT_EXPIRED = 7,
-	LICENSE_CORRUPTED = 8,//License signature didn't match with current license
-	IDENTIFIERS_MISMATCH = 9, //Calculated identifier and the one provided in license didn't match
+	LICENSE_CORRUPTED = 8,		//License signature didn't match with current license
+	IDENTIFIERS_MISMATCH = 9,   //Calculated identifier and the one provided in license didn't match
 
-	LICENSE_FILE_FOUND = 100,
-	LICENSE_VERIFIED = 101
+	LICENSE_SPECIFIED = 100,	//license location was specified
+	LICENSE_FOUND = 101, 		//License file has been found or license data has been located
+	PRODUCT_FOUND = 102,		//License has been loaded and the declared product has been found
+	SIGNATURE_VERIFIED = 103
 
 } EVENT_TYPE;
 
@@ -59,23 +59,40 @@
 typedef struct {
 	SEVERITY severity;
 	EVENT_TYPE event_type;
-	char param1[256];
+	/**
+	 * License file name or location where the license is stored.
+	 */
+	char license_reference[MAX_PATH];
 	char param2[256];
 } AuditEvent;
 
+/**
+ * This structure contains informations on the raw license data. Software authors
+ * can specify the location of the license file or its full content.
+ *
+ * Can be NULL, in this case OpenLicenseManager will try to figure out the
+ * license file location on its own.
+ */
 typedef struct {
+	/**
+	 * A list of absolute path separated by ';' containing the eventual location
+	 * of the license files. Can be NULL.
+	 */
 	const char *licenseFileLocation;
-	const char *environmentVariableName;
-	bool openFileNearModule;
+	/**
+	 * The application can provide the full license content through this string.
+	 * It can be both in encoded form (base64) or in plain. It's optional.
+	 */
+	const char *licenseData;
 } LicenseLocation;
 
 typedef struct {
 	/**
 	 * Detailed reason of success/failure. Reasons for a failure can be
 	 * multiple (for instance, license expired and signature not verified).
-	 * Only the last 5 are reported.
+	 * Only the last AUDIT_EVENT_NUM are reported.
 	 */
-	AuditEvent status[5];
+	AuditEvent status[AUDIT_EVENT_NUM];
 	/**
 	 * Eventual expiration date of the software,
 	 * can be '\0' if the software don't expire

--
Gitblit v1.9.1