public class SimulationManager extends Task implements MutableSetChangeListener
SimulationAutomaton
erzeugt.Thread.State, Thread.UncaughtExceptionHandler
Modifier and Type | Field and Description |
---|---|
private static Debug |
logger
Debug Ausgabe.
|
private MutableSet |
mutableSet
Objektmenge Simulationsobjekte.
|
private Hashtable<SystemObject,SimulationAutomaton> |
simulations
Abbildung SystemObjekt Simulation -> Java Objekt Simulation
|
private RingBuffer<SimulationAutomaton> |
transitions
FIFO Puffer mit den Simulationen die Transitionen durchführen müssen.
|
private WakeUpManager |
wakeUp
Verwalten der Weckzeiten
|
private long |
wakeUpTime
Zeitraum in ms in dem eine erneute Steuerungsinformation für eine Simulation eingehen muss.
|
archMgr, didTree, INDEX_MEMORY_SIZE, isTerminated, persMgr, ringOfDeathListener, taskStepListeners
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
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.
|
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 |
run()
Arbeitet die anstehenden Transitionen der Simulationsautomaten ab.
|
void |
setTimeOutPeriod(long timeout) |
void |
start() |
void |
update(MutableSet set,
SystemObject[] addedObjects,
SystemObject[] removedObjects)
Methode, die nach Änderung einer Menge aufgerufen wird.
|
addTaskStepListener, getArchMgr, isTaskTerminated, removeTaskStepListener, suspendTaskIfNecessary, terminateTask
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, stop, stop, suspend, toString, yield
private MutableSet mutableSet
private Hashtable<SystemObject,SimulationAutomaton> simulations
private RingBuffer<SimulationAutomaton> transitions
private WakeUpManager wakeUp
private long wakeUpTime
private static Debug logger
public SimulationManager(ArchiveManager archMgr)
PidSimulation.objectSet
an.archMgr
- Archivmanagerpublic void start()
start
in class Thread
Thread.start()
public 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)
dfa
- Simulationsobjekt, das eine Transition durchführen will.public void addWakeUp(SimulationAutomaton dfa)
SimulationAutomaton.wakeUp()
nach dem Ablauf von der parametrierbaren Wartezeit.dfa
- Automat der benachrichtigt werden soll.public void cancelWakeUp(SimulationAutomaton dfa)
dfa
- Simulationpublic void run()
run
in interface Runnable
run
in class Thread
Runnable.run()
public void insertDeleteQuery(SimulationResultData ard)
ard
- Auftragsparameterpublic long getWakeUpTime()
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.