de.bsvrz.ars.ars.mgmt
Class ArchivConfig

java.lang.Object
  extended by java.lang.Thread
      extended by de.bsvrz.ars.ars.mgmt.tasks.Task
          extended by de.bsvrz.ars.ars.mgmt.ArchivConfig
All Implemented Interfaces:
SuspendableTask, java.lang.Runnable

public class ArchivConfig
extends Task

Konfiguration des Archivsystems. Die Klasse ist als Thread implementiert, damit die Anmeldungen nicht im Thread des Datenverteilers (in den Callback-Methoden des SettingsManager) laufen muessen. Stattdessen wird ein einfacher Ping-Pong-Mechnanismus implementiert, mit dem die Parameter abgearbeitet werden, sobald der EndOfSettingsListener aufgerufen wurde. Das Ende eines Parametrierungszyklus kann durch createEndOfParamListener() abgewartet werden. In einem Parametrierungszyklus werden alle An-/Abmeldungen von zu archivierenden Datenidentifikationen und Quittierungs-Datenidentifikationen vorgenommen. Diese Klasse ist als einzige nicht mit Hilfe von Task und RingBuffer implementiert, da sie einen von der Kernsoftware zur Verfuegung gestellten Mechanismus zur Parameteruebernahme verwendet.

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

Nested Class Summary
 class ArchivConfig.EndOfParamListener
          Spezielle Klasse, mit der man auf das Ende der Übernahme der nächsten Archiveinstellungen warten kann.
static class ArchivConfig.SubscrMarker
          Mit dieser Klasse wird während der Parameterübernahme in den Callback-Methoden vermerkt für welche Datenidentifikation (= DataIdentNode) was parametriert wurde.
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
archMgr, didTree, INDEX_MEMORY_SIZE, logger, persMgr, ringOfDeathListener, taskStepListeners
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
ArchivConfig(ArchiveManager aMgr)
           
 
Method Summary
 ArchivConfig.EndOfParamListener createEndOfParamListener()
          Erzeugt einen Listener der benachrichtigt wird, wenn ein Parametrierungszyklus durchlaufen ist.
 void printArchiveParams(java.io.File dumpFile)
          Gibt die Parametrierung auf dem uebergebenen Stream aus.
 void restartSubscribeArchiveParams()
          Startet die Uebernahme der Archivparametrierung und meldet die zu archivierenden Datenidentifikation an.
 void run()
           
 void setSimConfigQueue(RingBuffer<ResultData> queue)
           
 void startSubscribeArchiveParams(InQueuesMgr iqMgr, DataIdentTree dTree)
          Initialisiert den Thread und startet durch restartSubscribeArchiveParams() die Uebernahme der Archivparametrierung.
 void unsubscribeArchiveData()
          Meldet alle zu archivierenden Daten ab
 void unsubscribeArchiveDataAck()
          Meldet alle Quittierungsaspekte ab.
 void unsubscribeArchiveParams()
          Beendet den SettingsManager und meldet die Parametrierung des Archivsystems ab.
 void unsubsrcibeSimVarData(int simVar)
          Meldet alle zu einer Simulation gehoerenden Daten (= zu archivierende Daten + Quittungen) ab.
 void waitForTermination()
          Beendet den ArchivConfig-Thread.
 
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
addTaskStepListener, getArchMgr, isTaskTerminated, removeTaskStepListener, suspendTaskIfNecessary, terminateTask
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, 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, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ArchivConfig

public ArchivConfig(ArchiveManager aMgr)
             throws ConfigurationException
Throws:
ConfigurationException
Method Detail

setSimConfigQueue

public void setSimConfigQueue(RingBuffer<ResultData> queue)

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

waitForTermination

public void waitForTermination()
Beendet den ArchivConfig-Thread. Die Methode blockiert (aus Gruenden der Einfachheit), bis der Thread beendet ist.


createEndOfParamListener

public ArchivConfig.EndOfParamListener createEndOfParamListener()
Erzeugt einen Listener der benachrichtigt wird, wenn ein Parametrierungszyklus durchlaufen ist.

Returns:
Listener

startSubscribeArchiveParams

public void startSubscribeArchiveParams(InQueuesMgr iqMgr,
                                        DataIdentTree dTree)
                                 throws ConfigurationException
Initialisiert den Thread und startet durch restartSubscribeArchiveParams() die Uebernahme der Archivparametrierung.

Parameters:
iqMgr - Empfaenger der Datenanmeldung
dTree - Baum, in den die Datenidentifikationen zusammen mit der Parametrierung eingetragen werden
Throws:
ConfigurationException

restartSubscribeArchiveParams

public void restartSubscribeArchiveParams()
                                   throws ConfigurationException
Startet die Uebernahme der Archivparametrierung und meldet die zu archivierenden Datenidentifikation an. Diese Methode wird auch nach einem Verbindungsabbruch zum DAV aufgerufen.

Throws:
ConfigurationException

unsubscribeArchiveParams

public void unsubscribeArchiveParams()
Beendet den SettingsManager und meldet die Parametrierung des Archivsystems ab.


unsubscribeArchiveData

public void unsubscribeArchiveData()
Meldet alle zu archivierenden Daten ab


unsubsrcibeSimVarData

public void unsubsrcibeSimVarData(int simVar)
Meldet alle zu einer Simulation gehoerenden Daten (= zu archivierende Daten + Quittungen) ab. Da es nicht auf einfache Weise moeglich ist, festzustellen, wann keine Datensaetze einer bestimmten SimVar mehr in der Archiv-Queue sind, kann man nicht bis dahin warten, bevor die Quittungen abgemeldet werden. Es kann also sein, dass einige Datensaetze der Simulation nicht mehr quittiert werden.


unsubscribeArchiveDataAck

public void unsubscribeArchiveDataAck()
Meldet alle Quittierungsaspekte ab. Dies muss nach unsubscribeArchiveData() geschehen, damit die Datensaetze, die noch in der Queue sind, nach der Archivierung quittiert werden koennen.


printArchiveParams

public void printArchiveParams(java.io.File dumpFile)
                        throws java.lang.Exception
Gibt die Parametrierung auf dem uebergebenen Stream aus.

Parameters:
dumpFile - Ausgabestream. Falls null, wird auf stdout ausgegeben
Throws:
ConfigurationException
java.lang.InterruptedException
java.lang.Exception


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