public class T_T_HighLevelCommunication extends java.lang.Object implements T_T_HighLevelCommunicationInterface, HighLevelCommunicationCallbackInterface
Diese Klasse stellt die Funktionalitäten für die Kommunikation zwischen zwei Datenverteilern zur Verfügung. Hier wird die Verbindung zwischen zwei DAV aufgebaut, sowie die Authentifizierung durchgeführt.
Modifier and Type | Class and Description |
---|---|
private class |
T_T_HighLevelCommunication.MyTelegramInterface |
Modifier and Type | Field and Description |
---|---|
private AuthentificationComponent |
_authentificationComponent
Die Authentifizierungskomponente
|
private java.lang.Integer |
_authentificationSync
Objekt zur internen Synchronization
|
private boolean |
_closed
Signalisiert dass diese Verbindung terminiert ist
|
private java.lang.Object |
_closedLock |
private long |
_connectedTransmitterId
Die Id des über diesen Kanal verbundenen Datenverteiler
|
private ClientCredentials |
_credentialsForAuthentication
Passwort des Benutzers mit dem sich dieser Datenverteiler beim anderen Datenverteiler authentifizieren soll
|
private static Debug |
_debug |
private java.util.LinkedList<DataTelegram> |
_fastTelegramsList
Temporäre Liste der Telegramme, die vor die Initialisierung eingetroffen sind.
|
private boolean |
_initComplete
Signalisiert, ob die Initialisierungsphase abgeschlossen ist
|
private boolean |
_isIncomingConnection
Legt fest, ob es sich um eine eingehende Verbindung handelt (dieser Datenverteiler also der Server ist).
|
private LowLevelCommunicationInterface |
_lowLevelCommunication
Die erste Ebene der Kommunikation
|
private LowLevelConnectionsManagerInterface |
_lowLevelConnectionsManager |
private UserLogin |
_pendingSrpUserLogin |
private ServerConnectionProperties |
_properties
Die Eigenschaften dieser Verbindung
|
private SrpCryptoParameter |
_serverCryptoParams
Die als Server bei der SRP-Authentifizierung (von der lokalen Konfiguration) empfangenen kryptographischen Parameter
|
private SrpRequest |
_srpRequest |
private SrpServerAuthentication |
_srpServerSession |
private CommunicationStateAndMessage |
_state
Status der Verbindung
|
private java.util.Set<java.lang.Integer> |
_supportedProtocolVersions
Die unterstützten Versionen des Datenverteilers
|
private java.lang.Integer |
_sync
Objekt zur internen Synchronization
|
private java.util.LinkedList<DataTelegram> |
_syncSystemTelegramList
Temporäre Liste der Systemtelegramme für interne Synchronisationszwecke.
|
private HighLevelTransmitterManagerInterface |
_transmitterManager |
private java.lang.String |
_userForAuthentication
Benutzername mit dem sich dieser Datenverteiler beim anderen Datenverteiler authentifizieren soll
|
private UserLogin |
_userLogin
Die Id des Remotebenutzers
|
private int |
_version
Die Version, mit der die Kommunikation erfolgt
|
private boolean |
_waitForConfiguration
Die Information ob auf die Konfiguration gewartet werden muss.
|
private short |
_weight
Gewichtung dieser Verbindung
|
Constructor and Description |
---|
T_T_HighLevelCommunication(ServerConnectionProperties properties,
HighLevelTransmitterManagerInterface transmitterManager,
LowLevelConnectionsManagerInterface lowLevelConnectionsManager,
short weight,
boolean waitForConfiguration,
java.lang.String userForAuthentication,
ClientCredentials credentialsForAuthentication,
boolean incomingConnection)
Erzeugt ein neues Objekt mit den gegebenen Parametern.
|
Modifier and Type | Method and Description |
---|---|
private void |
authenticate()
Erledigt den Authentifizierungsprozess beim Remote-Datenverteiler.
|
private TransmitterAuthentificationAnswer |
authenticateHmac()
Authentifizierung als Client mit HMAC
|
private TransmitterAuthentificationAnswer |
authenticateSrp()
Authentifizierung als Client mit SRP
|
private boolean |
completeAuthenticationAndSendAnswer(java.lang.String userName) |
boolean |
completeInitialisation()
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die Initialisierung einer Verbindung abzuschließen.
|
void |
connect()
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um eine logische Verbindung zwischen zwei Datenverteilern herzustellen.
|
void |
continueAuthentication()
Diese Methode wird von der Verbindungsverwaltung aufgerufen, sobald die Konfiguration vorhanden ist, um zu signalisieren, dass eine blockierte Authentifizierung weiter bearbeitet werden kann: Steht eine Authentifizierungsschlüsselanfrage an, während die Konfiguration noch nicht vorhanden ist, wird die Antwort blockiert bis die Konfiguration bereit ist.
|
void |
disconnected(boolean error,
java.lang.String message)
Wird von der unteren Kommunikationsschicht in Fehlersituationen zum Abbruch der Kommunikationsverbindung aufgerufen.
|
EncryptionStatus |
getEncryptionStatus() |
long |
getId()
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die ID der verbundenen Applikation zu erhalten.
|
LowLevelConnectionsManagerInterface |
getLowLevelConnectionsManager() |
private int |
getPreferredVersion(int[] versions)
Gibt die höchste unterstützte Version aus den gegebenen Versionen oder -1, wenn keine von den gegebenen Versionen unterstützt wird, zurück.
|
java.lang.String |
getRemoteAdress() |
long |
getRemoteNodeId()
Diese Methode gibt die ID des Zielknotens zurück.
|
int |
getRemoteSubadress()
Diese Methode gibt die Subadresse des Kommunikationspartners zurück.
|
CommunicationStateAndMessage |
getState()
Gibt den Verbindungszustand zurück
|
long |
getTelegramTime(long maxWaitingTime)
Diese Methode wird von der Verbindungsverwaltung aufgerufen.
|
int |
getThroughputResistance()
Diese Methode gibt die Gewichtung der Verbindung zurück.
|
UserLogin |
getUserLogin()
Gibt die ID des verbundenen Benutzers zurück.
|
private boolean |
handleRemoteTransmitterId(long remoteTransmitterId) |
boolean |
isClosed() |
boolean |
isIncomingConnection()
Gibt die Information zurück, ob diese Verbindung von dem anderen Datenverteiler aufgebaut wurde.
|
private void |
needsToBeAuthenticated()
Hilfsfunktion, die eine Exception wirft, wenn der Benutzer noch nicht erfolgreich authentifiziert ist
|
private void |
needsToBeNotAuthenticated()
Hilfsfunktion, die eine Exception wirft, wenn der Benutzer schon erfolgreich authentifiziert ist
|
void |
sendData(ApplicationDataTelegram telegram,
boolean toCentralDistributor)
Versendet ein Daten-Telegramm über diese Verbindung
|
void |
sendReceipt(long centralTransmitterId,
ConnectionState state,
TransmitterSubscriptionType receiver,
RemoteSubscription remoteReceiverSubscription)
Sendet eine Quittung auf eine Datenanmeldung zurück bzw. informiert darüber, ob es wirklich einen Zentraldatenverteiler auf, bzw hinter diesem Datenverteiler gibt.
|
void |
sendRoutingUpdate(RoutingUpdate[] routingUpdates)
Diese Methode findet die besten Wege.
|
void |
sendTelegram(DataTelegram telegram)
Diese Methode wird von der Verbindungsverwaltung, der Zuliefererverwaltung und der Anmeldungsverwaltung aufgerufen.
|
void |
sendTelegrams(DataTelegram[] telegrams)
Mehrere Telegramme können en bloc versandt werden.
|
private void |
setCommunicationState(CommunicationState communicationState,
java.lang.String message) |
void |
subscribeToRemote(RemoteCentralSubscription remoteCentralSubscription)
Sorgt für eine Datenanmeldung bei einem entfernten Zentraldatenverteiler.
|
void |
terminate(boolean error,
java.lang.String message)
Terminiert die Kommunikationsverbindung.
|
void |
terminate(boolean error,
java.lang.String message,
DataTelegram terminationTelegram) |
java.lang.String |
toString() |
void |
unsubscribeToRemote(RemoteCentralSubscription remoteCentralSubscription)
Sorgt für Datenabmeldung bei einem entfernten Zentraldatenverteiler.
|
void |
update(DataTelegram telegram)
Wird von der unteren Kommunikationsschicht nach Empfang eines Telegramms aufgerufen.
|
void |
updateConfigData(SendDataObject receivedData)
Wenn ein neues Konfigurationstelegramm angekommen ist, wird es an die Verwaltung weitergeleitet.
|
private DataTelegram |
waitForAnswerTelegram(byte telegramType,
java.lang.String descriptionOfExpectedTelegram) |
private static final Debug _debug
private long _connectedTransmitterId
Die Id des über diesen Kanal verbundenen Datenverteiler
private UserLogin _userLogin
Die Id des Remotebenutzers
private LowLevelCommunicationInterface _lowLevelCommunication
Die erste Ebene der Kommunikation
private ServerConnectionProperties _properties
Die Eigenschaften dieser Verbindung
private final java.util.Set<java.lang.Integer> _supportedProtocolVersions
Die unterstützten Versionen des Datenverteilers
private int _version
Die Version, mit der die Kommunikation erfolgt
private AuthentificationComponent _authentificationComponent
Die Authentifizierungskomponente
private final java.util.LinkedList<DataTelegram> _syncSystemTelegramList
Temporäre Liste der Systemtelegramme für interne Synchronisationszwecke.
private final java.util.LinkedList<DataTelegram> _fastTelegramsList
Temporäre Liste der Telegramme, die vor die Initialisierung eingetroffen sind.
private short _weight
Gewichtung dieser Verbindung
private boolean _initComplete
Signalisiert, ob die Initialisierungsphase abgeschlossen ist
private boolean _waitForConfiguration
Die Information ob auf die Konfiguration gewartet werden muss.
private java.lang.Integer _sync
Objekt zur internen Synchronization
private java.lang.Integer _authentificationSync
Objekt zur internen Synchronization
private boolean _isIncomingConnection
Legt fest, ob es sich um eine eingehende Verbindung handelt (dieser Datenverteiler also der Server ist).
private volatile boolean _closed
Signalisiert dass diese Verbindung terminiert ist
private java.lang.Object _closedLock
private java.lang.String _userForAuthentication
Benutzername mit dem sich dieser Datenverteiler beim anderen Datenverteiler authentifizieren soll
private ClientCredentials _credentialsForAuthentication
Passwort des Benutzers mit dem sich dieser Datenverteiler beim anderen Datenverteiler authentifizieren soll
private final HighLevelTransmitterManagerInterface _transmitterManager
private final LowLevelConnectionsManagerInterface _lowLevelConnectionsManager
private CommunicationStateAndMessage _state
Status der Verbindung
private SrpRequest _srpRequest
private SrpServerAuthentication _srpServerSession
private SrpCryptoParameter _serverCryptoParams
Die als Server bei der SRP-Authentifizierung (von der lokalen Konfiguration) empfangenen kryptographischen Parameter
private UserLogin _pendingSrpUserLogin
public T_T_HighLevelCommunication(ServerConnectionProperties properties, HighLevelTransmitterManagerInterface transmitterManager, LowLevelConnectionsManagerInterface lowLevelConnectionsManager, short weight, boolean waitForConfiguration, java.lang.String userForAuthentication, ClientCredentials credentialsForAuthentication, boolean incomingConnection)
Erzeugt ein neues Objekt mit den gegebenen Parametern.
properties
- Eigenschaften dieser VerbindunglowLevelConnectionsManager
- Low-Level-Verbindugnsverwaltungweight
- Gewichtung dieser VerbindungwaitForConfiguration
- true: auf die KOnfiguration muss gewartet werden, false: Konfiguration ist vorhandenuserForAuthentication
- Benutzername mit dem sich dieser Datenverteiler beim anderen Datenverteiler authentifizieren sollcredentialsForAuthentication
- Passwort des Benutzers mit dem sich dieser Datenverteiler beim anderen Datenverteiler authentifizieren sollincomingConnection
- public final void connect() throws CommunicationError
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um eine logische Verbindung zwischen zwei Datenverteilern herzustellen. Zunächst wird die Protokollversion verhandelt. In einem Systemtelegramm ?TransmitterProtocolVersionRequest? werden die unterstützten Versionen über die Telegrammverwaltung an den zweiten Datenverteiler gesendet. Auf die Antwort wird eine gewisse Zeit gewartet (maximale Wartezeit auf synchrone Antworten). Wenn die Antwort innerhalb diese Zeit nicht angekommen bzw. keine der Protokollversionen vom anderen Datenverteiler unterstützt wird, wird eine CommunicationErrorAusnahme erzeugt.
Danach erfolgt die Authentifizierung: Über die Telegrammverwaltung wird ein Telegramm? TransmitterAuthentificationTextRequest? zum anderen Datenverteiler gesendet, um einen Schlüssel für die Authentifizierung anzufordern. Die ID des sendenden Datenverteilers wird den ServerConnectionProperties entnommen. Auf die Antwort ?TransmitterAuthentificationTextAnswer? wird eine gewisse Zeit gewartet (maximale Wartezeit auf synchrone Antworten). Wenn die Antwort nicht innerhalb dieser Zeit angekommen ist, wird eine CommunicationError-Ausnahme erzeugt. Das Passwort, welches in den ServerConnectionProperties spezifiziert ist, wird mit diesem Schlüssel und dem spezifizierten Authentifizierungsverfahren verschlüsselt. Aus dem Authentifizierungsverfahrennamen, dem verschlüsselten Passwort und dem Benutzernamen wird ein ?TransmitterAuthentificationRequest?-Telegramm gebildet und mittels Telegrammverwaltung zum anderen Datenverteiler gesendet. Auf die Antwort ?TransmitterAuthentificationAnswer? wird eine gewisse Zeit gewartet (maximale Wartezeit auf synchrone Antworten). Wenn die Antwort nicht innerhalb dieser Zeit angekommen ist oder konnte die Authentifizierung nicht erfolgreich abgeschlossen werden, so wird eine CommunicationError-Ausnahme erzeugt
Danach geht diese Methode geht in den Wartezustand, bis der andere Datenverteiler sich in umgekehrter Richtung auch erfolgreich authentifiziert hat. Dabei durchläuft der andere Datenverteiler das gleiche Prozedere wie zuvor beschrieben.
Im nächsten Schritt verhandeln die Datenverteiler die Keep-alive-Parameter und die Durchsatzprüfungsparameter (Verbindungsparameter). Ein ?TransmitterComParametersRequest? wird zum anderen Datenverteiler gesendet. Auch hier wird eine gewisse Zeit auf die Antwort ?TransmitterComParametersAnswer? gewartet (maximale Wartezeit auf synchrone Antworten). Wenn die Antwort nicht innerhalb dieser Zeit angekommen ist, wird eine CommunicationError-Ausnahme erzeugt. Sonst ist der Verbindungsaufbau erfolgreich abund der Austausch von Daten kann sicher durchgeführt werden.
CommunicationError
- , wenn bei der initialen Kommunikation mit dem Datenverteiler Fehler aufgetreten sindpublic LowLevelConnectionsManagerInterface getLowLevelConnectionsManager()
public boolean isClosed()
true
zurück, falls die Verbindung geschlossen wurde, sonst false
.private DataTelegram waitForAnswerTelegram(byte telegramType, java.lang.String descriptionOfExpectedTelegram) throws CommunicationError
CommunicationError
public final long getTelegramTime(long maxWaitingTime) throws CommunicationError
ServerHighLevelCommunication
Diese Methode wird von der Verbindungsverwaltung aufgerufen. Ein Telegramm TelegramTimeRequest
wird erzeugt und zur Applikation gesendet. Danach wird auf die Antwort TelegramTimeAnswer
gewartet. Wenn die Antwort nicht innerhalb der angegebenen maximalen Wartezeit angekommen ist, wird eine Ausnahme
erzeugt.
getTelegramTime
in interface ServerHighLevelCommunication
maxWaitingTime
- Maximale Zeit, die auf eine Antwort gewartet wird.-1
, wenn nicht innnerhalb der maximalen Wartezeit eine Antwort empfangen wurde.CommunicationError
- Wenn bei der initialen Kommunikation mit dem Datenverteiler Fehler aufgetreten sind.public final long getRemoteNodeId()
RoutingConnectionInterface
Diese Methode gibt die ID des Zielknotens zurück.
getRemoteNodeId
in interface RoutingConnectionInterface
public final int getThroughputResistance()
RoutingConnectionInterface
Diese Methode gibt die Gewichtung der Verbindung zurück.
getThroughputResistance
in interface RoutingConnectionInterface
getThroughputResistance
in interface TransmitterCommunicationInterface
public final void sendRoutingUpdate(RoutingUpdate[] routingUpdates)
RoutingConnectionInterface
Diese Methode findet die besten Wege.
sendRoutingUpdate
in interface RoutingConnectionInterface
routingUpdates
- Aktualisierung der Verbindungpublic final UserLogin getUserLogin()
ServerHighLevelCommunication
Gibt die ID des verbundenen Benutzers zurück.
getUserLogin
in interface ServerHighLevelCommunication
getUserLogin
in interface CommunicationInterface
public final long getId()
ServerHighLevelCommunication
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die ID der verbundenen Applikation zu erhalten.
getId
in interface ServerHighLevelCommunication
getId
in interface CommunicationInterface
private void setCommunicationState(CommunicationState communicationState, java.lang.String message)
public EncryptionStatus getEncryptionStatus()
public final boolean isIncomingConnection()
Gibt die Information zurück, ob diese Verbindung von dem anderen Datenverteiler aufgebaut wurde.
public final java.lang.String getRemoteAdress()
public final int getRemoteSubadress()
Diese Methode gibt die Subadresse des Kommunikationspartners zurück.
public void continueAuthentication()
ServerHighLevelCommunication
Diese Methode wird von der Verbindungsverwaltung aufgerufen, sobald die Konfiguration vorhanden ist, um zu signalisieren, dass eine blockierte Authentifizierung weiter bearbeitet werden kann: Steht eine Authentifizierungsschlüsselanfrage an, während die Konfiguration noch nicht vorhanden ist, wird die Antwort blockiert bis die Konfiguration bereit ist. Dies ist notwendig, da nur die Konfiguration bestimmen kann, ob die Authentifizierungsdaten korrekt sind. Auch für die Interpretation der Daten ist die Konfiguration notwendig.
continueAuthentication
in interface ServerHighLevelCommunication
public void terminate(boolean error, java.lang.String message)
ServerHighLevelCommunication
Terminiert die Kommunikationsverbindung.
terminate
in interface ServerHighLevelCommunication
error
- Ist true
, wenn die Verbindung im Fehlerfall abgebrochen werden soll, ohne die noch gepufferten Telegramme zu versenden; false
, wenn versucht werden soll alle gepufferten Telegramme zu versenden.message
- Fehlermeldung, die die Fehlersituation näher beschreibt.public final void terminate(boolean error, java.lang.String message, DataTelegram terminationTelegram)
public void disconnected(boolean error, java.lang.String message)
de.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
disconnected
in interface HighLevelCommunicationCallbackInterface
error
- true
signalisiert eine Fehlersituation der unteren Kommunikationsschicht.message
- Fehlermeldung, die die Fehlersituation näher beschreibt.public void updateConfigData(SendDataObject receivedData)
de.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
updateConfigData
in interface HighLevelCommunicationCallbackInterface
receivedData
- das Konfigurationstelegrammpublic void sendTelegram(DataTelegram telegram)
T_T_HighLevelCommunicationInterface
Diese Methode wird von der Verbindungsverwaltung, der Zuliefererverwaltung und der Anmeldungsverwaltung aufgerufen. Sie sendet über die Telegrammverwaltung ein Telegramm zu einem anderen Datenverteiler.
sendTelegram
in interface T_T_HighLevelCommunicationInterface
telegram
- Grundtyp eines Telegrammspublic void sendTelegrams(DataTelegram[] telegrams)
T_T_HighLevelCommunicationInterface
Mehrere Telegramme können en bloc versandt werden.
sendTelegrams
in interface T_T_HighLevelCommunicationInterface
telegrams
- Feld von zu sendenden TelegrammenT_T_HighLevelCommunicationInterface.sendTelegram(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram)
public void update(DataTelegram telegram)
de.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
update
in interface HighLevelCommunicationCallbackInterface
telegram
- Das empfangene Telegrammprivate boolean completeAuthenticationAndSendAnswer(java.lang.String userName)
private boolean handleRemoteTransmitterId(long remoteTransmitterId)
public final boolean completeInitialisation()
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die Initialisierung einer Verbindung abzuschließen. Zuerst wird eine Instanz der Anmeldungsverwaltung für diese Verbindung erzeugt und zur Anmeldeverwaltung hinzugefügt. Danach wird die addWayMethode der Wegverwaltung aufgerufen, um einen Eintrag für den verbundenen Datenverteiler zu erzeugen. Danach werden die Telegramme bearbeitet, die nicht zum Etablieren dieser Verbindung dienen und vor Fertigstellung der Initialisierung angekommen sind (Online-Daten, Wegeanmeldungen, Listenanmeldungen usw.).
private int getPreferredVersion(int[] versions)
Gibt die höchste unterstützte Version aus den gegebenen Versionen oder -1, wenn keine von den gegebenen Versionen unterstützt wird, zurück.
versions
- Feld der Versionenprivate void authenticate() throws CommunicationError
Erledigt den Authentifizierungsprozess beim Remote-Datenverteiler.
de.bsvrz.dav.daf.main.CommunicationError,
- wenn bei der initialen Kommunikation mit dem Datenverteiler Fehler aufgetreten sindCommunicationError
private TransmitterAuthentificationAnswer authenticateSrp() throws SrpNotSupportedException, InconsistentLoginException, CommunicationError
Authentifizierung als Client mit SRP
SrpNotSupportedException
- SRP wird von der Gegenseite nicht unterstütztInconsistentLoginException
- Falsches PasswortCommunicationError
- Kommunikationsfehlerprivate TransmitterAuthentificationAnswer authenticateHmac() throws CommunicationError, InconsistentLoginException
Authentifizierung als Client mit HMAC
InconsistentLoginException
- Falsches PasswortCommunicationError
- Kommunikationsfehlerprivate void needsToBeAuthenticated()
Hilfsfunktion, die eine Exception wirft, wenn der Benutzer noch nicht erfolgreich authentifiziert ist
private void needsToBeNotAuthenticated()
Hilfsfunktion, die eine Exception wirft, wenn der Benutzer schon erfolgreich authentifiziert ist
public java.lang.String toString()
toString
in class java.lang.Object
public void subscribeToRemote(RemoteCentralSubscription remoteCentralSubscription)
TransmitterCommunicationInterface
Sorgt für eine Datenanmeldung bei einem entfernten Zentraldatenverteiler. Wird von diesem Datenverteiler selbstständig ausgelöst, wenn es keine lokale Quelle/Senke gibt und es potentielle remote-Datenverteiler über diese Verbindung gibt.
subscribeToRemote
in interface TransmitterCommunicationInterface
remoteCentralSubscription
- Anmeldeinformation auf einen Zentraldatenverteilerpublic void unsubscribeToRemote(RemoteCentralSubscription remoteCentralSubscription)
TransmitterCommunicationInterface
Sorgt für Datenabmeldung bei einem entfernten Zentraldatenverteiler. Wird von diesem Datenverteiler selbstständig ausgelöst, wenn kein Bedarf mehr an einer solchen Verbindung besteht.
unsubscribeToRemote
in interface TransmitterCommunicationInterface
remoteCentralSubscription
- Anmeldeinformation auf einen Zentraldatenverteilerpublic final void sendData(ApplicationDataTelegram telegram, boolean toCentralDistributor)
CommunicationInterface
Versendet ein Daten-Telegramm über diese Verbindung
sendData
in interface CommunicationInterface
telegram
- TelegrammtoCentralDistributor
- true: In Richtung des Zentraldatenverteilers, beim Sender-Senke-Datenfluss. false: Aus Richtung des Zentraldatenverteilers, beim Quelle-Empfänger-Datenfluss.public void sendReceipt(long centralTransmitterId, ConnectionState state, TransmitterSubscriptionType receiver, RemoteSubscription remoteReceiverSubscription)
TransmitterCommunicationInterface
Sendet eine Quittung auf eine Datenanmeldung zurück bzw. informiert darüber, ob es wirklich einen Zentraldatenverteiler auf, bzw hinter diesem Datenverteiler gibt.
sendReceipt
in interface TransmitterCommunicationInterface
centralTransmitterId
- ID des zentraldatenverteilers, sofern vorhanden. Typischerweise die ID dieses Datenverteilers oder eines nachgelagerten Datenverteilers.state
- Verbindungszustand, siehe ConnectionState
receiver
- Art der Anmeldung Quelle-Empfänger oder Sender-SenkeremoteReceiverSubscription
- Entweder eine RemoteSenderSubscription
oder eine RemoteReceiverSubscription
, die die zugehörige eingehende Anmeldung von eine manderen Datenverteiler darstellt.public CommunicationStateAndMessage getState()
Gibt den Verbindungszustand zurück