/* * 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> &strategies, const LicenseLocation *locationHint) { #if(FIND_LICENSE_NEAR_MODULE) strategies.push_back( std::unique_ptr( (LocatorStrategy*) new ApplicationFolder())); #endif #if(FIND_LICENSE_WITH_ENV_VAR) strategies.push_back( std::unique_ptr( (LocatorStrategy*) new EnvironmentVarLocation())); strategies.push_back( std::unique_ptr( (LocatorStrategy*) new EnvironmentVarData())); #endif if (locationHint != nullptr) { strategies.push_back( std::unique_ptr( (LocatorStrategy*) new ExternalDefinition(locationHint))); } return strategies.size() > 0 ? FUNC_RET_OK : FUNC_RET_NOT_AVAIL; } } }