From c4ce5ebb7de6494cb8d90076cba8596aa0cbabeb Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Mon, 11 Oct 2021 11:47:39 +0200 Subject: feat(trace): Support conversion from Azure trace format This change adds support for converting the Azure VM traces into the OpenDC trace format. --- .../org/opendc/trace/util/CompositeTableReader.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'opendc-trace/opendc-trace-api/src/main/kotlin/org') 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 + } + } } -- cgit v1.2.3