From 079123b5c4c25a453ba4d3c6ffa1b5f9f39c5dad Mon Sep 17 00:00:00 2001
From: Gabriele Contini <contini.mailing@gmail.com>
Date: 周六, 21 3月 2020 20:57:47 +0800
Subject: [PATCH] update docs

---
 src/templates/licensecc_properties.h.in |  108 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 80 insertions(+), 28 deletions(-)

diff --git a/src/templates/licensecc_properties.h.in b/src/templates/licensecc_properties.h.in
index b8026f9..55c22a2 100644
--- a/src/templates/licensecc_properties.h.in
+++ b/src/templates/licensecc_properties.h.in
@@ -1,6 +1,22 @@
+/** 
+ * \file
+ * This file contains all the properties that are customizable on on a per-project basis eg:
+ * 1) api parameter sizes
+ * 2)
+ *
+ * It is safe to place the values that your project need to customize here, since each project get its own copy of this
+ * file.
+ */
+
+/** 
+ * \addtogroup api
+ * @{
+ */
+ 
 #ifndef BUILD_PROPERTIES_H_
 #define BUILD_PROPERTIES_H_
 
+ 
 /**
  * This file contains all the properties that are customizable on on a per-project basis eg:
  * 1) api parameter sizes
@@ -22,35 +38,8 @@
 #define LCC_LICENSE_FILE_EXTENSION ".lic"
 #define LCC_LICENSE_LOCATION_ENV_VAR "LICENSE_LOCATION"
 #define LCC_LICENSE_DATA_ENV_VAR "LICENSE_DATA"
-/**
- * Environment variable that if defined will change the identification strategy used to generate the hardware identifier.
- * If a client has an unstable pc-identifier use this variable to generate one. 
- * Valid values are integers defined in `LCC_IDENTIFICATION_STRATEGY` enum.
- */
-#define LCC_IDENTIFICATION_STRATEGY_ENV_VAR "IDENTIFICATION_STRATEGY"
 
-/**
- * Enum to select a specific pc identification_strategy. DEFAULT Should be used in most cases.
- */
-typedef enum {
-	STRATEGY_DEFAULT = -1,
-	STRATEGY_ETHERNET = 0,
-	STRATEGY_IP_ADDRESS = 1,
-	STRATEGY_DISK_NUM = 2,
-	STRATEGY_DISK_LABEL = 3,
-	STRATEGY_MEMORY_CPU_SIZE = 4,
-	STRATEGY_HOST_NAME = 5,
-	STRATEGY_NONE = -2
-} LCC_API_IDENTIFICATION_STRATEGY;
-
-//strategies used for each virtual environment.
-#define LCC_BARE_TO_METAL_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_DISK_LABEL, STRATEGY_NONE }
-#define LCC_VM_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_NONE }
-#define LCC_LXC_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_NONE }
-#define LCC_DOCKER_STRATEGIES { STRATEGY_NONE }
-#define LCC_CLOUD_STRATEGIES { STRATEGY_NONE }
-
-//Api structure limits
+// Api structure limits
 /**
  * Maximum size of a license file or base64 data
  */
@@ -71,4 +60,67 @@
 */
 #define LCC_VERIFY_MAGIC (lic_info.m_magic == @LCC_PROJECT_MAGIC_NUM@)
 
+/**
+ *
+ * Environment variable name that if defined will change the identification strategy used to generate the hardware
+ * identifier. If a client has an unstable pc-identifier use this variable to generate one. Valid values are integers
+ * defined in `LCC_IDENTIFICATION_STRATEGY` enum.
+ */
+#define LCC_IDENTIFICATION_STRATEGY_ENV_VAR "IDENTIFICATION_STRATEGY"
+
+/**
+ * \enum LCC_API_HW_IDENTIFICATION_STRATEGY
+ *
+ * This enum list all the possible pc identification strategy. It is to be used as a parameter of ::identify_pc
+ *
+ * ::STRATEGY_DEFAULT Should be used in most cases.
+ */
+enum LCC_API_HW_IDENTIFICATION_STRATEGY {
+	/**
+	 * \brief Default strategy.
+	 *
+	 * This strategy try to detect which virtual environment the software is running in.
+	 *  - If no virtual environment is detected it will try the strategies defined in ::LCC_BARE_TO_METAL_STRATEGIES
+	 *  - If it detects the software is running in a virtual machine it will use ::LCC_VM_STRATEGIES
+	 *  - If it detects the software is running in a docker or in an LXC it will use ::LCC_DOCKER_STRATEGIES or
+	 * ::LCC_DOCKER_STRATEGIES
+	 *  - If it detects the software is running in a virtual machine in the cloud it will use ::LCC_CLOUD_STRATEGIES
+	 */
+	STRATEGY_DEFAULT = -1,
+	STRATEGY_ETHERNET = 0,
+	STRATEGY_IP_ADDRESS = 1,
+	STRATEGY_DISK_NUM = 2,
+	STRATEGY_DISK_LABEL = 3,
+	STRATEGY_MEMORY_CPU_SIZE = 4,
+	STRATEGY_HOST_NAME = 5,
+	STRATEGY_NONE = -2
+};
+
+/**
+ * @addtogroup strategies
+ * @{
+ */
+/**
+ * List the strategies used when no virtual envrionment is detected
+ */
+#define LCC_BARE_TO_METAL_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_DISK_LABEL, STRATEGY_NONE }
+/**
+ * List the strategies used when the software is executing in a virtual machine
+ */
+#define LCC_VM_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_NONE }
+#define LCC_LXC_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_NONE }
+#define LCC_DOCKER_STRATEGIES { STRATEGY_NONE }
+/**
+ * List the strategies used when it's detected an execution in the cloud
+ */
+#define LCC_CLOUD_STRATEGIES { STRATEGY_NONE }
+
+/**
+ * @}
+ */
+
+
 #endif
+/**
+ * @}
+ */

--
Gitblit v1.9.1