From 497745ad31c90545b288e2845049e0ce474bcbe2 Mon Sep 17 00:00:00 2001 From: gcontini <1121667+gcontini@users.noreply.github.com> Date: 周六, 19 10月 2019 10:10:45 +0800 Subject: [PATCH] Merge branch 'feature/code_review_and_refactor' into develop --- src/library/locate/LocatorFactory.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 46 insertions(+), 0 deletions(-) diff --git a/src/library/locate/LocatorFactory.cpp b/src/library/locate/LocatorFactory.cpp new file mode 100644 index 0000000..1b45752 --- /dev/null +++ b/src/library/locate/LocatorFactory.cpp @@ -0,0 +1,46 @@ +/* + * LocatorFactory.cpp + * + * Created on: Oct 13, 2019 + * Author: Gabriele Contini + */ + +#include "build_properties.h" + +#include "LocatorStrategy.hpp" +#include "LocatorFactory.hpp" +#include "ApplicationFolder.hpp" +#include "EnvironmentVarData.hpp" +#include "EnvironmentVarLocation.hpp" +#include "ExternalDefinition.hpp" + +namespace license { +namespace locate { + +FUNCTION_RETURN LocatorFactory::get_active_strategies( + std::vector<std::unique_ptr<LocatorStrategy>> &strategies, + const LicenseLocation *locationHint) { +#if(FIND_LICENSE_NEAR_MODULE) + strategies.push_back( + std::unique_ptr<LocatorStrategy>( + (LocatorStrategy*) new ApplicationFolder())); +#endif +#if(FIND_LICENSE_WITH_ENV_VAR) + strategies.push_back( + std::unique_ptr<LocatorStrategy>( + (LocatorStrategy*) new EnvironmentVarLocation())); + strategies.push_back( + std::unique_ptr<LocatorStrategy>( + (LocatorStrategy*) new EnvironmentVarData())); +#endif + if (locationHint != nullptr) { + strategies.push_back( + std::unique_ptr<LocatorStrategy>( + (LocatorStrategy*) new ExternalDefinition(locationHint))); + } + return strategies.size() > 0 ? FUNC_RET_OK : FUNC_RET_NOT_AVAIL; + +} + +} +} -- Gitblit v1.9.1