abstract class MutableClock : Clock
An abstract class with helper methods for a type of Clock that might have it's concept of "now" adjusted externally.
e.g. for testing (so unit tests do not have to wait for timeouts in realtime) or for demos and simulations.
<init> |
MutableClock()
An abstract class with helper methods for a type of Clock that might have it's concept of "now" adjusted externally. |
mutationCount |
val mutationCount: Long
This tracks how many direct mutations of "now" have occurred for this Clock, but not the passage of time. |
mutations |
val mutations: Observable<Long>
This is an observer on the mutation count of this Clock, which reflects the occurence of mutations. |
notifyMutationObservers |
fun notifyMutationObservers(): Unit
Must be called by subclasses when they mutate (but not just with the passage of time as per the "wall clock"). |
awaitWithDeadline |
fun Clock.awaitWithDeadline(deadline: Instant, future: Future<*> = GuavaSettableFuture.create<Any>()): Boolean
Wait until the given Future is complete or the deadline is reached, with support for MutableClock implementations used in demos or testing. This will substitute a Fiber compatible Future so the current Strand is not blocked. |
TestClock |
class TestClock : MutableClock, SerializeAsToken
A Clock that can have the date advanced for use in demos. |