gcontini
2019-10-19 497745ad31c90545b288e2845049e0ce474bcbe2
src/library/locate/LocatorFactory.cpp
New file
@@ -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;
}
}
}