de.bsvrz.vew.sim.sim.datengenerator
Class DatenGeneratorOfflineSimulation

java.lang.Object
  extended by de.bsvrz.vew.sim.sim.datengenerator.DatenGeneratorSimulation
      extended by de.bsvrz.vew.sim.sim.datengenerator.DatenGeneratorOfflineSimulation
All Implemented Interfaces:
de.bsvrz.dav.daf.main.ClientSenderInterface

public class DatenGeneratorOfflineSimulation
extends DatenGeneratorSimulation

Simulations-Datengenerator für Offline-Simulationen

Version:
$Revision: 1.4 $ / $Date: 2008/12/03 14:00:32 $ / ($Author: Sans $)
Author:
Dambach-Werke GmbH, Stefan Sans

Nested Class Summary
 class DatenGeneratorOfflineSimulation.QueueArbeiter
          Asynchrones Abarbeiten und Versenden der Daten, die aus dem Archiv hereinkommen
 
Field Summary
private  java.lang.Thread _archivAdapter
          Archiv-Bearbeitungs-Thread
private static de.bsvrz.sys.funclib.debug.Debug _debug
          Debug-Logger für Logging-Ausgaben
private  float _faktor
          Geschwindigkeitsfaktor der zugeordneten Simulation
private  boolean _isGestartet
          Ist der Datengenerator gestartet?
private  boolean _isInaktiv
          Ist der Verarbeitungsthread gerade inaktiv?
private  boolean _isPausiert
          Ist der Datengenerator im Zustand "Pause"
private  long _lastPauseReal
          Letzter Pausenzeitpunkt - in Echtzeit
private  long _lastPauseSimu
          Letzter Pasenzeitpunkt - in Simulationszeit
private  long _letzterZeitStempel
          Letzter verabeitetet Zeitstempel
private  java.lang.Thread _queueArbeiter
          Eingangsdaten-Bearbeitungs-und Sendethread
private  java.util.Map<java.lang.String,DatenSpezifikation> _sendeAnmeldungen
          Alle bearbeitenden Datenspezifikationen
private  long _simulationsBeginn
          Beginn der zugeordneten Simulation
private  long _simulationsEnde
          Ende der zugeordneten Simulation
private  java.util.LinkedList<de.bsvrz.dav.daf.main.archive.ArchiveData> _zuSendendeDaten
          (Pseudo-) Queue der Eingangsdaten - wird vom _archivAdapter gefüllt und vom _queueArbeiter geleert
 
Fields inherited from interface de.bsvrz.dav.daf.main.ClientSenderInterface
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
 
Constructor Summary
DatenGeneratorOfflineSimulation(OfflineSimulation simulation)
          Erzeuge neue Instanz des Datengenerators
 
Method Summary
private  void abmeldenSenden()
          Abmelden aller Sendeanmeldungen
protected  OfflineSimulation getSimulation()
          Bestimmt die Simulation, für die diese Instanz Daten generiert
(package private)  long getSimulationsBeginn()
          Bestimme den Beginn der zugeordneten Simulation
(package private)  long getSimulationsEnde()
          Bestimme das Ende der zugeordneten Simulation
private  long getSimulationsZeit()
          Bestimmt die Simulationszeit
protected  void init()
          Initilaisiere den Datengenrator
 boolean isGestartet()
          Bestimmt den Lauf-Status des Datengenerators
 boolean isPausiert()
          Bestimmt den Pause-Status des Datengenerators
 void pause()
          Setze den Datengenerator in den Zustand "Pause"
(package private)  void putData(de.bsvrz.dav.daf.main.archive.ArchiveData archiveData)
          Plaziere Datensatz in der Pseudo-Queue der Eingangsdaten
protected  void sendeDaten(java.util.Collection<de.bsvrz.dav.daf.main.ResultData> sendePuffer)
          Sendet Daten asynchron an den Datenverteiler
private  void sendeSimulationZeit(long time)
          Sendet eine Zeitangabe als Simulationszeit an den Datenverteiler
 void start()
          Starte den Datengenerator
 void stop()
           
 
Methods inherited from class de.bsvrz.vew.sim.sim.datengenerator.DatenGeneratorSimulation
analysiereEingangsDaten, dataRequest, getConnection, getSimulationsStrecke, isRequestSupported, sendeDaten
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_debug

private static final de.bsvrz.sys.funclib.debug.Debug _debug
Debug-Logger für Logging-Ausgaben


_zuSendendeDaten

