org.apache.thrift.server
Class TThreadedSelectorServer.SelectorThread

java.lang.Object
  extended by java.lang.Thread
      extended by org.apache.thrift.server.AbstractNonblockingServer.AbstractSelectThread
          extended by org.apache.thrift.server.TThreadedSelectorServer.SelectorThread
All Implemented Interfaces:
java.lang.Runnable
Enclosing class:
TThreadedSelectorServer

protected class TThreadedSelectorServer.SelectorThread
extends AbstractNonblockingServer.AbstractSelectThread

The SelectorThread(s) will be doing all the selecting on accepted active connections.


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 org.apache.thrift.server.AbstractNonblockingServer.AbstractSelectThread
selectInterestChanges, selector
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
TThreadedSelectorServer.SelectorThread()
          Set up the SelectorThread with an unbounded queue for incoming accepts.
TThreadedSelectorServer.SelectorThread(java.util.concurrent.BlockingQueue<TNonblockingTransport> acceptedQueue)
          Set up the SelectorThread with a specified queue for connections.
TThreadedSelectorServer.SelectorThread(int maxPendingAccepts)
          Set up the SelectorThread with an bounded queue for incoming accepts.
 
Method Summary
 boolean addAcceptedConnection(TNonblockingTransport accepted)
          Hands off an accepted connection to be handled by this thread.
 void run()
          The work loop.
 
Methods inherited from class org.apache.thrift.server.AbstractNonblockingServer.AbstractSelectThread
cleanupSelectionKey, handleRead, handleWrite, processInterestChanges, requestSelectInterestChange, wakeupSelector
 
Methods inherited from class java.lang.Thread
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
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TThreadedSelectorServer.SelectorThread

public TThreadedSelectorServer.SelectorThread()
                                       throws java.io.IOException
Set up the SelectorThread with an unbounded queue for incoming accepts.

Throws:
java.io.IOException - if a selector cannot be created

TThreadedSelectorServer.SelectorThread

public TThreadedSelectorServer.SelectorThread(int maxPendingAccepts)
                                       throws java.io.IOException
Set up the SelectorThread with an bounded queue for incoming accepts.

Throws:
java.io.IOException - if a selector cannot be created

TThreadedSelectorServer.SelectorThread

public TThreadedSelectorServer.SelectorThread(java.util.concurrent.BlockingQueue<TNonblockingTransport> acceptedQueue)
                                       throws java.io.IOException
Set up the SelectorThread with a specified queue for connections.

Parameters:
acceptedQueue - The BlockingQueue implementation for holding incoming accepted connections.
Throws:
java.io.IOException - if a selector cannot be created.
Method Detail

addAcceptedConnection

public boolean addAcceptedConnection(TNonblockingTransport accepted)
Hands off an accepted connection to be handled by this thread. This method will block if the queue for new connections is at capacity.

Parameters:
accepted - The connection that has been accepted.
Returns:
true if the connection has been successfully added.

run

public void run()
The work loop. Handles selecting (read/write IO), dispatching, and managing the selection preferences of all existing connections.

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