Package de.bsvrz.dua.pllogufd.clock
Class WaitableClock
java.lang.Object
java.time.Clock
de.bsvrz.dua.pllogufd.clock.WaitableClock
- All Implemented Interfaces:
InstantSource
- Direct Known Subclasses:
SimulationClock
,WaitableSystemClock
Ein Clock-Objekt, das Methoden bietet, eine beliebige Zeit zu arten oder zu warten bis ein beliebiger Zeitpunkt eingetroffen ist.
Diese Klasse kann verwendet werden um für Testfälle, Simulationen u.ä. den Zeitablauf zu beschleunigen oder zu verlangsamen, siehe
SimulationClock
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal Duration
durationUntil
(Instant until) Berechnet die Dauer bis zum angegebenen Zeitpunktstatic WaitableClock
simulationClock
(Instant start, double simulationSpeed) Gibt eine simulierte Uhr zurückabstract void
sleep
(long millis) Tut das gleiche wieThread.sleep(long)
, verwendet aber diese Uhr um die Wartezeit zu bestimmen.final void
Wartet die angegebene Dauer.final void
sleepUntil
(Instant instant) Wartet, bis die Uhr die angegebene Zeit erreicht.static WaitableClock
Gibt die System-Uhr zurück.abstract Duration
Tut das gleiche wie obj.Object.wait(long)
, verwendet aber diese Uhr um die Wartezeit zu bestimmen.final Duration
Wartet die angegebene Dauer, vergleichbar mit obj.Object.wait(long)
.final Duration
Wartet biszum angegebenen Zeitpunkt, vergleichbar mit obj.Object.wait(long)
.Methods inherited from class java.time.Clock
equals, fixed, getZone, hashCode, instant, millis, offset, system, systemDefaultZone, systemUTC, tick, tickMillis, tickMinutes, tickSeconds, withZone
-
Constructor Details
-
WaitableClock
public WaitableClock()
-
-
Method Details
-
sleep
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.- Parameters:
millis
- Millisekunden, fall 0 oder negativ wird nicht gewartet.- Throws:
InterruptedException
- Exception
-
sleep
Wartet die angegebene Dauer.- Parameters:
duration
- Dauer, fall 0 oder negativ wird nicht gewartet.- Throws:
InterruptedException
- Exception
-
sleepUntil
Wartet, bis die Uhr die angegebene Zeit erreicht. Liegt die angegebene Zeit vor dem aktuellen zeitpunkt wird nicht gewartet.- Parameters:
instant
- Ziel-Zeitpunkt- Throws:
InterruptedException
- Exception
-
durationUntil
Berechnet die Dauer bis zum angegebenen Zeitpunkt- Parameters:
until
- Ziel-Zeitpunkt- Returns:
- Dauer (kann negativ sein, falls der Ziel-Zeitpunkt in der Vergangenheit liegt)
-
wait
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 zusleep(Duration)
kann das Warten mitObject.notifyAll()
unterbrochen werden und es muss auf das Objekt synchronisiert werden.- 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
-
wait
Wartet die angegebene Dauer, vergleichbar mit obj.Object.wait(long)
. Im Gegensatz zusleep(Duration)
kann das Warten mitObject.notifyAll()
unterbrochen werden und es muss auf das Objekt synchronisiert werden.- Parameters:
obj
- Objekt, für dasObject.wait(long)
aufgerufen werden sollduration
- Dauer, fall 0 oder negativ wird nicht gewartet.- Returns:
- Zeit die gewartet wurde, bis der Thread aufgeweckt wurde
- Throws:
InterruptedException
- Exception
-
waitUntil
Wartet biszum angegebenen Zeitpunkt, vergleichbar mit obj.Object.wait(long)
. Im Gegensatz zusleep(Duration)
kann das Warten mitObject.notifyAll()
unterbrochen werden und es muss auf das Objekt synchronisiert werden.- Parameters:
obj
- Objekt, für dasObject.wait(long)
aufgerufen werden solluntil
- Ziel-Zeitpunkt- Returns:
- Zeit die gewartet wurde, bis der Thread aufgeweckt wurde
- Throws:
InterruptedException
- Exception
-
systemClock
Gibt die System-Uhr zurück. Diese entspricht der aktuellen Systemzeit und ist damit eine erweiterte Version vonClock.systemUTC()
.- Returns:
- die System-Uhr
-
simulationClock
Gibt eine simulierte Uhr zurück- Parameters:
start
- Startzeit der Uhr (beim Aufruf dieser Methode)simulationSpeed
- Geschwindigkeits-Faktor der Uhr. Gibt an, wie schnell die Uhr im Vergleich zur realen Systemzeit läuft. Bspw. Faktor 10: Die Uhr geht 10 Minuten innerhalb einer realen Minute.- Returns:
- Simulationsuhr
-