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üsselungvoid
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üsselungConnectionInterface
getConnectionInterface()
Gibt den Repräsentant der Verbindung zurückdefault EncryptionStatus
getEncryptionStatus()
Gibt den Verschlüsselungsstatus zurückjava.lang.String
getSendBufferState()
Liefert einen beschreibenden Text mit dem Zustand des Sendepuffersboolean
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
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
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 FehlertextterminationTelegram
-
-
isNotConnected
boolean isNotConnected()Gibt als Information zurück, ob die Kommunikationsverbindung unterbrochen ist.- Returns:
true
= Es besteht keine Verbindung;false
= sonst
-
send
Diese Methode wird von der Protokollschicht DaV-DAF aufgerufen, wenn ein Telegramm gesendet werden soll.- Parameters:
telegram
- Das zu versendende Telegramm.
-
send
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
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
- SendekeepalivetimeoutkeepAliveReceiveTimeOut
- 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 MillisekundenminimumThroughput
- 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
Aktiviert die Verschlüsselung- Parameters:
encryption
- Verschlüsselung
-
disableEncryption
void disableEncryption()Deaktiviert die Verschlüsselung -
getEncryptionStatus
Gibt den Verschlüsselungsstatus zurück- Returns:
- den Verschlüsselungsstatus
-
sendDirect
Sendet ein Telegramm direkt, wobei die SendeQueue umgangen wird. Das Telegramm muss versendet wurden sein, wenn die Methode verlassen wird- Parameters:
telegram
- Telegramm
-
sendDirect
Sendet Telegramme direkt, wobei die SendeQueue umgangen wird. Das Telegramm muss versendet wurden sein, wenn die Methode verlassen wird- Parameters:
telegrams
- Telegramme
-