Class DataTransferPolicy


  • public abstract class DataTransferPolicy
    extends java.lang.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.
    • Method Summary

      Modifier and Type Method Description
      protected abstract void handleData​(de.bsvrz.kex.kexdav.dataexchange.DataTransferPolicy.DataPackage dataPackage)
      Template-Methode, die die Daten weiterverarbeiten soll
      void handleData​(KExDaVAttributeGroupData sourceData, de.bsvrz.dav.daf.main.DataState dataState, long dataTime, boolean isDelayed)
      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,
                                     de.bsvrz.dav.daf.main.DataState dataState,
                                     long dataTime,
                                     boolean isDelayed)
        Wird aufgerufen, wenn Daten eintreffen
        Parameters:
        sourceData - Daten (können null sein)
        dataState - Daten-Zustand
        dataTime - Daten-Zeit
        isDelayed - true, wenn der im Ergebnis enthaltene Datensatz als nachgeliefert gekennzeichnet ist.
      • 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