Klasse SimulationManager

Alle implementierten Schnittstellen:
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.

  • Konstruktordetails

    • SimulationManager

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

    • start

      public void start()
      Beschreibung aus Klasse kopiert: AbstractTask
      Startet den Thread, der den Task ausführt
      Setzt außer Kraft:
      start in Klasse AbstractTask
      Siehe auch:
    • 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)
      Angegeben von:
      update in Schnittstelle de.bsvrz.dav.daf.main.config.MutableSetChangeListener
    • getDav

      public de.bsvrz.dav.daf.main.ClientDavInterface getDav()
      Gibt zurück:
      Verbindung zum Datenverteiler.
    • addWakeUp

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

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

      public void step() throws InterruptedException
      Beschreibung aus Klasse kopiert: RepeatingTask
      Implementiert die beliebige wiederholt auszuführende Aufgabe
      Angegeben von:
      step in Klasse RepeatingTask
      Löst aus:
      InterruptedException - Thread unterbrochen
    • terminateTask

      public void terminateTask()
      Beschreibung aus Klasse kopiert: Task
      Terminiert den Task, indem dafür gesorgt wird, das Task.shouldTerminate() true zurückliefert. Der Task sollte diese Funktion regelmäßig aufrufen um dann bei Rückgabe von true den Task zeitnah zu beenden.
      Setzt außer Kraft:
      terminateTask in Klasse Task
    • cleanUp

      protected void cleanUp()
      Beschreibung aus Klasse kopiert: AbstractTask
      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.

      Setzt außer Kraft:
      cleanUp in Klasse AbstractTask
    • insertDeleteQuery

      public void insertDeleteQuery(SimulationResultData ard)
      Leitet einen Löschauftrag an den ArchiveManager weiter.
      Parameter:
      ard - Auftragsparameter
    • getWakeUpTime

      public long getWakeUpTime()
      Liefert den Zeitraum in ms in dem eine erneute Steuerungsinformation für eine Simulation eingehen muss.
      Gibt zurück:
      Zeitraum in ms in dem eine erneute Steuerungsinformation für eine Simulation eingehen muss.
    • setTimeOutPeriod

      public void setTimeOutPeriod(long timeout)
      Parameter:
      timeout - Zeit in ms in der ein Steuerbefehl von der Simulationssteuerung kommen muss, nachdem diese einen 'keine Quelle' Datensatz gesendet hat.