private class Server.Worker
extends java.lang.Object
implements java.lang.Runnable
Klasse die das Runnable-Interface implementiert, vom Protokollthread ausgeführt wird und den Protokollablauf steuert
Modifier and Type | Class and Description |
---|---|
(package private) class |
Server.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 UnboundedQueue<Server.Worker.WorkAction> |
_workQueue
Queue zur Übermittlung von Aktionen an den Protokoll-Thread
|
Constructor and Description |
---|
Worker()
Konstruktor initialisiert den Selektor und die Queue zur Übermittlung von Aktionen
|
Modifier and Type | Method and Description |
---|---|
void |
notify(Server.Link link,
Server.ActionType action)
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() |
private final 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 final UnboundedQueue<Server.Worker.WorkAction> _workQueue
Queue zur Übermittlung von Aktionen an den Protokoll-Thread
public Worker() throws java.io.IOException
Konstruktor initialisiert den Selektor und die Queue zur Übermittlung von Aktionen
java.io.IOException
public void run()
Methode, die beim Start des Protokoll-Threads aufgerufen wird und die asynchrone Protokollsteuerung implementiert.
run
in interface java.lang.Runnable
public java.lang.String toString()
toString
in class java.lang.Object
public void notify(Server.Link link, Server.ActionType action)
Kann von einem beliebigen Thread aufgerufen werden, um dem Protokoll-Thread zu signalisieren, dass eine bestimmte Aktion ausgeführt werden soll
link
- Verbindung, auf die sich die Aktion bezieht.action
- Durchzuführende Aktion