public abstract class DataTransferPolicy extends Object
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)
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)
lowLevelDataPipe
- Zugehöriger Datenkanal, in den die Daten eingespeist werden sollenpublic final void handleData(KExDaVAttributeGroupData sourceData, DataState dataState, long dataTime)
sourceData
- Daten (können null sein)dataState
- Daten-ZustanddataTime
- Daten-Zeitprotected abstract void handleData(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)
dataPackage
- Datenpaketprotected final void sendData(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)
dataPackage
- Datenpaket