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