de.bsvrz.ars.ars.mgmt.tasks
Class SingleClientSenderTask

java.lang.Object
  extended by java.lang.Thread
      extended by de.bsvrz.ars.ars.mgmt.tasks.Task
          extended by de.bsvrz.ars.ars.mgmt.tasks.SingleTask
              extended by de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask
All Implemented Interfaces:
SuspendableTask, java.lang.Runnable
Direct Known Subclasses:
BackupTask, DeleteSimVarTask, HeaderRestoreTask, LZVTask, RequestGapTask, RestoreTask

public abstract class SingleClientSenderTask
extends SingleTask

Diese Klasse ist die Basis-Klasse aller Single-Tasks, die mit dem DAV kommunizieren.

Version:
$Revision: 1.2 $ / $Date: 2008/01/22 16:55:57 $ / ($Author: yvonnes $)
Author:
beck et al. projects GmbH, Christian Wied

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
protected static AttributeGroup atgQuery
          Attributgruppe der Archiv-Anfrage und -Antwort.
protected static DataDescription ddResponse
          DataDescription der Archiv-Antwort.
protected  Deserializer deserializer
           
protected  SystemObject queryAppObj
          Applikations-Objekt des Absenders der Archiv-Anfrage.
protected  int queryIdx
          Anfrage-Index der anfragenden Applikation zur Archiv-Anfrage.
static int SENDCONTROL_TIMEOUT
          Zeit, die auf eine positive Sendesteuerung gewartet wird
protected  int serializerVersion
          Serialisiererversion der anfragenden Applikation, mit der auch die Antwort erstellt werden muss.
protected  java.lang.Object syncObj
          Spezielles Objekt zur Synchronisiserung.
 
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
archMgr, didTree, INDEX_MEMORY_SIZE, isTerminated, logger, persMgr, ringOfDeathListener, taskStepListeners
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
SingleClientSenderTask(ArchiveManager archiveMgr, RingOfDeathListener rodl, RingBuffer<ResultData> inputData)
          Erzeugt einen neuen SingleClientSenderTask.
 
Method Summary
 void dataRequest(SystemObject object, DataDescription dataDescription, byte state)
           
static void getObjectsFromDAV(ClientDavInterface davCon)
          In dieser Methode werden alle notwendigen Objekte von DAV geladen.
protected  void init(Data data)
          Initialisiert den Task fuer eine neue Archivanfrage.
 boolean isRequestSupported(SystemObject object, DataDescription dataDescription)
           
protected  ArchiveDataSpecification[] parseArchiveDataSpec(Deserializer ds, ResultData resultData)
           
protected  void sendErrorResponse(java.lang.String errorMessage)
           
protected  void sendSuccessResponse()
           
protected  void subscribeSender()
          Meldet den Task als Sender fuer Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt an.
protected  void unsubscribeSender()
          Meldet den Task als Sender fuer Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt ab.
 
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.SingleTask
run, work
 
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
 

Field Detail

SENDCONTROL_TIMEOUT

public static final int SENDCONTROL_TIMEOUT
Zeit, die auf eine positive Sendesteuerung gewartet wird

See Also:
Constant Field Values

syncObj

protected java.lang.Object syncObj
Spezielles Objekt zur Synchronisiserung. Immer dieses anstatt this verwenden!


serializerVersion

protected int serializerVersion
Serialisiererversion der anfragenden Applikation, mit der auch die Antwort erstellt werden muss.


atgQuery

protected static AttributeGroup atgQuery
Attributgruppe der Archiv-Anfrage und -Antwort.


ddResponse

protected static DataDescription ddResponse
DataDescription der Archiv-Antwort.


queryAppObj

protected SystemObject queryAppObj
Applikations-Objekt des Absenders der Archiv-Anfrage.


queryIdx

protected int queryIdx
Anfrage-Index der anfragenden Applikation zur Archiv-Anfrage.


deserializer

protected Deserializer deserializer
Constructor Detail

SingleClientSenderTask

public SingleClientSenderTask(ArchiveManager archiveMgr,
                              RingOfDeathListener rodl,
                              RingBuffer<ResultData> inputData)
                       throws ConfigurationException
Erzeugt einen neuen SingleClientSenderTask.

Parameters:
archiveMgr - Der Archiv-Manager.
rodl - Der Listener wird benachrichtigt beim Beenden der Task.
inputData - Eingangswarteschlange
Throws:
ConfigurationException
Method Detail

getObjectsFromDAV

public static void getObjectsFromDAV(ClientDavInterface davCon)
                              throws ConfigurationException
In dieser Methode werden alle notwendigen Objekte von DAV geladen.

Parameters:
davCon - Verbindung zum Datenverteiler
Throws:
ConfigurationException

init

protected void init(Data data)
             throws NoSuchVersionException
Initialisiert den Task fuer eine neue Archivanfrage.

Throws:
NoSuchVersionException

sendErrorResponse

protected void sendErrorResponse(java.lang.String errorMessage)

sendSuccessResponse

protected void sendSuccessResponse()

subscribeSender

protected void subscribeSender()
                        throws ConfigurationException,
                               OneSubscriptionPerSendData
Meldet den Task als Sender fuer Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt an. Registriert den StreamMultiplexer fuer den Empfang von Flusskontroll-Steuerungspaketen.

Throws:
OneSubscriptionPerSendData
ConfigurationException

unsubscribeSender

protected void unsubscribeSender()
Meldet den Task als Sender fuer Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt ab.


dataRequest

public void dataRequest(SystemObject object,
                        DataDescription dataDescription,
                        byte state)
See Also:
ClientSenderInterface#dataRequest(SystemObject, DataDescription, byte)

isRequestSupported

public boolean isRequestSupported(SystemObject object,
                                  DataDescription dataDescription)
See Also:
ClientSenderInterface#isRequestSupported(SystemObject, DataDescription)

parseArchiveDataSpec

protected ArchiveDataSpecification[] parseArchiveDataSpec(Deserializer ds,
                                                          ResultData resultData)
                                                   throws java.lang.Exception
Throws:
java.lang.Exception


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