From 2358257c1080b7ce78270535f82f0b960d48261a Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Mon, 6 Jun 2022 16:21:21 +0200 Subject: refactor(trace/api): Introduce type system for trace API This change updates the trace API by introducing a limited type system for the table columns. Previously, the table columns could have any possible type representable by the JVM. With this change, we limit the available types to a small type system. --- .../org/opendc/compute/workload/ComputeWorkloadLoader.kt | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'opendc-compute/opendc-compute-workload') diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt index 720c7e58..12c2325a 100644 --- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt +++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt @@ -29,8 +29,6 @@ import org.opendc.trace.* import org.opendc.trace.conv.* import java.io.File import java.lang.ref.SoftReference -import java.time.Duration -import java.time.Instant import java.util.* import java.util.concurrent.ConcurrentHashMap import kotlin.math.max @@ -68,9 +66,9 @@ public class ComputeWorkloadLoader(private val baseDir: File) { return try { while (reader.nextRow()) { - val id = reader.get(idCol) as String - val time = reader.get(timestampCol) as Instant - val duration = reader.get(durationCol) as Duration + val id = reader.getString(idCol)!! + val time = reader.getInstant(timestampCol)!! + val duration = reader.getDuration(durationCol)!! val cores = reader.getInt(coresCol) val cpuUsage = reader.getDouble(usageCol) @@ -105,13 +103,13 @@ public class ComputeWorkloadLoader(private val baseDir: File) { return try { while (reader.nextRow()) { - val id = reader.get(idCol) as String + val id = reader.getString(idCol)!! if (!fragments.containsKey(id)) { continue } - val submissionTime = reader.get(startTimeCol) as Instant - val endTime = reader.get(stopTimeCol) as Instant + val submissionTime = reader.getInstant(startTimeCol)!! + val endTime = reader.getInstant(stopTimeCol)!! val cpuCount = reader.getInt(cpuCountCol) val cpuCapacity = reader.getDouble(cpuCapacityCol) val memCapacity = reader.getDouble(memCol) / 1000.0 // Convert from KB to MB @@ -162,7 +160,7 @@ public class ComputeWorkloadLoader(private val baseDir: File) { while (reader.nextRow()) { @Suppress("UNCHECKED_CAST") - val members = reader.get(membersCol) as Set + val members = reader.getSet(membersCol, String::class.java)!! val target = reader.getDouble(targetCol) val score = reader.getDouble(scoreCol) -- cgit v1.2.3