de.bsvrz.kex.kexdav.dataexchange
Class ParameterDataTransferPolicy

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

public final class ParameterDataTransferPolicy
extends Object

Diese Klasse wird benutzt, um bei beidseitigen Parameter-Daten-Übetragungen 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.

Funktionsweise der Klasse: Es gibt 2 innere DataTransferPolicy-Klassen, die jeweils für den Datenverkehr in eine Richtung zuständig sind. Falls Daten eintreffen, wird über einen ThreadPool der Task _task gestartet, der sich um die eingetroffenen Daten kümmert.

Author:
Kappich Systemberatung

Nested Class Summary
(package private)  class ParameterDataTransferPolicy.Policy
           
 
Field Summary
private  DataTransferPolicy.DataPackage _currentData
           
private  ParameterDataTransferPolicy.Policy _localRemotePolicy
          Die Transfer-Klasse für die Verbindung Lokal nach Remote
private  ParameterDataTransferPolicy.Policy _remoteLocalPolicy
          Die Transfer-Klasse für Remote nach Lokal
private  Runnable _task
          Der Task, der die Daten weiterleitet und dabei verhindert, dass in beide Richtungen annährend gleichzeitg Daten übertragen werden.
(package private) static ThreadPoolExecutor _threadPool
           
 
Constructor Summary
ParameterDataTransferPolicy(LowLevelDataPipe localRemoteDataPipe, LowLevelDataPipe remoteLocalDataPipe)
          Konstruktor
 
Method Summary
 DataTransferPolicy getLocalRemotePolicy()
          Gibt das Verbindungsverfahren für die Lokal-Remote-Datenleitung zurück
 DataTransferPolicy getRemoteLocalPolicy()
          Gibt das Verbindungsverfahren für die Remote-Lokal-Datenleitung zurück
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_localRemotePolicy

private final ParameterDataTransferPolicy.Policy _localRemotePolicy
Die Transfer-Klasse für die Verbindung Lokal nach Remote


_remoteLocalPolicy

private final ParameterDataTransferPolicy.Policy _remoteLocalPolicy
Die Transfer-Klasse für Remote nach Lokal


_task

private final Runnable _task
Der Task, der die Daten weiterleitet und dabei verhindert, dass in beide Richtungen annährend gleichzeitg Daten übertragen werden.


_currentData

private DataTransferPolicy.DataPackage _currentData

_threadPool

static final ThreadPoolExecutor _threadPool
Constructor Detail

ParameterDataTransferPolicy

public ParameterDataTransferPolicy(LowLevelDataPipe localRemoteDataPipe,
                                   LowLevelDataPipe remoteLocalDataPipe)
Konstruktor

Parameters:
localRemoteDataPipe - Datenleitung Lokal nach Remote
remoteLocalDataPipe - Datenleitung Remote nach Lokal
Method Detail

getLocalRemotePolicy

public DataTransferPolicy getLocalRemotePolicy()
Gibt das Verbindungsverfahren für die Lokal-Remote-Datenleitung zurück

Returns:
Verbindungsverfahren, das sicherstellt, dass es zu keinem wechselseitigen Parameteraustausch kommt.

getRemoteLocalPolicy

public DataTransferPolicy getRemoteLocalPolicy()
Gibt das Verbindungsverfahren für die Remote-Lokal-Datenleitung zurück

Returns:
Verbindungsverfahren, das sicherstellt, dass es zu keinem wechselseitigen Parameteraustausch kommt.