Package de.bsvrz.kex.kexdav.dataexchange
Class DataTransferPolicy
- java.lang.Object
-
- de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy
-
public abstract class DataTransferPolicy extends java.lang.ObjectEine 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 voidhandleData(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)Template-Methode, die die Daten weiterverarbeiten sollvoidhandleData(KExDaVAttributeGroupData sourceData, de.bsvrz.dav.daf.main.DataState dataState, long dataTime, boolean isDelayed)Wird aufgerufen, wenn Daten eintreffenprotected voidsendData(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
-
-