summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-base
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-experiments/opendc-experiments-base')
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/provisioner/Provisioner.kt11
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/provisioner/ProvisioningContext.kt14
2 files changed, 8 insertions, 17 deletions
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/provisioner/Provisioner.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/provisioner/Provisioner.kt
index 66fcca22..eae5806e 100644
--- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/provisioner/Provisioner.kt
+++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/provisioner/Provisioner.kt
@@ -22,13 +22,12 @@
package org.opendc.experiments.provisioner
+import org.opendc.common.Dispatcher
import org.opendc.experiments.MutableServiceRegistry
import org.opendc.experiments.ServiceRegistry
import org.opendc.experiments.internal.ServiceRegistryImpl
-import java.time.InstantSource
import java.util.ArrayDeque
import java.util.SplittableRandom
-import kotlin.coroutines.CoroutineContext
/**
* A helper class to set up the experimental environment in a reproducible manner.
@@ -37,17 +36,15 @@ import kotlin.coroutines.CoroutineContext
* [ProvisioningStep]s are executed sequentially and ensure that the necessary infrastructure is configured and teared
* down after the simulation completes.
*
- * @param coroutineContext The [CoroutineContext] in which the environment is set up.
- * @param clock The simulation clock represented as [InstantSource].
+ * @param dispatcher The [Dispatcher] implementation for scheduling future tasks.
* @param seed A seed for initializing the randomness of the environment.
*/
-public class Provisioner(coroutineContext: CoroutineContext, clock: InstantSource, seed: Long) : AutoCloseable {
+public class Provisioner(dispatcher: Dispatcher, seed: Long) : AutoCloseable {
/**
* Implementation of [ProvisioningContext].
*/
private val context = object : ProvisioningContext {
- override val clock: InstantSource = clock
- override val coroutineContext: CoroutineContext = coroutineContext
+ override val dispatcher: Dispatcher = dispatcher
override val seeder: SplittableRandom = SplittableRandom(seed)
override val registry: MutableServiceRegistry = ServiceRegistryImpl()
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/provisioner/ProvisioningContext.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/provisioner/ProvisioningContext.kt
index 7eec6fa4..e53044ce 100644
--- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/provisioner/ProvisioningContext.kt
+++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/provisioner/ProvisioningContext.kt
@@ -22,27 +22,21 @@
package org.opendc.experiments.provisioner
+import org.opendc.common.Dispatcher
import org.opendc.experiments.MutableServiceRegistry
-import java.time.InstantSource
import java.util.SplittableRandom
import java.util.random.RandomGenerator
-import kotlin.coroutines.CoroutineContext
/**
* The [ProvisioningContext] class provides access to shared state between subsequent [ProvisioningStep]s, as well as
- * access to the simulation dispatcher (via [CoroutineContext]), the virtual clock, and a randomness seeder to allow
+ * access to the simulation dispatcher, the virtual clock, and a randomness seeder to allow
* the provisioning steps to initialize the (simulated) resources.
*/
public interface ProvisioningContext {
/**
- * The [CoroutineContext] in which the provisioner runs.
+ * The [Dispatcher] provided by the provisioner to schedule future events during the simulation.
*/
- public val coroutineContext: CoroutineContext
-
- /**
- * The [InstantSource] tracking the virtual simulation time.
- */
- public val clock: InstantSource
+ public val dispatcher: Dispatcher
/**
* A [SplittableRandom] instance used to seed the provisioners.