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