From f4e683fc6bd6ac76f9979f49d737588b6ddf16b0 Mon Sep 17 00:00:00 2001
From: gcontini <1121667+gcontini@users.noreply.github.com>
Date: 周六, 14 11月 2020 22:13:13 +0800
Subject: [PATCH] windows smbios

---
 src/library/hw_identifier/default_strategy.cpp |   33 ++++++++++++++++++---------------
 1 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/src/library/hw_identifier/default_strategy.cpp b/src/library/hw_identifier/default_strategy.cpp
index a770512..5c924f1 100644
--- a/src/library/hw_identifier/default_strategy.cpp
+++ b/src/library/hw_identifier/default_strategy.cpp
@@ -13,17 +13,17 @@
 namespace license {
 namespace hw_identifier {
 
-static vector<LCC_API_IDENTIFICATION_STRATEGY> available_strategies() {
-	ExecutionEnvironment exec;
-	VIRTUALIZATION virtualization = exec.getVirtualization();
-	vector<LCC_API_IDENTIFICATION_STRATEGY> strategy_to_try;
-	if (virtualization == CONTAINER) {
+static vector<LCC_API_HW_IDENTIFICATION_STRATEGY> available_strategies() {
+	const os::ExecutionEnvironment exec;
+	LCC_API_VIRTUALIZATION_SUMMARY virtualization = exec.virtualization();
+	vector<LCC_API_HW_IDENTIFICATION_STRATEGY> strategy_to_try;
+	if (virtualization == LCC_API_VIRTUALIZATION_SUMMARY::CONTAINER) {
 		if (exec.is_docker()) {
 			strategy_to_try = LCC_DOCKER_STRATEGIES;
 		} else {
 			strategy_to_try = LCC_LXC_STRATEGIES;
 		}
-	} else if (virtualization == VM) {
+	} else if (virtualization == LCC_API_VIRTUALIZATION_SUMMARY::VM) {
 		if (exec.is_cloud()) {
 			strategy_to_try = LCC_CLOUD_STRATEGIES;
 		} else {
@@ -39,15 +39,15 @@
 
 DefaultStrategy::~DefaultStrategy() {}
 
-LCC_API_IDENTIFICATION_STRATEGY DefaultStrategy::identification_strategy() const { return STRATEGY_DEFAULT; }
+LCC_API_HW_IDENTIFICATION_STRATEGY DefaultStrategy::identification_strategy() const { return STRATEGY_DEFAULT; }
 
-FUNCTION_RETURN DefaultStrategy::identify_pc(HwIdentifier& pc_id) const {
-	vector<LCC_API_IDENTIFICATION_STRATEGY> strategy_to_try = available_strategies();
+FUNCTION_RETURN DefaultStrategy::generate_pc_id(HwIdentifier& pc_id) const {
+	vector<LCC_API_HW_IDENTIFICATION_STRATEGY> strategy_to_try = available_strategies();
 	FUNCTION_RETURN ret = FUNC_RET_NOT_AVAIL;
 	for (auto it : strategy_to_try) {
-		LCC_API_IDENTIFICATION_STRATEGY strat_to_try = it;
+		LCC_API_HW_IDENTIFICATION_STRATEGY strat_to_try = it;
 		unique_ptr<IdentificationStrategy> strategy_ptr = IdentificationStrategy::get_strategy(strat_to_try);
-		ret = strategy_ptr->identify_pc(pc_id);
+		ret = strategy_ptr->generate_pc_id(pc_id);
 		if (ret == FUNC_RET_OK) {
 			break;
 		}
@@ -56,20 +56,23 @@
 }
 
 std::vector<HwIdentifier> DefaultStrategy::alternative_ids() const {
-	vector<LCC_API_IDENTIFICATION_STRATEGY> strategy_to_try = available_strategies();
+	vector<LCC_API_HW_IDENTIFICATION_STRATEGY> strategy_to_try = available_strategies();
 	vector<HwIdentifier> identifiers;
 	FUNCTION_RETURN ret = FUNC_RET_NOT_AVAIL;
 	for (auto it : strategy_to_try) {
-		LCC_API_IDENTIFICATION_STRATEGY strat_to_try = it;
+		LCC_API_HW_IDENTIFICATION_STRATEGY strat_to_try = it;
 		unique_ptr<IdentificationStrategy> strategy_ptr = IdentificationStrategy::get_strategy(strat_to_try);
 		vector<HwIdentifier> alt_ids = strategy_ptr->alternative_ids();
 		identifiers.insert(alt_ids.begin(), alt_ids.end(), identifiers.end());
 	}
 	return identifiers;
 }
-
+/**
+* default strategy should never be used to validate an identifier. The strategy that was used in the first place to generate it
+* should handle it. DefaultStrategy is just a switch.
+*/
 LCC_EVENT_TYPE DefaultStrategy::validate_identifier(const HwIdentifier& identifier) const {
-	// default strategy should always realize itself as a concrete strategy
+	// 
 	return IDENTIFIERS_MISMATCH;
 }
 

--
Gitblit v1.9.1