public class T_T_HighLevelCommunication extends java.lang.Object implements T_T_HighLevelCommunicationInterface, de.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
| Constructor and Description |
|---|
T_T_HighLevelCommunication(ServerConnectionProperties properties,
HighLevelTransmitterManagerInterface transmitterManager,
LowLevelConnectionsManagerInterface lowLevelConnectionsManager,
short weight,
boolean waitForConfiguration,
java.lang.String userForAuthentication,
de.bsvrz.dav.daf.main.authentication.ClientCredentials credentialsForAuthentication,
de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterInfo outgoingTransmitterInfo)
Erzeugt ein neues Objekt mit den gegebenen Parametern.
|
| Modifier and Type | Method and Description |
|---|---|
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) |
de.bsvrz.dav.daf.main.EncryptionStatus |
getEncryptionStatus() |
long |
getId()
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die ID der verbundenen Applikation zu erhalten.
|
LowLevelConnectionsManagerInterface |
getLowLevelConnectionsManager() |
java.lang.String |
getRemoteAdress() |
long |
getRemoteNodeId()
Diese Methode gibt die ID des Zielknotens zurück.
|
int |
getRemoteSubadress()
Diese Methode gibt die Subadresse (Portnummer) 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.
|
de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterInfo |
getTransmitterInfo()
Gibt bei ausgehenden Verbindungen die Infos über den Ziel_Datenverteiler zurück, der hätte erreicht werden sollen.
|
de.bsvrz.dav.daf.communication.protocol.UserLogin |
getUserLogin()
Gibt die ID des verbundenen Benutzers zurück.
|
boolean |
isClosed() |
boolean |
isIncomingConnection()
Gibt die Information zurück, ob diese Verbindung von dem anderen Datenverteiler aufgebaut wurde.
|
void |
sendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram telegram,
long applicationId,
boolean toCentralDistributor)
Versendet ein Daten-Telegramm über diese Verbindung
|
void |
sendReceipt(long centralTransmitterId,
ConnectionState state,
de.bsvrz.dav.daf.communication.lowLevel.telegrams.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(de.bsvrz.dav.daf.communication.lowLevel.telegrams.RoutingUpdate[] routingUpdates)
Diese Methode findet die besten Wege.
|
void |
sendTelegram(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram telegram)
Diese Methode wird von der Verbindungsverwaltung, der Zuliefererverwaltung und der Anmeldungsverwaltung aufgerufen.
|
void |
sendTelegrams(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram[] telegrams)
Mehrere Telegramme können en bloc versandt werden.
|
void |
subscribeToRemote(RemoteCentralSubscription remoteCentralSubscription)
Sorgt für eine Datenanmeldung bei einem entfernten Zentraldatenverteiler.
|
void |
terminate(boolean error,
java.lang.String message)
Terminiert die Kommunikationsverbindung.
|
java.lang.String |
toString() |
void |
unsubscribeToRemote(RemoteCentralSubscription remoteCentralSubscription)
Sorgt für Datenabmeldung bei einem entfernten Zentraldatenverteiler.
|
void |
update(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram telegram) |
void |
updateConfigData(de.bsvrz.dav.daf.communication.dataRepresentation.datavalue.SendDataObject receivedData) |
public T_T_HighLevelCommunication(ServerConnectionProperties properties, HighLevelTransmitterManagerInterface transmitterManager, LowLevelConnectionsManagerInterface lowLevelConnectionsManager, short weight, boolean waitForConfiguration, java.lang.String userForAuthentication, @Nullable de.bsvrz.dav.daf.main.authentication.ClientCredentials credentialsForAuthentication, @Nullable de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterInfo outgoingTransmitterInfo)
properties - Eigenschaften dieser VerbindungtransmitterManager - High-Level-Datenverteiler-VerwaltunglowLevelConnectionsManager - Low-Level-Verbindungsverwaltungweight - 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 soll. null, falls unbekannt.outgoingTransmitterInfo - Eigenschaften des Datenverteilers bei ausgehenden Verbindungen, null bei eingehenden.public final void connect()
throws de.bsvrz.dav.daf.main.CommunicationError
de.bsvrz.dav.daf.main.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.public final long getTelegramTime(long maxWaitingTime)
throws de.bsvrz.dav.daf.main.CommunicationError
ServerHighLevelCommunicationTelegramTimeRequest 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 ServerHighLevelCommunicationmaxWaitingTime - Maximale Zeit, die auf eine Antwort gewartet wird.-1, wenn nicht innnerhalb der maximalen Wartezeit eine Antwort empfangen wurde.de.bsvrz.dav.daf.main.CommunicationError - Wenn bei der initialen Kommunikation mit dem Datenverteiler Fehler aufgetreten sind.public final long getRemoteNodeId()
RoutingConnectionInterfacegetRemoteNodeId in interface RoutingConnectionInterfacepublic final int getThroughputResistance()
RoutingConnectionInterfacegetThroughputResistance in interface RoutingConnectionInterfacegetThroughputResistance in interface TransmitterCommunicationInterfacepublic final void sendRoutingUpdate(de.bsvrz.dav.daf.communication.lowLevel.telegrams.RoutingUpdate[] routingUpdates)
RoutingConnectionInterfacesendRoutingUpdate in interface RoutingConnectionInterfaceroutingUpdates - Aktualisierung der Verbindungpublic final de.bsvrz.dav.daf.communication.protocol.UserLogin getUserLogin()
ServerHighLevelCommunicationgetUserLogin in interface ServerHighLevelCommunicationgetUserLogin in interface CommunicationInterfacepublic final long getId()
ServerHighLevelCommunicationgetId in interface ServerHighLevelCommunicationgetId in interface CommunicationInterfacepublic de.bsvrz.dav.daf.main.EncryptionStatus getEncryptionStatus()
public final boolean isIncomingConnection()
public final java.lang.String getRemoteAdress()
public final int getRemoteSubadress()
public void continueAuthentication()
ServerHighLevelCommunicationcontinueAuthentication in interface ServerHighLevelCommunicationpublic void terminate(boolean error,
java.lang.String message)
ServerHighLevelCommunicationterminate in interface ServerHighLevelCommunicationerror - 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 void disconnected(boolean error,
java.lang.String message)
disconnected in interface de.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterfacepublic void updateConfigData(de.bsvrz.dav.daf.communication.dataRepresentation.datavalue.SendDataObject receivedData)
updateConfigData in interface de.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterfacepublic void sendTelegram(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram telegram)
T_T_HighLevelCommunicationInterfacesendTelegram in interface T_T_HighLevelCommunicationInterfacetelegram - Grundtyp eines Telegrammspublic void sendTelegrams(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram[] telegrams)
T_T_HighLevelCommunicationInterfacesendTelegrams in interface T_T_HighLevelCommunicationInterfacetelegrams - Feld von zu sendenden TelegrammenT_T_HighLevelCommunicationInterface.sendTelegram(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram)public void update(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram telegram)
update in interface de.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterfacepublic final boolean completeInitialisation()
public java.lang.String toString()
toString in class java.lang.Objectpublic void subscribeToRemote(RemoteCentralSubscription remoteCentralSubscription)
TransmitterCommunicationInterfacesubscribeToRemote in interface TransmitterCommunicationInterfaceremoteCentralSubscription - Anmeldeinformation auf einen Zentraldatenverteilerpublic void unsubscribeToRemote(RemoteCentralSubscription remoteCentralSubscription)
TransmitterCommunicationInterfaceunsubscribeToRemote in interface TransmitterCommunicationInterfaceremoteCentralSubscription - Anmeldeinformation auf einen Zentraldatenverteilerpublic final void sendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram telegram,
long applicationId,
boolean toCentralDistributor)
CommunicationInterfacesendData in interface CommunicationInterfacetelegram - TelegrammapplicationId - Absender-Applikation oder -1 falls nicht bekannttoCentralDistributor - 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,
de.bsvrz.dav.daf.communication.lowLevel.telegrams.TransmitterSubscriptionType receiver,
RemoteSubscription remoteReceiverSubscription)
TransmitterCommunicationInterfacesendReceipt in interface TransmitterCommunicationInterfacecentralTransmitterId - ID des zentraldatenverteilers, sofern vorhanden. Typischerweise die ID dieses Datenverteilers oder eines nachgelagerten Datenverteilers.state - Verbindungszustand, siehe ConnectionStatereceiver - 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()
public de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterInfo getTransmitterInfo()