de.bsvrz.ars.ars.mgmt.simulation
Class SimulationAutomaton

java.lang.Object
  extended by de.bsvrz.ars.ars.mgmt.simulation.SimulationAutomaton
Direct Known Subclasses:
OfflineSimulation, OnlineSimulation

public class SimulationAutomaton
extends java.lang.Object

Deterministischer endlicher Automat für die Simulation. Nicht erlaubte Transitionen werden ignoriert. Treten Fehler auf, so werden diese geloggt.

Version:
$Revision: 1.2 $ / $Date: 2008/01/22 16:55:58 $ / ($Author: yvonnes $)
Author:
beck et al. projects GmbH, Martin Hilgers

Field Summary
protected static int ERASED
          Gelöscht - Zustand.
protected static int INIT
          Vorstart - Zustand.
protected static int NEW
          Neu - Zustand.
protected static int PAUSE
          Pause - Zustand.
protected static int START
          Start - Zustand.
protected static int STOP
          Stop - Zustand.
static int UNDEFINED
          Undefinierter Zustand / Undefinierte Simulationsvariante
 
Constructor Summary
SimulationAutomaton(SimulationManager simManager, SystemObject simulation, DataDescription simulationControl)
          Erzeugt einen neuen Automaten für eine Simulation.
 
Method Summary
protected  void continueInitStateGetParams()
          - Anmelden auf Information, welche Daten archiviert werden sollen.
protected  void continueInitStateSubscribe(ResultData resultData)
          Fortsetzung Zustand 'Vorstart'.
 void dataDeleted(boolean successful)
          Wird aufgerufen, nachdem die Daten der Simulation gelöscht wurden.
protected  void enterErasedState()
          Zustand 'Gelöscht' wird erreicht.
protected  void enterInitState()
          Zustand 'Vorstart' wird erreicht.
protected  void enterNewState()
          Zustand 'Neu' wird erreicht.
protected  void enterStartState()
          Zustand 'Start' wird erreicht.
protected  void enterStopState()
          Zustand 'Stop' wird erreicht.
protected  void finishErasedState()
          Wird aufgerufen, nachdem alle Daten gelöscht wurden.
protected  void finishInitState(boolean successful)
          Wird vom ArchivConfig Task aufgerufen, nachdem das Archivsystem sich auf die Simulationsdaten angemeldet hat - Sendet die 'Bereit' Meldung, wenn Daten gelöscht, falls der Automat im Zustand Vorstart und die Anmeldung auf die zu archivierenden Simulationsdaten erfolgreich verlaufen ist.
 short getSimVar()
          Liefert die Simulationsvariante der Simulation.
protected  boolean sendSimulationState(boolean archiveReady)
          Legt den Simulationsstatus auf den Datenverteiler.
protected static void sendSimulationState(ClientDavInterface dav, SystemObject simulation, boolean archiveReady)
          Legt den Simulationsstatus auf den Datenverteiler.
 void terminate()
          Beendet den Automaten.
 boolean transition()
          Transition in den neuen Zustand.
 void update(ResultData[] results)
          Callback Methode die vom Dav aufgerufen wird, wenn neue Daten zum Simulationsobjekt eingehen.
 void wakeUp()
          Benachrichtigt die Simulation, dass die Wartezeit abgelaufen ist.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

UNDEFINED

public static final int UNDEFINED
Undefinierter Zustand / Undefinierte Simulationsvariante

See Also:
Constant Field Values

NEW

protected static final int NEW
Neu - Zustand.

See Also:
Constant Field Values

INIT

protected static final int INIT
Vorstart - Zustand.

See Also:
Constant Field Values

START

protected static final int START
Start - Zustand.

See Also:
Constant Field Values

PAUSE

protected static final int PAUSE
Pause - Zustand.

See Also:
Constant Field Values

STOP

protected static final int STOP
Stop - Zustand.

See Also:
Constant Field Values

ERASED

protected static final int ERASED
Gelöscht - Zustand.

See Also:
Constant Field Values
Constructor Detail

SimulationAutomaton

public SimulationAutomaton(SimulationManager simManager,
                           SystemObject simulation,
                           DataDescription simulationControl)
Erzeugt einen neuen Automaten für eine Simulation. Meldet den Automaten als Empfänger für das Simuationsobjekt an.

Parameters:
simManager - Simulationsverwaltung
simulation - Simulationsobjekt.
simulationControl - Steuerungsinformationen, auf die sich die Simulation beim Dav anmelden soll.
Method Detail

transition

public boolean transition()
Transition in den neuen Zustand. Es wird überprüft, ob die Transition möglich ist.

Returns:
true falls der Automat in den neuen Zustand überführt werden konnte. false sonst.

enterNewState

protected void enterNewState()
Zustand 'Neu' wird erreicht. Meldet den Empfang von Steuerungsdaten an. Sendet, dass das Archivsystem nicht für die Durchführung der Simulation zur Verfügung steht.


enterInitState

protected void enterInitState()
Zustand 'Vorstart' wird erreicht. - Löschen der archivierten Simulationsdaten. Ist diese Aufgabe abgeschlossen, wird die Callback MethodedataDeleted(boolean) vom Löschtask aufgerufen.


continueInitStateGetParams

protected void continueInitStateGetParams()
- Anmelden auf Information, welche Daten archiviert werden sollen. Geht diese Information ein, wird continueInitStateSubscribe(ResultData) durch update(ResultData[]) aufgerufen. Diese Methode Wird von dataDeleted(boolean) aufgerufen, wenn der Zustand der Simulation INIT ist.


continueInitStateSubscribe

protected void continueInitStateSubscribe(ResultData resultData)
Fortsetzung Zustand 'Vorstart'. - Meldet das Archivsystem auf die Simulationsdaten an. Wird durch update(ResultData[]) aufgerufen, sobald die zu archivierenden Daten bekannt sind.

Parameters:
resultData - Information, auf welche Daten sich das Archivsystem anmelden soll.

finishInitState

protected void finishInitState(boolean successful)
Wird vom ArchivConfig Task aufgerufen, nachdem das Archivsystem sich auf die Simulationsdaten angemeldet hat - Sendet die 'Bereit' Meldung, wenn Daten gelöscht, falls der Automat im Zustand Vorstart und die Anmeldung auf die zu archivierenden Simulationsdaten erfolgreich verlaufen ist.

Parameters:
successful - Zeigt an ob der Auftrag erfolgreich durchgeführt wurde.

enterStartState

protected void enterStartState()
Zustand 'Start' wird erreicht. Meldet die Simulation vom Empfang von Anmeldeinformationen


enterStopState

protected void enterStopState()
Zustand 'Stop' wird erreicht. - 'Ende'-Meldung senden - Abmeldung vom Datenempfang


enterErasedState

protected void enterErasedState()
Zustand 'Gelöscht' wird erreicht. - Löschen der Daten


finishErasedState

protected void finishErasedState()
Wird aufgerufen, nachdem alle Daten gelöscht wurden. Wird durch dataDeleted(boolean) aufgerufen, wenn der Zustand ERASED ist. - Benachrichtigung senden, dass Simulationsobjekt gelsöcht werden kann.


sendSimulationState

protected boolean sendSimulationState(boolean archiveReady)
Legt den Simulationsstatus auf den Datenverteiler. Blockiert, bis das Senden abgeschlossen wurde, maximal jedoch 10 Sekunden.

Parameters:
archiveReady - Ist das Archiv für die Simulation bereit?
Returns:
true falls das Senden erfolgreich durchgeführt wurde.

sendSimulationState

protected static void sendSimulationState(ClientDavInterface dav,
                                          SystemObject simulation,
                                          boolean archiveReady)
Legt den Simulationsstatus auf den Datenverteiler. Wartet nicht.

Parameters:
dav - Verbindung zum Datenverteiler.
simulation - Simulationsobjekt.
archiveReady - Ist das Archiv für die Simulation bereit?

dataDeleted

public void dataDeleted(boolean successful)
Wird aufgerufen, nachdem die Daten der Simulation gelöscht wurden.

Parameters:
successful - Zeigt an ob die Daten gelöscht werden konnten.

terminate

public void terminate()
Beendet den Automaten. Meldet den Empfang von Daten ab.


update

public void update(ResultData[] results)
Callback Methode die vom Dav aufgerufen wird, wenn neue Daten zum Simulationsobjekt eingehen. Benachrichtigt Simulationsverwaltung, wenn eine Zustandsänderung der Simulation eingegangen ist.

See Also:
ClientReceiverInterface#update(ResultData[]), SimulationManager.addTransition(SimulationAutomaton)

wakeUp

public void wakeUp()
Benachrichtigt die Simulation, dass die Wartezeit abgelaufen ist.

See Also:
SimulationManager.addWakeUp(SimulationAutomaton)

getSimVar

public short getSimVar()
Liefert die Simulationsvariante der Simulation.

Returns:
Simulationsvariante. UNDEFINED falls noch nicht initialisiert.


Copyright © 2005-2008 beck et al. projects GmbH All Rights Reserved.