de.bsvrz.kex.kexdav.dataexchange
Class DataTransferPolicy
java.lang.Object
de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy
- Direct Known Subclasses:
- BasicTransferPolicy, ParameterDataTransferPolicy.Policy
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
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
_lowLevelDataPipe
private final LowLevelDataPipe _lowLevelDataPipe
_queue
private static final UnboundedQueue<DataTransferPolicy.DataAndPipe> _queue
_lastWarnTime
private static volatile long _lastWarnTime
_debug
private static final Debug _debug
DataTransferPolicy
public DataTransferPolicy(LowLevelDataPipe lowLevelDataPipe)
- Konstruktor
- Parameters:
lowLevelDataPipe
- Zugehöriger Datenkanal, in den die Daten eingespeist werden sollen
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-ZustanddataTime
- Daten-Zeit
handleData
protected abstract void handleData(DataTransferPolicy.DataPackage dataPackage)
- Template-Methode, die die Daten weiterverarbeiten soll
- Parameters:
dataPackage
- Datenpaket
sendData
protected final void sendData(DataTransferPolicy.DataPackage dataPackage)
- Sendet die Daten an das Zielsystem
- Parameters:
dataPackage
- Datenpaket