Package de.bsvrz.ars.ars.mgmt.simulation
Class SimulationManager
java.lang.Object
de.bsvrz.ars.ars.mgmt.tasks.Task
de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
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.Task
_debug, _shouldTerminate -
Constructor Summary
ConstructorsConstructorDescriptionSimulationManager(ArchiveManager archMgr) Meldet Objekt als Empfänger für Änderungen anPidSimulation.objectSetan. -
Method Summary
Modifier and TypeMethodDescriptionvoidFührt zum Aufrufen vonSimulationAutomaton.wakeUp()nach dem Ablauf von der parametrierbaren Wartezeit.voidBricht das Aufwecken der übergebenen Simulation ab.protected voidcleanUp()Wird garantiert aufgerufen, nachdem der Task vollständig terminiert wurde.de.bsvrz.dav.daf.main.ClientDavInterfacegetDav()longLiefert den Zeitraum in ms in dem eine erneute Steuerungsinformation für eine Simulation eingehen muss.voidLeitet einen Löschauftrag an den ArchiveManager weiter.voidsetTimeOutPeriod(long timeout) voidstart()Startet den Thread, der den Task ausführtvoidstep()Implementiert die beliebige wiederholt auszuführende AufgabevoidTerminiert den Task, indem dafür gesorgt wird, dasTask.shouldTerminate()true zurückliefert.voidupdate(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, getArchMgrMethods inherited from class de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
addTaskStepListener, getName, getState, isAlive, isTerminated, join, removeTaskStepListener, setName, taskStepDoneMethods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
getDidTree, getPersistenceManager, shouldTerminate, suspendTaskIfNecessary
-
Constructor Details
-
SimulationManager
Meldet Objekt als Empfänger für Änderungen anPidSimulation.objectSetan.- Parameters:
archMgr- Archivmanager
-
-
Method Details
-
start
public void start()Description copied from class:AbstractTaskStartet den Thread, der den Task ausführt- Overrides:
startin classAbstractTask- See Also:
-
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:
updatein interfacede.bsvrz.dav.daf.main.config.MutableSetChangeListener
-
getDav
public de.bsvrz.dav.daf.main.ClientDavInterface getDav()- Returns:
- Verbindung zum Datenverteiler.
-
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
Description copied from class:RepeatingTaskImplementiert die beliebige wiederholt auszuführende Aufgabe- Specified by:
stepin classRepeatingTask- Throws:
InterruptedException- Thread unterbrochen
-
terminateTask
public void terminateTask()Description copied from class:TaskTerminiert den Task, indem dafür gesorgt wird, dasTask.shouldTerminate()true zurückliefert. Der Task sollte diese Funktion regelmäßig aufrufen um dann bei Rückgabe vontrueden Task zeitnah zu beenden.- Overrides:
terminateTaskin classTask
-
cleanUp
protected void cleanUp()Description copied from class:AbstractTaskWird 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.
- Overrides:
cleanUpin classAbstractTask
-
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.
-