de.bsvrz.ars.ars.mgmt.simulation
Class WakeUpManager

java.lang.Object
  extended by de.bsvrz.ars.ars.mgmt.simulation.WakeUpManager

 class WakeUpManager
extends Object

Diese Klasse verwaltet die Weckzeiten der Simulationen.

Author:
beck et al. projects GmbH, Martin Hilgers

Field Summary
private  TreeSet<Long> minTime
          Verwaltet die Weckzeit aufsteigend sortiert.
private  Hashtable<SimulationAutomaton,ArrayList<SimulationAutomaton>> simList
          Simulation -> Liste in der die Simulation auftaucht.
private  Hashtable<Long,ArrayList<SimulationAutomaton>> simulations
          'Weckzeit' -> Liste mit aufzuweckenden Simulation
 
Constructor Summary
WakeUpManager()
           
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

simulations

private Hashtable<Long,ArrayList<SimulationAutomaton>> simulations
'Weckzeit' -> Liste mit aufzuweckenden Simulation


simList

private Hashtable<SimulationAutomaton,ArrayList<SimulationAutomaton>> simList
Simulation -> Liste in der die Simulation auftaucht. (Diese Liste wird in simulations verwendet!)


minTime

private TreeSet<Long> minTime
Verwaltet die Weckzeit aufsteigend sortiert.

Constructor Detail

WakeUpManager

WakeUpManager()
Method Detail

wakeUp

public void wakeUp()
Weckt alle fälligen Simulationen auf.


addWakeUp

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.

Parameters:
simManager - Simulationsverwaltung
dfa - Simulation die geweckt werden soll.
wakeUpTime - Weckzeit.

cancelWakeUp

public void cancelWakeUp(SimulationAutomaton dfa)
Bricht das Aufwecken der übergebenen Simulation ab.

Parameters:
dfa - Simulation

timeToWakeUp

public long timeToWakeUp()
Berechnet die Zeit in ms, in der Simulationen aufgeweckt werden müssen.

Returns:
Falls eine Weckzeit eingestellt wurde: Zeit bis zum Aufwecken oder 1, je nachdem welcher Wert größer ist. Wurde bisher noch keine Weckzeit eingestellt, so wird 0 zurückgegeben.