summaryrefslogtreecommitdiff
path: root/opendc-trace/opendc-trace-api/src
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-10-25 17:40:04 +0200
committerGitHub <noreply@github.com>2021-10-25 17:40:04 +0200
commitb4bf7268cbb6d22d3966f469a6b7721b04d91907 (patch)
tree13756bd08650c0e41e24132b8dab0fad327ddf31 /opendc-trace/opendc-trace-api/src
parenta41cd2504f15f3e3e49eb533faca390911cc5110 (diff)
parentc4ce5ebb7de6494cb8d90076cba8596aa0cbabeb (diff)
merge: Support conversion from Azure traces to OpenDC traces (#36)
This pull request adds support for converting Azure traces to the OpenDC trace format. * Support GZIP files in Azure trace * Fix timestamp retrieval for Azure trace * Add column for CPU capacity in OpenDC format * Support conversion from Azure trace format
Diffstat (limited to 'opendc-trace/opendc-trace-api/src')
-rw-r--r--opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/util/CompositeTableReader.kt19
1 files changed, 14 insertions, 5 deletions
diff --git a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/util/CompositeTableReader.kt b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/util/CompositeTableReader.kt
index dafc0798..11e032c7 100644
--- a/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/util/CompositeTableReader.kt
+++ b/opendc-trace/opendc-trace-api/src/main/kotlin/org/opendc/trace/util/CompositeTableReader.kt
@@ -46,11 +46,7 @@ public abstract class CompositeTableReader : TableReader {
protected abstract fun nextReader(): TableReader?
override fun nextRow(): Boolean {
- if (!hasStarted) {
- assert(delegate == null) { "Duplicate initialization" }
- delegate = nextReader()
- hasStarted = true
- }
+ tryStart()
var delegate = delegate
@@ -68,6 +64,8 @@ public abstract class CompositeTableReader : TableReader {
}
override fun resolve(column: TableColumn<*>): Int {
+ tryStart()
+
val delegate = delegate
return delegate?.resolve(column) ?: -1
}
@@ -107,4 +105,15 @@ public abstract class CompositeTableReader : TableReader {
}
override fun toString(): String = "CompositeTableReader"
+
+ /**
+ * Try to obtain the initial delegate.
+ */
+ private fun tryStart() {
+ if (!hasStarted) {
+ assert(delegate == null) { "Duplicate initialization" }
+ delegate = nextReader()
+ hasStarted = true
+ }
+ }
}