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 voidcontinueAuthentication()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.voiddisconnected(boolean error, java.lang.String message)ApplicationInfogetApplicationInfo()Gibt Informationen über die Applikation zurück, die bei einem aus Datenverteilersicht aktiven Verbindungsaufbau (Applikation == passiv) erreicht werden soll.java.lang.StringgetApplicationName()Gibt den Namen der Applikation zurück.java.lang.StringgetApplicationTypePid()Gibt den Typ der Applikation zurück.longgetConfigurationId()Gibt die Id der Konfiguration zurück.longgetConnectionCreatedTime()Zeitpunkt, an dem das Objekt erstellt wurde und somit eine Verbindung zum DaV bestand.longgetId()Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die ID der verbundenen Applikation zu erhalten.java.lang.StringgetRemoteAdress()intgetRemoteSubadress()Diese Methode gibt die Subadresse (Portnummer) des Kommunikationspartners zurück.java.lang.StringgetSendBufferState()Liefert einen beschreibenden Text mit dem Zustand des Sendepuffers aus der LowLevelCommunication.longgetTelegramTime(long maxWaitingTime)Diese Methode wird von der Verbindungsverwaltung aufgerufen.de.bsvrz.dav.daf.communication.protocol.UserLogingetUserLogin()Gibt die ID des verbundenen Benutzers zurück.booleanisClosed()booleanisConfiguration()Gibt zurück, ob es sich um die Konfiguration handelt.booleanisIncomingConnection()Gibt die Information zurück, ob diese Verbindung von dem anderen Datenverteiler aufgebaut wurde.voidsendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram telegram)voidsendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram[] telegrams)voidsendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram telegram, long applicationId, boolean toCentralDistributor)Versendet ein Daten-Telegramm über diese VerbindungvoidsetUserLogin(de.bsvrz.dav.daf.communication.protocol.UserLogin userLogin)Setzt den eingeloggten Benutzer (nur für Testzwecke)voidterminate(boolean error, java.lang.String message)Terminiert die Kommunikationsverbindung.java.lang.StringtoString()voidtriggerSender(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.voidupdate(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram telegram)voidupdateConfigData(de.bsvrz.dav.daf.communication.dataRepresentation.datavalue.SendDataObject receivedData)Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Constructor Details
-
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 Details
-
isClosed
public boolean isClosed()- Returns:
- Liefert
truezurück, falls die Verbindung geschlossen wurde, sonstfalse.
-
getTelegramTime
public final long getTelegramTime(long maxWaitingTime) throws de.bsvrz.dav.daf.main.CommunicationErrorDescription copied from interface:ServerHighLevelCommunicationDiese Methode wird von der Verbindungsverwaltung aufgerufen. Ein TelegrammTelegramTimeRequestwird erzeugt und zur Applikation gesendet. Danach wird auf die AntwortTelegramTimeAnswergewartet. Wenn die Antwort nicht innerhalb der angegebenen maximalen Wartezeit angekommen ist, wird eineAusnahmeerzeugt.- Specified by:
getTelegramTimein 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
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:CommunicationInterfaceVersendet ein Daten-Telegramm über diese Verbindung- Specified by:
sendDatain 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:ServerHighLevelCommunicationTerminiert die Kommunikationsverbindung.- Specified by:
terminatein 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:
disconnectedin interfacede.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
-
updateConfigData
public void updateConfigData(de.bsvrz.dav.daf.communication.dataRepresentation.datavalue.SendDataObject receivedData)- Specified by:
updateConfigDatain 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:ApplicationCommunicationInterfaceDiese 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:
triggerSenderin interfaceApplicationCommunicationInterface- Parameters:
data- Anmeldeinformationenstate- Benachrichtigungscode- See Also:
RequestSenderDataTelegram
-
getId
public final long getId()Description copied from interface:ServerHighLevelCommunicationDiese Methode wird von der Verbindungsverwaltung aufgerufen, um die ID der verbundenen Applikation zu erhalten.- Specified by:
getIdin interfaceCommunicationInterface- Specified by:
getIdin interfaceServerHighLevelCommunication- Returns:
- ID des Kommunikationpartners
-
getUserLogin
public final de.bsvrz.dav.daf.communication.protocol.UserLogin getUserLogin()Description copied from interface:ServerHighLevelCommunicationGibt die ID des verbundenen Benutzers zurück.- Specified by:
getUserLoginin interfaceCommunicationInterface- Specified by:
getUserLoginin 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_HighLevelCommunicationInterfaceGibt die Id der Konfiguration zurück.- Specified by:
getConfigurationIdin interfaceT_A_HighLevelCommunicationInterface- Returns:
- Id der Konfiguration
-
getApplicationTypePid
public final java.lang.String getApplicationTypePid()Description copied from interface:T_A_HighLevelCommunicationInterfaceGibt den Typ der Applikation zurück.- Specified by:
getApplicationTypePidin interfaceT_A_HighLevelCommunicationInterface- Returns:
- Pid des Typs der Applikation
-
getApplicationName
public final java.lang.String getApplicationName()Description copied from interface:T_A_HighLevelCommunicationInterfaceGibt den Namen der Applikation zurück.- Specified by:
getApplicationNamein interfaceT_A_HighLevelCommunicationInterface- Returns:
- Name der Applikation
-
isConfiguration
public final boolean isConfiguration()Description copied from interface:T_A_HighLevelCommunicationInterfaceGibt zurück, ob es sich um die Konfiguration handelt.- Specified by:
isConfigurationin interfaceT_A_HighLevelCommunicationInterface- Returns:
true, wenn es sich um die Konfiguration handelt, sonstfalse
-
continueAuthentication
public final void continueAuthentication()Description copied from interface:ServerHighLevelCommunicationDiese 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:
continueAuthenticationin interfaceServerHighLevelCommunication
-
update
public final void update(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram telegram)- Specified by:
updatein interfacede.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-