de.bsvrz.kex.kexdav.dataexchange
Class DataTransferPolicy

java.lang.Object
  extended by de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy

public abstract class DataTransferPolicy
extends 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.

Author:
Kappich Systemberatung

Constructor Summary
DataTransferPolicy(LowLevelDataPipe lowLevelDataPipe)
          Konstruktor
 
Method Summary
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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,
                             DataState dataState,
                             long dataTime)
Wird aufgerufen, wenn Daten eintreffen

Parameters:
sourceData - Daten (können null sein)
dataState - Daten-Zustand
dataTime - Daten-Zeit

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