Package de.bsvrz.kex.kexdav.dataexchange
Class DataTransferPolicy
- java.lang.Object
-
- de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy
-
public abstract class DataTransferPolicy extends java.lang.Object
Eine abstrakte Klasse, die das Verfahren angibt, mit der Daten zwischen 2 Datenverteilern ausgetauscht werden. Diese Klasse ist nicht für die Kopie des Data-Objektes zuständig, darum kümmert sich dasKExDaVDataPlugin
, mit ihr könnte man stattdessen z.B. verhindern, dass leere Daten übertragen werden oder eine Art Rechteprüfung implementieren. Derzeit wird diese Klasse benutzt, um bei beidseitigen Parameter-Daten-Übertragungen festzustellen, wenn beide Seiten annährend gleichzeitig Parameter senden. Dann wird das lokale System priorisiert und ein unendlichen hin und her-wechseln der Daten verhindert. Siehe dazuParameterDataTransferPolicy
. Außerdem werden die beiden Datenverteilersysteme über den Threadpool entkoppelt, sodass z.B. ein hängenbleiben im sendData() die Empfangsqueue des anderen Datenverteilers nicht blockiert.
-
-
Constructor Summary
Constructors Constructor Description DataTransferPolicy(LowLevelDataPipe lowLevelDataPipe)
Konstruktor
-
Method Summary
Modifier and Type Method Description protected abstract void
handleData(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)
Template-Methode, die die Daten weiterverarbeiten sollvoid
handleData(KExDaVAttributeGroupData sourceData, de.bsvrz.dav.daf.main.DataState dataState, long dataTime, boolean isDelayed)
Wird aufgerufen, wenn Daten eintreffenprotected void
sendData(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)
Sendet die Daten an das Zielsystem
-
-
-
Constructor Detail
-
DataTransferPolicy
public DataTransferPolicy(LowLevelDataPipe lowLevelDataPipe)
Konstruktor- Parameters:
lowLevelDataPipe
- Zugehöriger Datenkanal, in den die Daten eingespeist werden sollen
-
-
Method Detail
-
handleData
public final void handleData(KExDaVAttributeGroupData sourceData, de.bsvrz.dav.daf.main.DataState dataState, long dataTime, boolean isDelayed)
Wird aufgerufen, wenn Daten eintreffen- Parameters:
sourceData
- Daten (können null sein)dataState
- Daten-ZustanddataTime
- Daten-ZeitisDelayed
-true
, wenn der im Ergebnis enthaltene Datensatz als nachgeliefert gekennzeichnet ist.
-
handleData
protected abstract void handleData(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)
Template-Methode, die die Daten weiterverarbeiten soll- Parameters:
dataPackage
- Datenpaket
-
sendData
protected final void sendData(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)
Sendet die Daten an das Zielsystem- Parameters:
dataPackage
- Datenpaket
-
-