class LowLevelCommunication.KeepAliveThread extends LowLevelThread
Dieser Thread verschickt Keepalive Telegramme und baut die Verbindung ab, wenn dreimal nacheinander eine bestimmte Zeit lang keine Daten mehr empfangen wurden.
KeepAlive-Thread Senden: Wurde einen bestimmten Zeitraum kein Telegramm mehr verschickt, wird ein Keep-Alive Telegramm verschickt.
KeepAlive-Thread Empfangen: Wurde dreimal nacheinander eine bestimmte Zeit kein Telegramm empfangen, wird die Verbindung abgebaut.
Modifier and Type | Field and Description |
---|---|
private long |
_lastQueuedKeepAliveTime
Zeit in Nanosekundendes letzten zum Versand eingetragenen KeepAlive-Telegramms
|
private long |
_lastReceivingTime
Zeit in Nanosekunden des letzten Empfangs von Daten
|
private long |
_lastSendingTime
Zeit in Nanosekundendes letzten Versands von Daten
|
private long |
_lastStartReceivingTime
Zeitpunkt, an dem zuletzt angefangen wurde auf den Empfang von Daten zu warten
|
private int |
_souls
Aktuelle noch verbleibende Anzahl für das Ablaufen des Empfangstimeouts bevor die Verbindung terminiert wird.
|
private boolean |
_waitingForData |
private static byte |
MAX_SOULS
Maximale Anzahl für das Ablaufen des Empfangstimeouts bevor die Verbindung terminiert wird.
|
private static int |
NOT_RECEIVING_MULTIPLIER
Um diesen Faktor wird die Anzahl der Versuche vor der Terminierung erhöht, wenn gar nicht versucht wird, Keep-Alive-Telegramme (oder andere) zu laden
|
Constructor and Description |
---|
KeepAliveThread() |
Modifier and Type | Method and Description |
---|---|
LowLevelCommunication |
getLowLevelCommunication() |
(package private) int |
getSouls()
Diese Methode dient dazu JUnit-Tests zu unterstützen.
|
void |
receivedTelegram() |
void |
run() |
void |
sentTelegram() |
void |
startReceiving() |
void |
timeoutsChanged() |
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
private static final byte MAX_SOULS
Maximale Anzahl für das Ablaufen des Empfangstimeouts bevor die Verbindung terminiert wird.
private int _souls
Aktuelle noch verbleibende Anzahl für das Ablaufen des Empfangstimeouts bevor die Verbindung terminiert wird.
private long _lastStartReceivingTime
Zeitpunkt, an dem zuletzt angefangen wurde auf den Empfang von Daten zu warten
private long _lastReceivingTime
Zeit in Nanosekunden des letzten Empfangs von Daten
private long _lastSendingTime
Zeit in Nanosekundendes letzten Versands von Daten
private long _lastQueuedKeepAliveTime
Zeit in Nanosekundendes letzten zum Versand eingetragenen KeepAlive-Telegramms
private static final int NOT_RECEIVING_MULTIPLIER
Um diesen Faktor wird die Anzahl der Versuche vor der Terminierung erhöht, wenn gar nicht versucht wird, Keep-Alive-Telegramme (oder andere) zu laden
private boolean _waitingForData
public void startReceiving()
public void receivedTelegram()
public void sentTelegram()
public void timeoutsChanged()
int getSouls()
Diese Methode dient dazu JUnit-Tests zu unterstützen.
_souls
wieder auf den maximalen Wert gesetzt.public final void run()
run
in interface java.lang.Runnable
run
in class java.lang.Thread
public LowLevelCommunication getLowLevelCommunication()
getLowLevelCommunication
in class LowLevelThread