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