From 34bde357951b6d1ee3b99446161c5abff4e049a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Henning?= <soeren.henning@email.uni-kiel.de>
Date: Sat, 17 Apr 2021 14:17:30 +0200
Subject: [PATCH] Add FullSearch strategy

---
 .../strategies/searchstrategy/FullSearch.kt   | 25 +++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/FullSearch.kt

diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/FullSearch.kt b/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/FullSearch.kt
new file mode 100644
index 000000000..3936d1982
--- /dev/null
+++ b/theodolite-quarkus/src/main/kotlin/theodolite/strategies/searchstrategy/FullSearch.kt
@@ -0,0 +1,25 @@
+package theodolite.strategies.searchstrategy
+
+import mu.KotlinLogging
+import theodolite.execution.BenchmarkExecutor
+import theodolite.util.LoadDimension
+import theodolite.util.Resource
+
+private val logger = KotlinLogging.logger {}
+
+/**
+ *  Linear-search-like implementation for determining the smallest suitable number of instances.
+ *
+ * @param benchmarkExecutor Benchmark executor which runs the individual benchmarks.
+ */
+class LinearSearch(benchmarkExecutor: BenchmarkExecutor) : SearchStrategy(benchmarkExecutor) {
+
+    override fun findSuitableResource(load: LoadDimension, resources: List<Resource>): Resource? {
+        for (res in resources) {
+
+            logger.info { "Running experiment with load '$load' and resources '$res'" }
+            if (this.benchmarkExecutor.runExperiment(load, res)) return res
+        }
+        return null
+    }
+}
-- 
GitLab