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