summaryrefslogtreecommitdiff
path: root/odcsim/odcsim-api/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'odcsim/odcsim-api/src/main')
-rw-r--r--odcsim/odcsim-api/src/main/kotlin/com/atlarge/odcsim/ProcessContext.kt9
1 files changed, 8 insertions, 1 deletions
diff --git a/odcsim/odcsim-api/src/main/kotlin/com/atlarge/odcsim/ProcessContext.kt b/odcsim/odcsim-api/src/main/kotlin/com/atlarge/odcsim/ProcessContext.kt
index 2a72e331..30ef4114 100644
--- a/odcsim/odcsim-api/src/main/kotlin/com/atlarge/odcsim/ProcessContext.kt
+++ b/odcsim/odcsim-api/src/main/kotlin/com/atlarge/odcsim/ProcessContext.kt
@@ -27,11 +27,13 @@ package com.atlarge.odcsim
import java.time.Clock
import kotlin.coroutines.CoroutineContext
import kotlin.coroutines.coroutineContext
+import kotlinx.coroutines.CoroutineScope
+import org.slf4j.Logger
/**
* Represents the execution context of a logical process in simulation.
*/
-public interface ProcessContext : CoroutineContext.Element {
+public interface ProcessContext : CoroutineContext.Element, CoroutineScope {
/**
* Key for [ProcessContext] instance in the coroutine context.
*/
@@ -48,6 +50,11 @@ public interface ProcessContext : CoroutineContext.Element {
public val clock: Clock
/**
+ * A logger instance tied to the logical process.
+ */
+ public val log: Logger
+
+ /**
* Spawn an anonymous logical process in the simulation universe with the specified [behavior].
*/
public fun spawn(behavior: Behavior): ProcessRef