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 das KExDaVDataPlugin
, 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 dazu ParameterDataTransferPolicy
. 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 and Description |
---|
DataTransferPolicy(LowLevelDataPipe lowLevelDataPipe)
Konstruktor
|
Modifier and Type | Method and Description |
---|---|
protected abstract void |
handleData(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)
Template-Methode, die die Daten weiterverarbeiten soll
|
void |
handleData(KExDaVAttributeGroupData sourceData,
DataState dataState,
long dataTime,
boolean isDelayed)
Wird aufgerufen, wenn Daten eintreffen
|
protected void |
sendData(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)
Sendet die Daten an das Zielsystem
|
public DataTransferPolicy(LowLevelDataPipe lowLevelDataPipe)
Konstruktor
lowLevelDataPipe
- Zugehöriger Datenkanal, in den die Daten eingespeist werden sollenpublic final void handleData(KExDaVAttributeGroupData sourceData, DataState dataState, long dataTime, boolean isDelayed)
Wird aufgerufen, wenn Daten eintreffen
sourceData
- Daten (können null sein)dataState
- Daten-ZustanddataTime
- Daten-ZeitisDelayed
- true
, wenn der im Ergebnis enthaltene Datensatz als nachgeliefert gekennzeichnet ist.protected abstract void handleData(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)
Template-Methode, die die Daten weiterverarbeiten soll
dataPackage
- Datenpaketprotected final void sendData(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)
Sendet die Daten an das Zielsystem
dataPackage
- Datenpaket