public class SimulationManager extends RepeatingTask implements 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.
TERMINATE_TASK
_debug, _shouldTerminate, archMgr, didTree, INDEX_MEMORY_SIZE, persMgr
Constructor and Description |
---|
SimulationManager(ArchiveManager archMgr)
Meldet Objekt als Empfänger für Änderungen an
PidSimulation.objectSet an. |
Modifier and Type | Method and Description |
---|---|
void |
addTransition(SimulationAutomaton dfa)
Eine Transition soll durchgeführt werden.
|
void |
addWakeUp(SimulationAutomaton dfa)
Führt zum Aufrufen von
SimulationAutomaton.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, also die Step-Funktion das letzte mal ausgeführt wurde.
|
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() |
void |
step() |
void |
terminateTask()
Terminiert den Task, indem die
#run() -Methode unterbrochen wird, sofern sie im Wartezustand ist und nicht gerade einen Auftrag bearbeitet. |
void |
update(MutableSet set,
SystemObject[] addedObjects,
SystemObject[] removedObjects)
Methode, die nach Änderung einer Menge aufgerufen wird.
|
execute
addTaskStepListener, getArchMgr, getName, getObjectsFromDav, getState, isAlive, isTerminated, join, removeTaskStepListener, setName, shouldTerminate, suspendTaskIfNecessary, taskStepDone
public SimulationManager(ArchiveManager archMgr)
Meldet Objekt als Empfänger für Änderungen an PidSimulation.objectSet
an.
archMgr
- Archivmanagerpublic void update(MutableSet set, SystemObject[] addedObjects, SystemObject[] removedObjects)
de.bsvrz.dav.daf.main.config.MutableSetChangeListener
update
in interface MutableSetChangeListener
set
- Dynamische Menge die verändert wurde.addedObjects
- Objekte, die in die Menge aufgenommen wurden. Falls keine Objekte aufgenommen wurden, wird ein leeres Array übergeben.removedObjects
- Objekte, die aus der Menge entfernt wurden. Falls keine Objekte entfernt wurden, wird ein leeres Array übergeben.MutableSetChangeListener.update(MutableSet,SystemObject[],SystemObject[])
public ClientDavInterface getDav()
public void addTransition(SimulationAutomaton dfa)
Eine Transition soll durchgeführt werden.
dfa
- Simulationsobjekt, das eine Transition durchführen will.public void addWakeUp(SimulationAutomaton dfa)
Führt zum Aufrufen von SimulationAutomaton.wakeUp()
nach dem Ablauf von der parametrierbaren Wartezeit.
dfa
- Automat der benachrichtigt werden soll.public void cancelWakeUp(SimulationAutomaton dfa)
Bricht das Aufwecken der übergebenen Simulation ab.
dfa
- Simulationpublic void step() throws java.lang.InterruptedException
step
in class RepeatingTask
java.lang.InterruptedException
public void terminateTask()
Task
Terminiert den Task, indem die #run()
-Methode unterbrochen wird, sofern sie im Wartezustand ist und nicht gerade einen Auftrag bearbeitet. Andernfalls wird der Task vor dem naechsten Zyklus beendet.
terminateTask
in class Task
protected void cleanUp()
Task
Wird garantiert aufgerufen, nachdem der Task vollständig terminiert wurde, also die Step-Funktion das letzte mal ausgeführt wurde.
Tut standardmäßig nichts, kann überschrieben werden um Daten aufzuräumen, Abmeldungen durchzuführen usw.
public void insertDeleteQuery(SimulationResultData ard)
Leitet einen Löschauftrag an den ArchiveManager weiter.
ard
- Auftragsparameterpublic long getWakeUpTime()
Liefert den Zeitraum in ms in dem eine erneute Steuerungsinformation für eine Simulation eingehen muss.
public void setTimeOutPeriod(long timeout)
timeout
- Zeit in ms in der ein Steuerbefehl von der Simulationssteuerung kommen muss, nachdem diese einen ‘keine Quelle’ Datensatz gesendet hat.