/* * LocatorFactory.cpp * * Created on: Oct 13, 2019 * Author: Gabriele Contini */ #include "LocatorStrategy.hpp" #include "LocatorFactory.hpp" #include "ApplicationFolder.hpp" #include "EnvironmentVarData.hpp" #include "EnvironmentVarLocation.hpp" #include "ExternalDefinition.hpp" namespace license { namespace locate { static std::vector> extra_strategies; bool LocatorFactory::find_license_near_moduleb = FIND_LICENSE_NEAR_MODULE; bool LocatorFactory::find_license_with_env_varb = FIND_LICENSE_WITH_ENV_VAR; FUNCTION_RETURN LocatorFactory::get_active_strategies(std::vector> &strategies, const LicenseLocation *locationHint) { if (find_license_near_moduleb) { strategies.push_back( std::unique_ptr(dynamic_cast(new ApplicationFolder()))); } if (find_license_with_env_varb) { strategies.push_back( std::unique_ptr(dynamic_cast(new EnvironmentVarLocation()))); strategies.push_back( std::unique_ptr(dynamic_cast(new EnvironmentVarData()))); } if (locationHint != nullptr) { strategies.push_back( std::unique_ptr(dynamic_cast(new ExternalDefinition(locationHint)))); } return strategies.size() > 0 ? FUNC_RET_OK : FUNC_RET_NOT_AVAIL; } } // namespace locate } // namespace license