Class T_A_HighLevelCommunication

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      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 Verbindung
      void 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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • 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 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 Detail

      • 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 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 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,
                                    java.lang.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 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 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
      • setUserLogin

        public void setUserLogin​(de.bsvrz.dav.daf.communication.protocol.UserLogin userLogin)
        Setzt den eingeloggten Benutzer (nur für Testzwecke)
        Parameters:
        userLogin - Benutzer
      • 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 java.lang.String toString()
        Overrides:
        toString in class java.lang.Object