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.IOExceptionpublic void run()
Methode, die beim Start des Protokoll-Threads aufgerufen wird und die asynchrone Protokollsteuerung implementiert.
run in interface java.lang.Runnablepublic java.lang.String toString()
toString in class java.lang.Objectpublic 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