private java.util.LinkedList<de.bsvrz.dav.daf.main.archive.ArchiveData> _zuSendendeDaten
(Pseudo-) Queue der Eingangsdaten - wird vom _archivAdapter gefüllt und vom _queueArbeiter geleert


_sendeAnmeldungen

private java.util.Map<java.lang.String,DatenSpezifikation> _sendeAnmeldungen
Alle bearbeitenden Datenspezifikationen


_isGestartet

private boolean _isGestartet
Ist der Datengenerator gestartet?


_archivAdapter

private java.lang.Thread _archivAdapter
Archiv-Bearbeitungs-Thread


_queueArbeiter

private java.lang.Thread _queueArbeiter
Eingangsdaten-Bearbeitungs-und Sendethread


_simulationsBeginn

private long _simulationsBeginn
Beginn der zugeordneten Simulation


_simulationsEnde

private long _simulationsEnde
Ende der zugeordneten Simulation


_lastPauseReal

private long _lastPauseReal
Letzter Pausenzeitpunkt - in Echtzeit


_lastPauseSimu

private long _lastPauseSimu
Letzter Pasenzeitpunkt - in Simulationszeit


_letzterZeitStempel

private long _letzterZeitStempel
Letzter verabeitetet Zeitstempel


_faktor

private float _faktor
Geschwindigkeitsfaktor der zugeordneten Simulation


_isPausiert

private boolean _isPausiert
Ist der Datengenerator im Zustand "Pause"


_isInaktiv

private boolean _isInaktiv
Ist der Verarbeitungsthread gerade inaktiv?

Constructor Detail

DatenGeneratorOfflineSimulation

public DatenGeneratorOfflineSimulation(OfflineSimulation simulation)
Erzeuge neue Instanz des Datengenerators

Parameters:
simulation - Die Offline-Simulation, für die der Datengenerator erzeugt werden soll
Method Detail

putData

void putData(de.bsvrz.dav.daf.main.archive.ArchiveData archiveData)
Plaziere Datensatz in der Pseudo-Queue der Eingangsdaten

Parameters:
archiveData - Archiv-Datensatz der Eingangsdaten

getSimulationsBeginn

long getSimulationsBeginn()
Bestimme den Beginn der zugeordneten Simulation

Returns:
den Simulationsbeginn

getSimulationsEnde

long getSimulationsEnde()
Bestimme das Ende der zugeordneten Simulation

Returns:
das Simulationsende

getSimulation

protected OfflineSimulation getSimulation()
Description copied from class: DatenGeneratorSimulation
Bestimmt die Simulation, für die diese Instanz Daten generiert

Overrides:
getSimulation in class DatenGeneratorSimulation
Returns:
die Simulation, für die diese Instanz Daten generiert

isGestartet

public boolean isGestartet()
Description copied from class: DatenGeneratorSimulation
Bestimmt den Lauf-Status des Datengenerators

Specified by:
isGestartet in class DatenGeneratorSimulation
Returns:
Ist der Datengenerator gestartet?

isPausiert

public boolean isPausiert()
Bestimmt den Pause-Status des Datengenerators

Returns:
Ist der Datengenerator im Zustand "Pause"?

init

protected void init()
Description copied from class: DatenGeneratorSimulation
Initilaisiere den Datengenrator

Specified by:
init in class DatenGeneratorSimulation

pause

public void pause()
Setze den Datengenerator in den Zustand "Pause"


start

public void start()
Description copied from class: DatenGeneratorSimulation
Starte den Datengenerator

Specified by:
start in class DatenGeneratorSimulation

stop

public void stop()
Specified by:
stop in class DatenGeneratorSimulation

sendeSimulationZeit

private void sendeSimulationZeit(long time)
Sendet eine Zeitangabe als Simulationszeit an den Datenverteiler

Parameters:
time - die Zeit, die als Simualtionszeit gesendet werden soll

getSimulationsZeit

private long getSimulationsZeit()
Bestimmt die Simulationszeit

Returns:
die Simulationszeit in ms seit 1.1.1970, gemäss dem Simulationszeitfluss und unter Berücksichtigung der Simulations- Geschwindigkeit und des Zustands "Pause"

abmeldenSenden

private void abmeldenSenden()
Abmelden aller Sendeanmeldungen


sendeDaten

protected void sendeDaten(java.util.Collection<de.bsvrz.dav.daf.main.ResultData> sendePuffer)
Description copied from class: DatenGeneratorSimulation
Sendet Daten asynchron an den Datenverteiler

Overrides:
sendeDaten in class DatenGeneratorSimulation
Parameters:
sendePuffer - die zu sendenden Daten