Package de.bsvrz.ars.ars.mgmt.simulation
Class SimulationManager
java.lang.Object
de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
de.bsvrz.ars.ars.mgmt.tasks.Task
de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
de.bsvrz.ars.ars.mgmt.simulation.SimulationManager
- All Implemented Interfaces:
de.bsvrz.dav.daf.main.config.MutableSetChangeListener
public class SimulationManager extends RepeatingTask implements de.bsvrz.dav.daf.main.config.MutableSetChangeListener
Diese Klasse reagiert auf Änderungen der Menge der Simulationsobjekte. Pro Simulationsobjekt wird eine Instanz von
SimulationAutomaton
erzeugt.
Wird das Archivsystem während einer Simulation heruntergefahren wird, so werden die bisher abgelegten Simulationsdaten nicht gelöscht. Dies geschieht dann
entweder auf Anfrage oder wenn die Simulation erneut gestartet und in den Zustand 'Vorstart' gebracht wird.
-
Field Summary
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
TERMINATE_TASK
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
_debug, _shouldTerminate, archMgr, didTree, persMgr
-
Constructor Summary
Constructors Constructor Description SimulationManager(ArchiveManager archMgr)
Meldet Objekt als Empfänger für Änderungen anPidSimulation.objectSet
an. -
Method Summary
Modifier and Type Method Description void
addTransition(SimulationAutomaton dfa)
Eine Transition soll durchgeführt werden.void
addWakeUp(SimulationAutomaton dfa)
Führt zum Aufrufen vonSimulationAutomaton.wakeUp()
nach dem Ablauf von der parametrierbaren Wartezeit.void
cancelWakeUp(SimulationAutomaton dfa)
Bricht das Aufwecken der übergebenen Simulation ab.protected void
cleanUp()
Wird garantiert aufgerufen, nachdem der Task vollständig terminiert wurde.de.bsvrz.dav.daf.main.ClientDavInterface
getDav()
long
getWakeUpTime()
Liefert den Zeitraum in ms in dem eine erneute Steuerungsinformation für eine Simulation eingehen muss.void
insertDeleteQuery(SimulationResultData ard)
Leitet einen Löschauftrag an den ArchiveManager weiter.void
setTimeOutPeriod(long timeout)
void
start()
Startet den Thread, der den Task ausführtvoid
step()
Implementiert die beliebige wiederholt auszuführende Aufgabevoid
terminateTask()
Terminiert den Task indem dafür gesorgt wird, dasAbstractTask.shouldTerminate()
true zurückliefert.void
update(de.bsvrz.dav.daf.main.config.MutableSet set, de.bsvrz.dav.daf.main.config.SystemObject[] addedObjects, de.bsvrz.dav.daf.main.config.SystemObject[] removedObjects)
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
execute
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
addTaskStepListener, getName, getState, isAlive, isTerminated, join, removeTaskStepListener, setName, taskStepDone
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
getArchMgr, getObjectsFromDav, shouldTerminate, suspendTaskIfNecessary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
SimulationManager
Meldet Objekt als Empfänger für Änderungen anPidSimulation.objectSet
an.- Parameters:
archMgr
- Archivmanager
-
-
Method Details
-
start
public void start()Description copied from class:Task
Startet den Thread, der den Task ausführt -
update
public void update(de.bsvrz.dav.daf.main.config.MutableSet set, de.bsvrz.dav.daf.main.config.SystemObject[] addedObjects, de.bsvrz.dav.daf.main.config.SystemObject[] removedObjects)- Specified by:
update
in interfacede.bsvrz.dav.daf.main.config.MutableSetChangeListener
-
getDav
public de.bsvrz.dav.daf.main.ClientDavInterface getDav()- Returns:
- Verbindung zum Datenverteiler.
-
addTransition
Eine Transition soll durchgeführt werden.- Parameters:
dfa
- Simulationsobjekt, das eine Transition durchführen will.
-
addWakeUp
Führt zum Aufrufen vonSimulationAutomaton.wakeUp()
nach dem Ablauf von der parametrierbaren Wartezeit.- Parameters:
dfa
- Automat der benachrichtigt werden soll.
-
cancelWakeUp
Bricht das Aufwecken der übergebenen Simulation ab.- Parameters:
dfa
- Simulation
-
step
public void step() throws java.lang.InterruptedExceptionDescription copied from class:RepeatingTask
Implementiert die beliebige wiederholt auszuführende Aufgabe- Specified by:
step
in classRepeatingTask
- Throws:
java.lang.InterruptedException
- Thread unterbrochen
-
terminateTask
public void terminateTask()Description copied from class:AbstractTask
Terminiert den Task indem dafür gesorgt wird, dasAbstractTask.shouldTerminate()
true zurückliefert. Der Task sollte diese Funktion regelmäßig aufrufen um dann bei Rückgabe vontrue
den Task zeitnah zu beenden.- Overrides:
terminateTask
in classAbstractTask
-
cleanUp
protected void cleanUp()Description copied from class:Task
Wird garantiert aufgerufen, nachdem der Task vollständig terminiert wurde. Dieser Code wird im selben Thread ausgeführt, wie der eigentliche TaskTut standardmäßig nichts, kann überschrieben werden um Daten aufzuräumen, Abmeldungen durchzuführen usw.
-
insertDeleteQuery
Leitet einen Löschauftrag an den ArchiveManager weiter.- Parameters:
ard
- Auftragsparameter
-
getWakeUpTime
public long getWakeUpTime()Liefert den Zeitraum in ms in dem eine erneute Steuerungsinformation für eine Simulation eingehen muss.- Returns:
- Zeitraum in ms in dem eine erneute Steuerungsinformation für eine Simulation eingehen muss.
-
setTimeOutPeriod
public void setTimeOutPeriod(long timeout)- Parameters:
timeout
- Zeit in ms in der ein Steuerbefehl von der Simulationssteuerung kommen muss, nachdem diese einen 'keine Quelle' Datensatz gesendet hat.
-