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.AttributeGroupatgQueryAttributgruppe der Archiv-Anfrage und -Antwort.protected de.bsvrz.dav.daf.main.DataDescriptionddResponseDataDescription der Archiv-Antwort.protected de.bsvrz.sys.funclib.dataSerializer.Deserializerdeserializerprotected de.bsvrz.dav.daf.main.config.SystemObjectqueryAppObjApplikations-Objekt des Absenders der Archiv-Anfrage.protected intqueryIdxAnfrage-Index der anfragenden Applikation zur Archiv-Anfrage.static intSENDCONTROL_TIMEOUTZeit in Millisekunden, die auf eine positive Sendesteuerung gewartet wirdprotected intserializerVersionSerialisiererversion der anfragenden Applikation, mit der auch die Antwort erstellt werden muss.protected java.lang.ObjectsyncObjSpezielles Objekt zur Synchronisiserung.Fields inherited from class de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
TERMINATE_TASKFields inherited from class de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
_debug, _shouldTerminate, archMgr, didTree, persMgrFields 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 voiddataRequest(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state)voidgetObjectsFromDav()Wird aufgerufen, sobald eine Datenverteilerverbindung verfügbar ist.protected voidinit(de.bsvrz.dav.daf.main.Data data)Initialisiert den Task für eine neue Archivanfrage.protected voidinsertData(de.bsvrz.sys.funclib.dataSerializer.Serializer serializer)booleanisRequestSupported(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 voidsendErrorResponse(int messageTypeResult, java.lang.String errorMessage)protected voidsendErrorResponse(java.lang.String errorMessage)protected voidsendSuccessResponse()protected voidsendSuccessResponse(int messageTypeResult)protected voidsubscribeSender()Meldet den Task als Sender für Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt an.protected voidunsubscribeSender()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, workMethods inherited from class de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
executeMethods inherited from class de.bsvrz.ars.ars.mgmt.tasks.Task
addTaskStepListener, cleanUp, getName, getState, isAlive, isTerminated, join, removeTaskStepListener, setName, start, taskStepDoneMethods inherited from class de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
getArchMgr, shouldTerminate, suspendTaskIfNecessaryMethods 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:AbstractTaskWird 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:
getObjectsFromDavin 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:
dataRequestin 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:
isRequestSupportedin 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
-