Interface LowLevelCommunicationInterface

All Known Implementing Classes:
LowLevelCommunication

public interface LowLevelCommunicationInterface
Dieses Interface legt die öffentlichen Methoden der unteren Kommunikationsebene von Datenverteilerverbindungen fest.
  • Method Summary

    Modifier and Type Method Description
    void connect​(java.lang.String mainAddress, int subAddress)
    Diese Methode baut eine Kommunikationsverbindung zu den angegebenen Adressen auf.
    void disableEncryption()
    Deaktiviert die Verschlüsselung
    void disconnect​(boolean error, java.lang.String message, DataTelegram terminationTelegram)
    Diese Methode wird von der Protokollschicht DaV-DAF aufgerufen, wenn die Kommunikationskanäle geschlossen werden sollen.
    void enableEncryption​(SrpTelegramEncryption encryption)
    Aktiviert die Verschlüsselung
    ConnectionInterface getConnectionInterface()
    Gibt den Repräsentant der Verbindung zurück
    default EncryptionStatus getEncryptionStatus()
    Gibt den Verschlüsselungsstatus zurück
    java.lang.String getSendBufferState()
    Liefert einen beschreibenden Text mit dem Zustand des Sendepuffers
    boolean isNotConnected()
    Gibt als Information zurück, ob die Kommunikationsverbindung unterbrochen ist.
    void send​(DataTelegram telegram)
    Diese Methode wird von der Protokollschicht DaV-DAF aufgerufen, wenn ein Telegramm gesendet werden soll.
    void send​(DataTelegram[] telegrams)
    Fügt mehrere Telegramme in die Sendetabelle ein.
    void sendDirect​(DataTelegram telegram)
    Sendet ein Telegramm direkt, wobei die SendeQueue umgangen wird.
    void sendDirect​(java.util.Collection<DataTelegram> telegrams)
    Sendet Telegramme direkt, wobei die SendeQueue umgangen wird.
    void setHighLevelComponent​(HighLevelCommunicationCallbackInterface highLevelComponent)
    Setzt die Interpretationsschicht dieser Komponente für den internen Datenaustausch.
    void setRemoteName​(java.lang.String name)
    Diese Methode setzt den Namen des Kommunikationspartners, der für Fehlermeldungen etc. verwendet wird.
    void updateKeepAliveParameters​(long keepAliveSendTimeOut, long keepAliveReceiveTimeOut)
    Diese Methode wird von der Protokollschicht DaV-DAF aufgerufen, wenn die Keepalive-Parameter-Verhandlung erfolgreich abgeschlossen ist und setzt somit die Timeouts des Keepaliveprozesses.
    void updateThroughputParameters​(float throughputControlSendBufferFactor, long throughputControlInterval, int minimumThroughput)
    Diese Methode setzt die Parameter für die Durchsatzprüfung.
  • Method Details

    • connect

      void connect​(java.lang.String mainAddress, int subAddress) throws ConnectionException
      Diese Methode baut eine Kommunikationsverbindung zu den angegebenen Adressen auf. Sie wird von der Protokollschicht DaV-DAF während der Verbindungsinitialisierung aufgerufen.
      Parameters:
      mainAddress - Adresse des Kommunikationspartners dieser Verbindung.
      subAddress - Subadresse der Adresse.
      Throws:
      ConnectionException - Falls die Verbindung nicht hergestellt werden kann.
    • disconnect

      void disconnect​(boolean error, java.lang.String message, DataTelegram terminationTelegram)
      Diese Methode wird von der Protokollschicht DaV-DAF aufgerufen, wenn die Kommunikationskanäle geschlossen werden sollen.
      Parameters:
      error - Besagt, ob es sich um eine Terminierung mit Fehler handelt.
      message - der Fehlertext
      terminationTelegram -
    • isNotConnected

      boolean isNotConnected()
      Gibt als Information zurück, ob die Kommunikationsverbindung unterbrochen ist.
      Returns:
      true = Es besteht keine Verbindung; false = sonst
    • send

      void send​(DataTelegram telegram)
      Diese Methode wird von der Protokollschicht DaV-DAF aufgerufen, wenn ein Telegramm gesendet werden soll.
      Parameters:
      telegram - Das zu versendende Telegramm.
    • send

      void send​(DataTelegram[] telegrams)
      Fügt mehrere Telegramme in die Sendetabelle ein.
      Parameters:
      telegrams - Die zu versendenden Telegramme.
      See Also:
      send(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram)
    • setHighLevelComponent

      void setHighLevelComponent​(HighLevelCommunicationCallbackInterface highLevelComponent)
      Setzt die Interpretationsschicht dieser Komponente für den internen Datenaustausch. Erst nach Aufruf dieser Methode von der Protokollschicht DaV-DAF werden die Kommunikations-Threads gestartet, weil sonst keine Telegramme interpretiert oder weitergeleitet werden können.
      Parameters:
      highLevelComponent - Komponente, die benachrichtigt werden muss, wenn neue Nachrichten empfangen werden.
    • updateKeepAliveParameters

      void updateKeepAliveParameters​(long keepAliveSendTimeOut, long keepAliveReceiveTimeOut)
      Diese Methode wird von der Protokollschicht DaV-DAF aufgerufen, wenn die Keepalive-Parameter-Verhandlung erfolgreich abgeschlossen ist und setzt somit die Timeouts des Keepaliveprozesses.
      Parameters:
      keepAliveSendTimeOut - Sendekeepalivetimeout
      keepAliveReceiveTimeOut - Empfangekeepalivetimeout
    • updateThroughputParameters

      void updateThroughputParameters​(float throughputControlSendBufferFactor, long throughputControlInterval, int minimumThroughput)
      Diese Methode setzt die Parameter für die Durchsatzprüfung. Sie wird von der Protokollschicht DaV-DAF aufgerufen, wenn die Parameter für die Durchsatzprüfung erfolgreich verhandelt wurden.
      Parameters:
      throughputControlSendBufferFactor - Füllungsgrad des Sendepuffers als Faktor zwischen 0 und 1, ab dem die Durchsatzprüfung anfängt zu arbeiten.
      throughputControlInterval - Zeit zwischen zwei Durchsatzprüfungen in Millisekunden
      minimumThroughput - Minimal zulässiger Verbindungsdurchsatz in Bytes pro Sekunde
    • getConnectionInterface

      ConnectionInterface getConnectionInterface()
      Gibt den Repräsentant der Verbindung zurück
      Returns:
      Repräsentant der Verbindung
    • getSendBufferState

      java.lang.String getSendBufferState()
      Liefert einen beschreibenden Text mit dem Zustand des Sendepuffers
      Returns:
      Zustand des Sendepuffers
    • setRemoteName

      void setRemoteName​(java.lang.String name)
      Diese Methode setzt den Namen des Kommunikationspartners, der für Fehlermeldungen etc. verwendet wird.
      Parameters:
      name - Name oder Identifikation des Kommunikationspartners
    • enableEncryption

      void enableEncryption​(SrpTelegramEncryption encryption)
      Aktiviert die Verschlüsselung
      Parameters:
      encryption - Verschlüsselung
    • disableEncryption

      void disableEncryption()
      Deaktiviert die Verschlüsselung
    • getEncryptionStatus

      default EncryptionStatus getEncryptionStatus()
      Gibt den Verschlüsselungsstatus zurück
      Returns:
      den Verschlüsselungsstatus
    • sendDirect

      void sendDirect​(DataTelegram telegram)
      Sendet ein Telegramm direkt, wobei die SendeQueue umgangen wird. Das Telegramm muss versendet wurden sein, wenn die Methode verlassen wird
      Parameters:
      telegram - Telegramm
    • sendDirect

      void sendDirect​(java.util.Collection<DataTelegram> telegrams)
      Sendet Telegramme direkt, wobei die SendeQueue umgangen wird. Das Telegramm muss versendet wurden sein, wenn die Methode verlassen wird
      Parameters:
      telegrams - Telegramme