Package de.bsvrz.dua.pllogufd.clock
Class SimulationClock
java.lang.Object
java.time.Clock
de.bsvrz.dua.pllogufd.clock.WaitableClock
de.bsvrz.dua.pllogufd.clock.SimulationClock
- All Implemented Interfaces:
InstantSource
Implementierung von
WaitableClock
als simulierte Uhr, die einen
beliebigen Startzeitpunkt hat und auch schneller oder langsamer gehen kann,
als die reale Systemzeit.-
Constructor Summary
ConstructorsConstructorDescriptionSimulationClock
(Instant startState, double simulationSpeed) Erstellt eine neue SimulationClock -
Method Summary
Modifier and TypeMethodDescriptiongetZone()
instant()
void
setInstant
(Instant start) Verstellt den aktuellen Zeitpunkt.void
sleep
(long millis) Tut das gleiche wieThread.sleep(long)
, verwendet aber diese Uhr um die Wartezeit zu bestimmen.Tut das gleiche wie obj.Object.wait(long)
, verwendet aber diese Uhr um die Wartezeit zu bestimmen.Methods inherited from class de.bsvrz.dua.pllogufd.clock.WaitableClock
durationUntil, simulationClock, sleep, sleepUntil, systemClock, wait, waitUntil
Methods inherited from class java.time.Clock
equals, fixed, hashCode, millis, offset, system, systemDefaultZone, systemUTC, tick, tickMillis, tickMinutes, tickSeconds
-
Constructor Details
-
SimulationClock
Erstellt eine neue SimulationClock- Parameters:
startState
- Startzeitpunkt der UhrsimulationSpeed
- Simulationsgeschwindigkeit (1 = reale Geschwindigkeit, 10 = die Uhr geht 10 mal schneller, als die reale Zeit, usw.)
-
-
Method Details
-
setInstant
Verstellt den aktuellen Zeitpunkt. Dies hat keinen Einfluss auf aktuell laufende Wartedauern.- Parameters:
start
- Neue aktuelle Uhrzeit.
-
sleep
Description copied from class:WaitableClock
Tut das gleiche wieThread.sleep(long)
, verwendet aber diese Uhr um die Wartezeit zu bestimmen. Wenn diese Uhr beispielsweise um Faktor 10 beschleunigt läuft, dann verringert sich die reale Wartezeit um Faktor 10.- Specified by:
sleep
in classWaitableClock
- Parameters:
millis
- Millisekunden, fall 0 oder negativ wird nicht gewartet.- Throws:
InterruptedException
- Exception
-
wait
Description copied from class:WaitableClock
Tut das gleiche wie obj.Object.wait(long)
, verwendet aber diese Uhr um die Wartezeit zu bestimmen. Wenn diese Uhr beispielsweise um Faktor 10 beschleunigt läuft, dann verringert sich die reale Wartezeit um Faktor 10. Im Gegensatz zuWaitableClock.sleep(Duration)
kann das Warten mitObject.notifyAll()
unterbrochen werden und es muss auf das Objekt synchronisiert werden.- Specified by:
wait
in classWaitableClock
- Parameters:
obj
- Objekt, für dasObject.wait(long)
aufgerufen werden sollmillis
- Millisekunden, fall 0 oder negativ wird nicht gewartet.- Returns:
- Zeit die gewartet wurde, bis der Thread aufgeweckt wurde
- Throws:
InterruptedException
- Exception
-
getZone
-
withZone
- Specified by:
withZone
in interfaceInstantSource
- Specified by:
withZone
in classClock
-
instant
- Specified by:
instant
in interfaceInstantSource
- Specified by:
instant
in classClock
-