Package de.bsvrz.ars.ars.mgmt.tasks
Class SingleClientSenderTask
java.lang.Object
de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
de.bsvrz.ars.ars.mgmt.tasks.Task
de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
de.bsvrz.ars.ars.mgmt.tasks.QueueTask<de.bsvrz.dav.daf.main.ResultData>
de.bsvrz.ars.ars.mgmt.tasks.SingleTask
de.bsvrz.ars.ars.mgmt.tasks.SingleClientSenderTask
- All Implemented Interfaces:
de.bsvrz.dav.daf.main.ClientSenderInterface
- Direct Known Subclasses:
BackupTask
,DeleteSimVarTask
,HeaderRestoreTask
,LZVTask
,QueryInfoTask
,RequestGapTask
,RestoreTask
public abstract class SingleClientSenderTask extends SingleTask implements de.bsvrz.dav.daf.main.ClientSenderInterface
Diese Klasse ist die Basis-Klasse aller Single-Tasks, die mit dem DAV kommunizieren.
-
Field Summary
Fields Modifier and Type Field Description protected de.bsvrz.dav.daf.main.config.AttributeGroup
atgQuery
Attributgruppe der Archiv-Anfrage und -Antwort.protected de.bsvrz.dav.daf.main.DataDescription
ddResponse
DataDescription der Archiv-Antwort.protected de.bsvrz.sys.funclib.dataSerializer.Deserializer
deserializer
protected de.bsvrz.dav.daf.main.config.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 in Millisekunden, die auf eine positive Sendesteuerung gewartet wirdprotected 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.RepeatingTask
TERMINATE_TASK
Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
_debug, _shouldTerminate, archMgr, didTree, persMgr
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
Constructors Constructor Description SingleClientSenderTask(ArchiveManager archiveMgr, java.util.concurrent.BlockingQueue<java.lang.Object> inputData)
Erzeugt einen neuen SingleClientSenderTask. -
Method Summary
Modifier and Type Method Description void
dataRequest(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state)
void
getObjectsFromDav()
Wird aufgerufen, sobald eine Datenverteilerverbindung verfügbar ist.protected void
init(de.bsvrz.dav.daf.main.Data data)
Initialisiert den Task für eine neue Archivanfrage.protected void
insertData(de.bsvrz.sys.funclib.dataSerializer.Serializer serializer)
boolean
isRequestSupported(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription)
protected de.bsvrz.dav.daf.main.archive.ArchiveDataSpecification[]
parseArchiveDataSpec(de.bsvrz.sys.funclib.dataSerializer.Deserializer ds)
protected void
sendErrorResponse(int messageTypeResult, java.lang.String errorMessage)
protected void
sendErrorResponse(java.lang.String errorMessage)
protected void
sendSuccessResponse()
protected void
sendSuccessResponse(int messageTypeResult)
protected void
subscribeSender()
Meldet den Task als Sender für Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt an.protected void
unsubscribeSender()
Meldet den Task als Sender für Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt ab.Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.QueueTask
offer, step, submit, terminateTask, work
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
execute
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
addTaskStepListener, cleanUp, getName, getState, isAlive, isTerminated, join, removeTaskStepListener, setName, start, taskStepDone
Methods inherited from class de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
getArchMgr, shouldTerminate, suspendTaskIfNecessary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
SENDCONTROL_TIMEOUT
public static final int SENDCONTROL_TIMEOUTZeit in Millisekunden, die auf eine positive Sendesteuerung gewartet wird- See Also:
- Constant Field Values
-
syncObj
protected final java.lang.Object syncObjSpezielles Objekt zur Synchronisiserung. Immer dieses anstatt this verwenden! -
serializerVersion
protected int serializerVersionSerialisiererversion der anfragenden Applikation, mit der auch die Antwort erstellt werden muss. -
atgQuery
protected de.bsvrz.dav.daf.main.config.AttributeGroup atgQueryAttributgruppe der Archiv-Anfrage und -Antwort. -
ddResponse
protected de.bsvrz.dav.daf.main.DataDescription ddResponseDataDescription der Archiv-Antwort. -
queryAppObj
protected de.bsvrz.dav.daf.main.config.SystemObject queryAppObjApplikations-Objekt des Absenders der Archiv-Anfrage. -
queryIdx
protected int queryIdxAnfrage-Index der anfragenden Applikation zur Archiv-Anfrage. -
deserializer
protected de.bsvrz.sys.funclib.dataSerializer.Deserializer deserializer
-
-
Constructor Details
-
SingleClientSenderTask
public SingleClientSenderTask(ArchiveManager archiveMgr, java.util.concurrent.BlockingQueue<java.lang.Object> inputData)Erzeugt einen neuen SingleClientSenderTask.- Parameters:
archiveMgr
- Der Archiv-Manager.inputData
- Eingangswarteschlange
-
-
Method Details
-
getObjectsFromDav
public void getObjectsFromDav()Description copied from class:AbstractTask
Wird aufgerufen, sobald eine Datenverteilerverbindung verfügbar ist. Kann benutzt werden, um Objekte zu laden und Anmeldungen durchzuführen.Wichtig: Diese Methode wird unter Umständen im Konstruktor ausgeführt und sollte daher nicht erwarten, dass die Subklasse (`this`) vollständig initialisiert ist.
- Overrides:
getObjectsFromDav
in classAbstractTask
-
init
protected void init(@Nullable de.bsvrz.dav.daf.main.Data data) throws de.bsvrz.sys.funclib.dataSerializer.NoSuchVersionExceptionInitialisiert den Task für eine neue Archivanfrage.- Throws:
de.bsvrz.sys.funclib.dataSerializer.NoSuchVersionException
-
sendErrorResponse
protected void sendErrorResponse(java.lang.String errorMessage) -
sendSuccessResponse
protected void sendSuccessResponse() -
sendErrorResponse
protected void sendErrorResponse(int messageTypeResult, java.lang.String errorMessage) -
sendSuccessResponse
protected void sendSuccessResponse(int messageTypeResult) -
insertData
protected void insertData(de.bsvrz.sys.funclib.dataSerializer.Serializer serializer) throws java.io.IOException- Throws:
java.io.IOException
-
subscribeSender
protected void subscribeSender() throws de.bsvrz.dav.daf.main.OneSubscriptionPerSendDataMeldet den Task als Sender für Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt an. Registriert den StreamMultiplexer für den Empfang von Flusskontroll-Steuerungspaketen.- Throws:
de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
-
unsubscribeSender
protected void unsubscribeSender()Meldet den Task als Sender für Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt ab. -
dataRequest
public void dataRequest(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state)- Specified by:
dataRequest
in interfacede.bsvrz.dav.daf.main.ClientSenderInterface
-
isRequestSupported
public boolean isRequestSupported(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription)- Specified by:
isRequestSupported
in interfacede.bsvrz.dav.daf.main.ClientSenderInterface
-
parseArchiveDataSpec
protected de.bsvrz.dav.daf.main.archive.ArchiveDataSpecification[] parseArchiveDataSpec(de.bsvrz.sys.funclib.dataSerializer.Deserializer ds) throws java.lang.Exception- Throws:
java.lang.Exception
-