summaryrefslogtreecommitdiff
path: root/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2024-04-16 09:29:53 +0200
committerGitHub <noreply@github.com>2024-04-16 09:29:53 +0200
commitfff89d25bd3c7b874e68261d21695c473c30ed7d (patch)
treebe368dd745e8119dbdefd9cd0b012c7ff9080a7a /opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi
parenta7b0afbb5b7059274962ade234a50240677008fd (diff)
Revamped the trace system. All TraceFormat files are now in the api m… (#216)
* Revamped the trace system. All TraceFormat files are now in the api module. This fixes some problems with not being able to use types of traces * applied spotless
Diffstat (limited to 'opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi')
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt29
1 files changed, 27 insertions, 2 deletions
diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt
index 83537822..89cac608 100644
--- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/spi/TraceFormat.kt
@@ -24,6 +24,13 @@ package org.opendc.trace.spi
import org.opendc.trace.TableReader
import org.opendc.trace.TableWriter
+import org.opendc.trace.azure.AzureTraceFormat
+import org.opendc.trace.bitbrains.BitbrainsTraceFormat
+import org.opendc.trace.formats.opendc.OdcVmTraceFormat
+import org.opendc.trace.gwf.GwfTraceFormat
+import org.opendc.trace.swf.SwfTraceFormat
+import org.opendc.trace.wfformat.WfFormatTraceFormat
+import org.opendc.trace.wtf.WtfTraceFormat
import java.nio.file.Path
import java.util.ServiceLoader
@@ -107,13 +114,31 @@ public interface TraceFormat {
return ServiceLoader.load(TraceFormat::class.java)
}
+// /**
+// * Obtain a [TraceFormat] implementation by [name].
+// */
+// @JvmStatic
+// public fun byName(name: String): TraceFormat? {
+//
+// val loader = ServiceLoader.load(TraceFormat::class.java)
+// return loader.find { it.name == name }
+// }
+
/**
* Obtain a [TraceFormat] implementation by [name].
*/
@JvmStatic
public fun byName(name: String): TraceFormat? {
- val loader = ServiceLoader.load(TraceFormat::class.java)
- return loader.find { it.name == name }
+ return when (name) {
+ "opendc-vm" -> OdcVmTraceFormat()
+ "azure" -> AzureTraceFormat()
+ "bitbrains" -> BitbrainsTraceFormat()
+ "gwf" -> GwfTraceFormat()
+ "swf" -> SwfTraceFormat()
+ "wfformat" -> WfFormatTraceFormat()
+ "wtf" -> WtfTraceFormat()
+ else -> null
+ }
}
}
}