summaryrefslogtreecommitdiff
path: root/opendc-simulator/opendc-simulator-flow/src/main
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2022-10-06 15:34:19 +0200
committerGitHub <noreply@github.com>2022-10-06 15:34:19 +0200
commit7ba3b953300c46b4e3afcde17cd3dd14b1af8406 (patch)
tree950ba678869ec868c26ab3b95b57e4cabadb23c7 /opendc-simulator/opendc-simulator-flow/src/main
parentc2047d09b27b0c05f5c203509dde524e17d3b729 (diff)
parent47357afd16f928260db34d4dd3e686fb9ee7c5ff (diff)
merge: Update build and runtime dependencies (#107)
This pull request updates the build and runtime dependencies used by OpenDC to their latest version compatible with the project. ## Implementation Notes :hammer_and_pick: * Update simulator dependency versions * Remove unused distribution conventions * Update next version to 3.0 * Eliminate use of wildcard imports * Switch to Spotless for formatting
Diffstat (limited to 'opendc-simulator/opendc-simulator-flow/src/main')
-rw-r--r--opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/FlowForwarder.kt5
-rw-r--r--opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowConsumerContextImpl.kt27
-rw-r--r--opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowDeque.kt2
-rw-r--r--opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowEngineImpl.kt7
-rw-r--r--opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/mux/ForwardingFlowMultiplexer.kt8
-rw-r--r--opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/mux/MaxMinFlowMultiplexer.kt17
6 files changed, 45 insertions, 21 deletions
diff --git a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/FlowForwarder.kt b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/FlowForwarder.kt
index 6fa2971a..5202c252 100644
--- a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/FlowForwarder.kt
+++ b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/FlowForwarder.kt
@@ -226,10 +226,11 @@ public class FlowForwarder(
* Reset the delegate.
*/
private fun reset() {
- if (isCoupled)
+ if (isCoupled) {
_innerCtx?.close()
- else
+ } else {
_innerCtx?.push(0.0)
+ }
delegate = null
hasDelegateStarted = false
diff --git a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowConsumerContextImpl.kt b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowConsumerContextImpl.kt
index bc6bae71..fba3af5f 100644
--- a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowConsumerContextImpl.kt
+++ b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowConsumerContextImpl.kt
@@ -23,8 +23,11 @@
package org.opendc.simulator.flow.internal
import mu.KotlinLogging
-import org.opendc.simulator.flow.*
-import java.util.*
+import org.opendc.simulator.flow.FlowConsumerContext
+import org.opendc.simulator.flow.FlowConsumerLogic
+import org.opendc.simulator.flow.FlowSource
+import org.opendc.simulator.flow.batch
+import java.util.ArrayDeque
import kotlin.math.min
/**
@@ -84,19 +87,21 @@ internal class FlowConsumerContextImpl(
get() = _flags and ConnConvergeSource == ConnConvergeSource
set(value) {
_flags =
- if (value)
+ if (value) {
_flags or ConnConvergeSource
- else
+ } else {
_flags and ConnConvergeSource.inv()
+ }
}
override var shouldConsumerConverge: Boolean
get() = _flags and ConnConvergeConsumer == ConnConvergeConsumer
set(value) {
_flags =
- if (value)
+ if (value) {
_flags or ConnConvergeConsumer
- else
+ } else {
_flags and ConnConvergeConsumer.inv()
+ }
}
/**
@@ -106,10 +111,11 @@ internal class FlowConsumerContextImpl(
get() = _flags and ConnDisableTimers != ConnDisableTimers
set(value) {
_flags =
- if (!value)
+ if (!value) {
_flags or ConnDisableTimers
- else
+ } else {
_flags and ConnDisableTimers.inv()
+ }
}
/**
@@ -238,10 +244,11 @@ internal class FlowConsumerContextImpl(
// IMPORTANT: Re-fetch the flags after the callback might have changed those
flags = _flags
- if (duration != Long.MAX_VALUE)
+ if (duration != Long.MAX_VALUE) {
now + duration
- else
+ } else {
duration
+ }
} else {
deadline
}
diff --git a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowDeque.kt b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowDeque.kt
index 94232954..403a9aec 100644
--- a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowDeque.kt
+++ b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowDeque.kt
@@ -22,7 +22,7 @@
package org.opendc.simulator.flow.internal
-import java.util.*
+import java.util.ArrayDeque
/**
* A specialized [ArrayDeque] that tracks the [FlowConsumerContextImpl] instances that have updated in an interpreter
diff --git a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowEngineImpl.kt b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowEngineImpl.kt
index 3c79d54e..6fd1ef31 100644
--- a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowEngineImpl.kt
+++ b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/internal/FlowEngineImpl.kt
@@ -26,9 +26,12 @@ import kotlinx.coroutines.Delay
import kotlinx.coroutines.DisposableHandle
import kotlinx.coroutines.InternalCoroutinesApi
import kotlinx.coroutines.Runnable
-import org.opendc.simulator.flow.*
+import org.opendc.simulator.flow.FlowConsumerContext
+import org.opendc.simulator.flow.FlowConsumerLogic
+import org.opendc.simulator.flow.FlowEngine
+import org.opendc.simulator.flow.FlowSource
import java.time.Clock
-import java.util.*
+import java.util.ArrayDeque
import kotlin.coroutines.ContinuationInterceptor
import kotlin.coroutines.CoroutineContext
diff --git a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/mux/ForwardingFlowMultiplexer.kt b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/mux/ForwardingFlowMultiplexer.kt
index c50e9bbc..53f94a94 100644
--- a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/mux/ForwardingFlowMultiplexer.kt
+++ b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/mux/ForwardingFlowMultiplexer.kt
@@ -22,7 +22,13 @@
package org.opendc.simulator.flow.mux
-import org.opendc.simulator.flow.*
+import org.opendc.simulator.flow.FlowConnection
+import org.opendc.simulator.flow.FlowConsumer
+import org.opendc.simulator.flow.FlowConvergenceListener
+import org.opendc.simulator.flow.FlowCounters
+import org.opendc.simulator.flow.FlowEngine
+import org.opendc.simulator.flow.FlowForwarder
+import org.opendc.simulator.flow.FlowSource
import java.util.ArrayDeque
/**
diff --git a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/mux/MaxMinFlowMultiplexer.kt b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/mux/MaxMinFlowMultiplexer.kt
index f2a4c1a4..d9c6f893 100644
--- a/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/mux/MaxMinFlowMultiplexer.kt
+++ b/opendc-simulator/opendc-simulator-flow/src/main/kotlin/org/opendc/simulator/flow/mux/MaxMinFlowMultiplexer.kt
@@ -22,7 +22,14 @@
package org.opendc.simulator.flow.mux
-import org.opendc.simulator.flow.*
+import org.opendc.simulator.flow.FlowConnection
+import org.opendc.simulator.flow.FlowConsumer
+import org.opendc.simulator.flow.FlowConsumerContext
+import org.opendc.simulator.flow.FlowConsumerLogic
+import org.opendc.simulator.flow.FlowConvergenceListener
+import org.opendc.simulator.flow.FlowCounters
+import org.opendc.simulator.flow.FlowEngine
+import org.opendc.simulator.flow.FlowSource
import org.opendc.simulator.flow.internal.D_MS_TO_S
import org.opendc.simulator.flow.internal.MutableFlowCounters
import kotlin.math.min
@@ -248,7 +255,6 @@ public class MaxMinFlowMultiplexer(
* This method is invoked when one of the inputs converges.
*/
fun convergeInput(input: Input, now: Long) {
-
val lastConverge = _lastConverge
val lastConvergeInput = _lastConvergeInput
val parent = parent
@@ -511,7 +517,7 @@ public class MaxMinFlowMultiplexer(
private val engine: FlowEngine,
private val scheduler: Scheduler,
@JvmField val isCoupled: Boolean,
- initialCapacity: Double,
+ initialCapacity: Double
) : FlowConsumer, FlowConsumerLogic, Comparable<Input> {
/**
* A flag to indicate that the consumer is active.
@@ -780,10 +786,11 @@ public class MaxMinFlowMultiplexer(
return if (_isActivationOutput) {
// If this output is the activation output, synchronously run the scheduler and return the new deadline
val deadline = scheduler.runScheduler(now)
- if (deadline == Long.MAX_VALUE)
+ if (deadline == Long.MAX_VALUE) {
deadline
- else
+ } else {
deadline - now
+ }
} else {
// Output is not the activation output, so trigger activation output and do not install timer for this
// output (by returning `Long.MAX_VALUE`)