java.lang.Runnable
TNonblockingServer.SelectAcceptThread
, TThreadedSelectorServer.SelectorThread
protected abstract class AbstractNonblockingServer.AbstractSelectThread
extends java.lang.Thread
FrameBuffers
associated with selected keys
corresponding to requests.Modifier and Type | Field | Description |
---|---|---|
protected java.util.Set<AbstractNonblockingServer.FrameBuffer> |
selectInterestChanges |
|
protected java.nio.channels.Selector |
selector |
Constructor | Description |
---|---|
AbstractSelectThread() |
Modifier and Type | Method | Description |
---|---|---|
protected void |
cleanupSelectionKey(java.nio.channels.SelectionKey key) |
Do connection-close cleanup on a given SelectionKey.
|
protected void |
handleRead(java.nio.channels.SelectionKey key) |
Do the work required to read from a readable client.
|
protected void |
handleWrite(java.nio.channels.SelectionKey key) |
Let a writable client get written, if there's data to be written.
|
protected void |
processInterestChanges() |
Check to see if there are any FrameBuffers that have switched their
interest type from read to write or vice versa.
|
void |
requestSelectInterestChange(AbstractNonblockingServer.FrameBuffer frameBuffer) |
Add FrameBuffer to the list of select interest changes and wake up the
selector if it's blocked.
|
void |
wakeupSelector() |
If the selector is blocked, wake it up.
|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
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, onSpinWait, resume, run, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
protected final java.nio.channels.Selector selector
protected final java.util.Set<AbstractNonblockingServer.FrameBuffer> selectInterestChanges
public AbstractSelectThread() throws java.io.IOException
java.io.IOException
public void wakeupSelector()
public void requestSelectInterestChange(AbstractNonblockingServer.FrameBuffer frameBuffer)
protected void processInterestChanges()
protected void handleRead(java.nio.channels.SelectionKey key)
protected void handleWrite(java.nio.channels.SelectionKey key)
protected void cleanupSelectionKey(java.nio.channels.SelectionKey key)