class WakeUpManager
extends java.lang.Object
Diese Klasse verwaltet die Weckzeiten der Simulationen.
Modifier and Type | Field and Description |
---|---|
private java.util.TreeSet<java.lang.Long> |
minTime
Verwaltet die Weckzeit aufsteigend sortiert.
|
private java.util.Hashtable<SimulationAutomaton,java.util.ArrayList<SimulationAutomaton>> |
simList
Simulation -> Liste in der die Simulation auftaucht.
|
private java.util.Hashtable<java.lang.Long,java.util.ArrayList<SimulationAutomaton>> |
simulations
‘Weckzeit’ -> Liste mit aufzuweckenden Simulation
|
Constructor and Description |
---|
WakeUpManager() |
Modifier and Type | Method and Description |
---|---|
void |
addWakeUp(SimulationManager simManager,
SimulationAutomaton dfa,
long wakeUpTime)
Fügt die Weckzeit für eine Simulation hinzu.
|
void |
cancelWakeUp(SimulationAutomaton dfa)
Bricht das Aufwecken der übergebenen Simulation ab.
|
long |
timeToWakeUp()
Berechnet die Zeit in ms, in der Simulationen aufgeweckt werden müssen.
|
void |
wakeUp()
Weckt alle fälligen Simulationen auf.
|
private java.util.Hashtable<java.lang.Long,java.util.ArrayList<SimulationAutomaton>> simulations
‘Weckzeit’ -> Liste mit aufzuweckenden Simulation
private java.util.Hashtable<SimulationAutomaton,java.util.ArrayList<SimulationAutomaton>> simList
Simulation -> Liste in der die Simulation auftaucht. (Diese Liste wird in simulations verwendet!)
private java.util.TreeSet<java.lang.Long> minTime
Verwaltet die Weckzeit aufsteigend sortiert.
public void wakeUp()
Weckt alle fälligen Simulationen auf.
public void addWakeUp(SimulationManager simManager, SimulationAutomaton dfa, long wakeUpTime)
Fügt die Weckzeit für eine Simulation hinzu. Für jede Simulation darf nur eine Weckzeit hinterlegt werden. Ist bereits eine Weckzeit für die Simulation hinterlegt, so werden die weiteren Weckzeiten ignoriert. Benachrichtigt die Simulationsverwaltung Thread.interrupt()
. falls die neue Weckzeit vor der bisher nächsten Weckzeit liegt.
simManager
- Simulationsverwaltungdfa
- Simulation die geweckt werden soll.wakeUpTime
- Weckzeit.public void cancelWakeUp(SimulationAutomaton dfa)
Bricht das Aufwecken der übergebenen Simulation ab.
dfa
- Simulationpublic long timeToWakeUp()
Berechnet die Zeit in ms, in der Simulationen aufgeweckt werden müssen.
1
, je nachdem welcher Wert größer ist. Wurde bisher noch keine Weckzeit eingestellt, so wird 0
zurückgegeben.