private class Client.Worker
extends java.lang.Object
implements java.lang.Runnable
Modifier and Type | Class and Description |
---|---|
(package private) class |
Client.Worker.WorkAction
Hilfsklasse, die zur Speicherung einer Aktion zusammen mit der Verbindung, auf die sich die Aktion bezieht,
eingesetzt wird.
|
Modifier and Type | Field and Description |
---|---|
private java.nio.channels.Selector |
_selector
Selektor-Objekt, mit dessen Hilfe alle Kommunikationsoperationen (Verbindungsaufbau, Versand und Empfang von Daten)
ohne zusätzliche Threads asynchron ausgeführt werden.
|
private de.bsvrz.sys.funclib.concurrent.UnboundedQueue<Client.Worker.WorkAction> |
_workQueue
Queue zur Übermittlung von Aktionen an den Protokoll-Thread
|
Constructor and Description |
---|
Client.Worker()
Konstruktor initialisiert den Selektor und die Queue zur Übermittlung von Aktionen.
|
Modifier and Type | Method and Description |
---|---|
void |
notify(Client.Link link,
Client.ActionType action,
int seqNum,
boolean sofortQuittieren)
Kann von einem beliebigen Thread aufgerufen werden, um dem Protokoll-Thread zu signalisieren, dass eine bestimmte
Aktion ausgeführt werden soll.
|
void |
run()
Methode, die beim Start des Protokoll-Threads aufgerufen wird und die asynchrone Protokollsteuerung implementiert.
|
java.lang.String |
toString()
Ausgabe von Informationen für dieses Objekt für Debug-Zwecke.
|
private final java.nio.channels.Selector _selector
private final de.bsvrz.sys.funclib.concurrent.UnboundedQueue<Client.Worker.WorkAction> _workQueue
public Client.Worker() throws java.io.IOException
java.io.IOException
- wenn eine nicht abgefangene Ausnahme auftritt.public void notify(Client.Link link, Client.ActionType action, int seqNum, boolean sofortQuittieren)
link
- Verbindung, auf die sich die Aktion bezieht.action
- Durchzuführende AktionseqNum
- SequenzNummer des Telegramms, welches quittiert werden sollsofortQuittieren
- true
, wenn Quittierung in jedem Fall sofort erfolgen soll, sonst
false
.public void run()
run
in interface java.lang.Runnable
public java.lang.String toString()
toString
in class java.lang.Object