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 da21f20..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() { - os::ExecutionEnvironment exec; - os::VIRTUALIZATION virtualization = exec.getVirtualization(); - vector<LCC_API_IDENTIFICATION_STRATEGY> strategy_to_try; - if (virtualization == os::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 == os::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