Class 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.

  • Constructor Details

    • SimulationManager

      public SimulationManager​(ArchiveManager archMgr)
      Meldet Objekt als Empfänger für Änderungen an PidSimulation.objectSet an.
      Parameters:
      archMgr - Archivmanager
  • Method Details

    • start

      public void start()
      Description copied from class: Task
      Startet den Thread, der den Task ausführt
      Overrides:
      start in class Task
      See Also:
      Thread.start()
    • 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 interface de.bsvrz.dav.daf.main.config.MutableSetChangeListener
    • getDav

      public de.bsvrz.dav.daf.main.ClientDavInterface getDav()
      Returns:
      Verbindung zum Datenverteiler.
    • addTransition

      public void addTransition​(SimulationAutomaton dfa)
      Eine Transition soll durchgeführt werden.
      Parameters:
      dfa - Simulationsobjekt, das eine Transition durchführen will.
    • addWakeUp

      public void addWakeUp​(SimulationAutomaton dfa)
      Führt zum Aufrufen von SimulationAutomaton.wakeUp() nach dem Ablauf von der parametrierbaren Wartezeit.
      Parameters:
      dfa - Automat der benachrichtigt werden soll.
    • cancelWakeUp

      public void cancelWakeUp​(SimulationAutomaton dfa)
      Bricht das Aufwecken der übergebenen Simulation ab.
      Parameters:
      dfa - Simulation
    • step

      public void step() throws java.lang.InterruptedException
      Description copied from class: RepeatingTask
      Implementiert die beliebige wiederholt auszuführende Aufgabe
      Specified by:
      step in class RepeatingTask
      Throws:
      java.lang.InterruptedException - Thread unterbrochen
    • terminateTask

      public void terminateTask()
      Description copied from class: AbstractTask
      Terminiert den Task indem dafür gesorgt wird, das AbstractTask.shouldTerminate() true zurückliefert. Der Task sollte diese Funktion regelmäßig aufrufen um dann bei Rückgabe von true den Task zeitnah zu beenden.
      Overrides:
      terminateTask in class AbstractTask
    • 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 Task

      Tut standardmäßig nichts, kann überschrieben werden um Daten aufzuräumen, Abmeldungen durchzuführen usw.

      Overrides:
      cleanUp in class Task
    • insertDeleteQuery

      public void insertDeleteQuery​(SimulationResultData ard)
      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.