Class T_A_HighLevelCommunication
- java.lang.Object
-
- de.bsvrz.dav.dav.communication.appProtocol.T_A_HighLevelCommunication
-
- All Implemented Interfaces:
de.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
,T_A_HighLevelCommunicationInterface
,ServerHighLevelCommunication
,ApplicationCommunicationInterface
,CommunicationInterface
public class T_A_HighLevelCommunication extends java.lang.Object implements T_A_HighLevelCommunicationInterface, de.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
Diese Klasse stellt eine Verbindung vom Datenverteiler zur Applikation dar. Über diese Verbindung können Telegramme an eine Applikation verschickt werden.
-
-
Constructor Summary
Constructors Constructor Description T_A_HighLevelCommunication(ServerConnectionProperties properties, HighLevelApplicationManager applicationManager, LowLevelConnectionsManagerInterface lowLevelConnectionsManager, ApplicationInfo applicationInfo, boolean waitForConfiguration)
Erzeugt ein neues Objekt mit den gegebenen Parametern.
-
Method Summary
Modifier and Type Method Description 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)
ApplicationInfo
getApplicationInfo()
Gibt Informationen über die Applikation zurück, die bei einem aus Datenverteilersicht aktiven Verbindungsaufbau (Applikation == passiv) erreicht werden soll.java.lang.String
getApplicationName()
Gibt den Namen der Applikation zurück.java.lang.String
getApplicationTypePid()
Gibt den Typ der Applikation zurück.long
getConfigurationId()
Gibt die Id der Konfiguration zurück.long
getConnectionCreatedTime()
Zeitpunkt, an dem das Objekt erstellt wurde und somit eine Verbindung zum DaV bestand.long
getId()
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die ID der verbundenen Applikation zu erhalten.java.lang.String
getRemoteAdress()
int
getRemoteSubadress()
Diese Methode gibt die Subadresse (Portnummer) des Kommunikationspartners zurück.java.lang.String
getSendBufferState()
Liefert einen beschreibenden Text mit dem Zustand des Sendepuffers aus der LowLevelCommunication.long
getTelegramTime(long maxWaitingTime)
Diese Methode wird von der Verbindungsverwaltung aufgerufen.de.bsvrz.dav.daf.communication.protocol.UserLogin
getUserLogin()
Gibt die ID des verbundenen Benutzers zurück.boolean
isClosed()
boolean
isConfiguration()
Gibt zurück, ob es sich um die Konfiguration handelt.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)
void
sendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram[] telegrams)
void
sendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram telegram, long applicationId, boolean toCentralDistributor)
Versendet ein Daten-Telegramm über diese Verbindungvoid
setUserLogin(de.bsvrz.dav.daf.communication.protocol.UserLogin userLogin)
Setzt den eingeloggten Benutzer (nur für Testzwecke)void
terminate(boolean error, java.lang.String message)
Terminiert die Kommunikationsverbindung.java.lang.String
toString()
void
triggerSender(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo data, byte state)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um eine Sendesteuerung an die Applikation weiterzuleiten.void
update(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram telegram)
void
updateConfigData(de.bsvrz.dav.daf.communication.dataRepresentation.datavalue.SendDataObject receivedData)
-
-
-
Constructor Detail
-
T_A_HighLevelCommunication
public T_A_HighLevelCommunication(ServerConnectionProperties properties, HighLevelApplicationManager applicationManager, LowLevelConnectionsManagerInterface lowLevelConnectionsManager, ApplicationInfo applicationInfo, boolean waitForConfiguration)
Erzeugt ein neues Objekt mit den gegebenen Parametern.- Parameters:
properties
- stellt die Parameter einer Verbindung zwischen zwei ServernapplicationManager
- Applikations-VerwaltunglowLevelConnectionsManager
- Low-Level-KomponenteapplicationInfo
- Bei ausgehenden Verbindungen die Information, über die Applikation, die erreicht werden soll. Im Normalfall null.waitForConfiguration
- Auf Anmeldung der Konfiguration warten? (false: Konfiguration ist bereits angemeldet)
-
-
Method Detail
-
isClosed
public boolean isClosed()
- Returns:
- Liefert
true
zurück, falls die Verbindung geschlossen wurde, sonstfalse
.
-
getTelegramTime
public final long getTelegramTime(long maxWaitingTime) throws de.bsvrz.dav.daf.main.CommunicationError
Description copied from interface:ServerHighLevelCommunication
Diese Methode wird von der Verbindungsverwaltung aufgerufen. Ein TelegrammTelegramTimeRequest
wird erzeugt und zur Applikation gesendet. Danach wird auf die AntwortTelegramTimeAnswer
gewartet. Wenn die Antwort nicht innerhalb der angegebenen maximalen Wartezeit angekommen ist, wird eineAusnahme
erzeugt.- Specified by:
getTelegramTime
in interfaceServerHighLevelCommunication
- Parameters:
maxWaitingTime
- Maximale Zeit, die auf eine Antwort gewartet wird.- Returns:
- die Telegrammlaufzeit oder
-1
, wenn nicht innnerhalb der maximalen Wartezeit eine Antwort empfangen wurde. - Throws:
de.bsvrz.dav.daf.main.CommunicationError
- Wenn bei der initialen Kommunikation mit dem Datenverteiler Fehler aufgetreten sind.
-
isIncomingConnection
public final boolean isIncomingConnection()
Gibt die Information zurück, ob diese Verbindung von dem anderen Datenverteiler aufgebaut wurde.- Returns:
- true: Verbindung wurde vom anderen Datenverteiler aufgebaut und von diesem akzeptiert (Dieser Datenverteiler ist der "Server", der auf eingehende Verbindungen wartet). false: Dieser Datenverteiler hat die Verbindung aktiv aufgebaut, der andere Datenverteiler ist der "Server", der auf eingehende Verbindungen wartet.
-
getApplicationInfo
public ApplicationInfo getApplicationInfo()
Gibt Informationen über die Applikation zurück, die bei einem aus Datenverteilersicht aktiven Verbindungsaufbau (Applikation == passiv) erreicht werden soll.- Returns:
- Applikations-Info
-
getRemoteAdress
public final java.lang.String getRemoteAdress()
- Returns:
- (TCP-)Adresse der Applikation
-
getRemoteSubadress
public final int getRemoteSubadress()
Diese Methode gibt die Subadresse (Portnummer) des Kommunikationspartners zurück.- Returns:
- die Subadresse des Kommunikationspartners
-
sendData
public final void sendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram telegram, long applicationId, boolean toCentralDistributor)
Description copied from interface:CommunicationInterface
Versendet ein Daten-Telegramm über diese Verbindung- Specified by:
sendData
in interfaceCommunicationInterface
- Parameters:
telegram
- 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.
-
sendData
public final void sendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram telegram)
-
sendData
public final void sendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram[] telegrams)
-
terminate
public final void terminate(boolean error, java.lang.String message)
Description copied from interface:ServerHighLevelCommunication
Terminiert die Kommunikationsverbindung.- Specified by:
terminate
in interfaceServerHighLevelCommunication
- Parameters:
error
- Isttrue
, 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.
-
getConnectionCreatedTime
public long getConnectionCreatedTime()
Zeitpunkt, an dem das Objekt erstellt wurde und somit eine Verbindung zum DaV bestand.- Returns:
- Zeit in ms seit dem 1.1.1970
-
getSendBufferState
public java.lang.String getSendBufferState()
Liefert einen beschreibenden Text mit dem Zustand des Sendepuffers aus der LowLevelCommunication.- Returns:
- Sendepufferzustand als Text
- See Also:
LowLevelCommunicationInterface.getSendBufferState()
-
disconnected
public void disconnected(boolean error, java.lang.String message)
- Specified by:
disconnected
in interfacede.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
-
updateConfigData
public void updateConfigData(de.bsvrz.dav.daf.communication.dataRepresentation.datavalue.SendDataObject receivedData)
- Specified by:
updateConfigData
in interfacede.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
-
triggerSender
public final void triggerSender(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo data, byte state)
Description copied from interface:ApplicationCommunicationInterface
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um eine Sendesteuerung an die Applikation weiterzuleiten. Aus den übergebenen Parametern wird einRequestSenderDataTelegram
-Array gebildet und über die Telegrammverwaltung an die Applikation gesendet.- Specified by:
triggerSender
in interfaceApplicationCommunicationInterface
- Parameters:
data
- Anmeldeinformationenstate
- Benachrichtigungscode- See Also:
RequestSenderDataTelegram
-
getId
public final long getId()
Description copied from interface:ServerHighLevelCommunication
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die ID der verbundenen Applikation zu erhalten.- Specified by:
getId
in interfaceCommunicationInterface
- Specified by:
getId
in interfaceServerHighLevelCommunication
- Returns:
- ID des Kommunikationpartners
-
getUserLogin
public final de.bsvrz.dav.daf.communication.protocol.UserLogin getUserLogin()
Description copied from interface:ServerHighLevelCommunication
Gibt die ID des verbundenen Benutzers zurück.- Specified by:
getUserLogin
in interfaceCommunicationInterface
- Specified by:
getUserLogin
in interfaceServerHighLevelCommunication
- Returns:
- die Benutzer ID
-
setUserLogin
public void setUserLogin(de.bsvrz.dav.daf.communication.protocol.UserLogin userLogin)
Setzt den eingeloggten Benutzer (nur für Testzwecke)- Parameters:
userLogin
- Benutzer
-
getConfigurationId
public final long getConfigurationId()
Description copied from interface:T_A_HighLevelCommunicationInterface
Gibt die Id der Konfiguration zurück.- Specified by:
getConfigurationId
in interfaceT_A_HighLevelCommunicationInterface
- Returns:
- Id der Konfiguration
-
getApplicationTypePid
public final java.lang.String getApplicationTypePid()
Description copied from interface:T_A_HighLevelCommunicationInterface
Gibt den Typ der Applikation zurück.- Specified by:
getApplicationTypePid
in interfaceT_A_HighLevelCommunicationInterface
- Returns:
- Pid des Typs der Applikation
-
getApplicationName
public final java.lang.String getApplicationName()
Description copied from interface:T_A_HighLevelCommunicationInterface
Gibt den Namen der Applikation zurück.- Specified by:
getApplicationName
in interfaceT_A_HighLevelCommunicationInterface
- Returns:
- Name der Applikation
-
isConfiguration
public final boolean isConfiguration()
Description copied from interface:T_A_HighLevelCommunicationInterface
Gibt zurück, ob es sich um die Konfiguration handelt.- Specified by:
isConfiguration
in interfaceT_A_HighLevelCommunicationInterface
- Returns:
true
, wenn es sich um die Konfiguration handelt, sonstfalse
-
continueAuthentication
public final void continueAuthentication()
Description copied from interface: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.- Specified by:
continueAuthentication
in interfaceServerHighLevelCommunication
-
update
public final void update(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram telegram)
- Specified by:
update
in interfacede.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-