inputOutputHandler
Class ClientConnectionHandler

java.lang.Object
  extended by java.lang.Thread
      extended by inputOutputHandler.ClientConnectionHandler
All Implemented Interfaces:
java.lang.Runnable

final class ClientConnectionHandler
extends java.lang.Thread

Handles communication with Clients. Accepts connections, receives Requests and sends Replyies. Requests are put in the InputOutputHandlerController's requestInputQueue (see InputOutputHandlerController.addUnprocessedRequest()). Replyies are taken from the InputOutputHandlerController's replyOutputQueue (see InputOutputHandlerController.getProcessedReply()).

Adds/removes user to/from UserDatabase.

Uses non-blocking I/O.

Author:
Karl-Peter Fuchs

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
protected ClientConnectionHandler(InputOutputHandlerController inputOutputHandler, UserDatabaseController userDatabase, OutputStrategyController outputStrategy)
          Constructs a new ClientConnectionHandler which accepts connections, receives Requests and sends Replyies.
 
Method Summary
protected  void acceptConnections()
          Makes this ClientConnectionHandler wait for connections, Requests and Replyies.
 void run()
          Handles read, write and accept events (non-blocking I/O).
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ClientConnectionHandler

protected ClientConnectionHandler(InputOutputHandlerController inputOutputHandler,
                                  UserDatabaseController userDatabase,
                                  OutputStrategyController outputStrategy)
Constructs a new ClientConnectionHandler which accepts connections, receives Requests and sends Replyies. Requests are put in the InputOutputHandlerController's requestInputQueue (see InputOutputHandlerController.addUnprocessedRequest()). Replyies are taken from the InputOutputHandlerController's replyOutputQueue (see InputOutputHandlerController.getProcessedReply()).

Adds/removes user to/from UserDatabase.

Uses non-blocking I/O.

Parameters:
inputOutputHandler - Reference on InputOutputHandlerController (Used to add messages).
userDatabase - Reference on component UserDatabase (Used to add/remove User)s.
outputStrategy - Reference on component OutputStrategy (Used to send InternalMessages).
Method Detail

acceptConnections

protected void acceptConnections()
Makes this ClientConnectionHandler wait for connections, Requests and Replyies.


run

public void run()
Handles read, write and accept events (non-blocking I/O).

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread