class DelegatingSimClock extends SimClock
This implementation allows us to control many independent sim clocks at the same time. Possible race conditions that might happen with concurrent start/stop of clocks are not being addressed but are currently unlikely to happen.
- Alphabetic
- By Inheritance
- DelegatingSimClock
- SimClock
- Clock
- NamedLogging
- AutoCloseable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new DelegatingSimClock(currentClocks: () => Seq[SimClock], start: CantonTimestamp = CantonTimestamp.Epoch, loggerFactory: NamedLoggerFactory)
- currentClocks
a function that returns all current running sim clocks
- start
start time of this clock
Type Members
- case class Queued(action: (CantonTimestamp) => Unit, timestamp: CantonTimestamp) extends Product with Serializable
- Attributes
- protected
- Definition Classes
- Clock
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def addToQueue(queue: Queued): Unit
- def advance(duration: Duration)(implicit traceContext: TraceContext): Unit
- Definition Classes
- DelegatingSimClock → SimClock
- def advanceTo(timestamp: CantonTimestamp, doFlush: Boolean = true)(implicit traceContext: TraceContext): Unit
- Definition Classes
- DelegatingSimClock → SimClock
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def close(): Unit
- Definition Classes
- DelegatingSimClock → SimClock → AutoCloseable
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def failTasks(): Unit
- Attributes
- protected
- Definition Classes
- Clock
- def flush(): Option[CantonTimestamp]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val last: AtomicReference[CantonTimestamp]
- Attributes
- protected
- Definition Classes
- Clock
- def logger: TracedLogger
- Attributes
- protected
- Definition Classes
- NamedLogging
- val loggerFactory: NamedLoggerFactory
- Definition Classes
- SimClock → NamedLogging
- implicit def loggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def monotonicTime(): CantonTimestamp
thread safe weakly monotonistic time: each timestamp will be either equal or increasing May go backwards across restarts.
thread safe weakly monotonistic time: each timestamp will be either equal or increasing May go backwards across restarts.
- Definition Classes
- Clock
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def noTracingLogger: Logger
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def now: CantonTimestamp
Potentially non-monotonistic system clock
Potentially non-monotonistic system clock
Never use Instant.now, use the clock (as we also support sim-clock). If you need to ensure that the clock is monotonically increasing, use the uniqueTime method instead.
- def reset(): Unit
- Definition Classes
- DelegatingSimClock → SimClock
- def scheduleAfter(action: (CantonTimestamp) => Unit, delta: Duration): FutureUnlessShutdown[Unit]
thread-safely schedule an action to be executed in the future
thread-safely schedule an action to be executed in the future
same as other schedule method, except it expects a differential time amount
- Definition Classes
- Clock
- def scheduleAt(action: (CantonTimestamp) => Unit, timestamp: CantonTimestamp): FutureUnlessShutdown[Unit]
thread-safely schedule an action to be executed in the future actions need not execute in the order of their timestamps.
thread-safely schedule an action to be executed in the future actions need not execute in the order of their timestamps.
- action
action to run at the given timestamp (passing in the timestamp for when the task was scheduled)
- timestamp
timestamp when to run the task
- returns
a future for the given task
- Definition Classes
- Clock
- val start: CantonTimestamp
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val tasks: PriorityBlockingQueue[Queued]
- Attributes
- protected
- Definition Classes
- Clock
- def toString(): String
- Definition Classes
- SimClock → AnyRef → Any
- final def uniqueTime(): CantonTimestamp
thread safe strongly monotonistic increasing time: each timestamp will be unique May go backwards across restarts.
thread safe strongly monotonistic increasing time: each timestamp will be unique May go backwards across restarts.
- Definition Classes
- Clock
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])