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 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
    final void
    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, String message)
     
    Gibt Informationen über die Applikation zurück, die bei einem aus Datenverteilersicht aktiven Verbindungsaufbau (Applikation == passiv) erreicht werden soll.
    final String
    Gibt den Namen der Applikation zurück.
    final String
    Gibt den Typ der Applikation zurück.
    final long
    Gibt die Id der Konfiguration zurück.
    long
    Zeitpunkt, an dem das Objekt erstellt wurde und somit eine Verbindung zum DaV bestand.
    final long
    Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die ID der verbundenen Applikation zu erhalten.
    final String
     
    final int
    Diese Methode gibt die Subadresse (Portnummer) des Kommunikationspartners zurück.
    Liefert einen beschreibenden Text mit dem Zustand des Sendepuffers aus der LowLevelCommunication.
    final long
    getTelegramTime(long maxWaitingTime)
    Diese Methode wird von der Verbindungsverwaltung aufgerufen.
    final de.bsvrz.dav.daf.communication.protocol.UserLogin
    Gibt die ID des verbundenen Benutzers zurück.
    boolean
     
    final boolean
    Gibt zurück, ob es sich um die Konfiguration handelt.
    final boolean
    Gibt die Information zurück, ob diese Verbindung von dem anderen Datenverteiler aufgebaut wurde.
    final void
    sendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram telegram)
     
    final void
    sendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram[] telegrams)
     
    final void
    sendData(de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram telegram, long applicationId, boolean toCentralDistributor)
    Versendet ein Daten-Telegramm über diese Verbindung
    void
    setUserLogin(de.bsvrz.dav.daf.communication.protocol.UserLogin userLogin)
    Setzt den eingeloggten Benutzer (nur für Testzwecke)
    final void
    terminate(boolean error, String message)
    Terminiert die Kommunikationsverbindung.
     
    final 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.
    final void
    update(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram telegram)
     
    void
    updateConfigData(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 Servern
      applicationManager - Applikations-Verwaltung
      lowLevelConnectionsManager - Low-Level-Komponente
      applicationInfo - 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 true zurück, falls die Verbindung geschlossen wurde, sonst false.
    • 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 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.
      Specified by:
      getTelegramTime in interface ServerHighLevelCommunication
      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 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 interface CommunicationInterface
      Parameters:
      telegram - Telegramm
      applicationId - Absender-Applikation oder -1 falls nicht bekannt
      toCentralDistributor - 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, String message)
      Description copied from interface: ServerHighLevelCommunication
      Terminiert die Kommunikationsverbindung.
      Specified by:
      terminate in interface ServerHighLevelCommunication
      Parameters:
      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.
    • 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 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, String message)
      Specified by:
      disconnected in interface de.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
    • updateConfigData

      public void updateConfigData(de.bsvrz.dav.daf.communication.dataRepresentation.datavalue.SendDataObject receivedData)
      Specified by:
      updateConfigData in interface de.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 ein RequestSenderDataTelegram-Array gebildet und über die Telegrammverwaltung an die Applikation gesendet.
      Specified by:
      triggerSender in interface ApplicationCommunicationInterface
      Parameters:
      data - Anmeldeinformationen
      state - 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 interface CommunicationInterface
      Specified by:
      getId in interface ServerHighLevelCommunication
      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 interface CommunicationInterface
      Specified by:
      getUserLogin in interface ServerHighLevelCommunication
      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 interface T_A_HighLevelCommunicationInterface
      Returns:
      Id der Konfiguration
    • getApplicationTypePid

      public final String getApplicationTypePid()
      Description copied from interface: T_A_HighLevelCommunicationInterface
      Gibt den Typ der Applikation zurück.
      Specified by:
      getApplicationTypePid in interface T_A_HighLevelCommunicationInterface
      Returns:
      Pid des Typs der Applikation
    • getApplicationName

      public final String getApplicationName()
      Description copied from interface: T_A_HighLevelCommunicationInterface
      Gibt den Namen der Applikation zurück.
      Specified by:
      getApplicationName in interface T_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 interface T_A_HighLevelCommunicationInterface
      Returns:
      true, wenn es sich um die Konfiguration handelt, sonst false
    • 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 interface ServerHighLevelCommunication
    • update

      public final void update(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram telegram)
      Specified by:
      update in interface de.bsvrz.dav.daf.communication.lowLevel.HighLevelCommunicationCallbackInterface
    • toString

      public String toString()
      Overrides:
      toString in class Object