Class AbstractNonblockingServer.AbstractSelectThread

    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.lang.Thread

        java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      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.
      • Methods inherited from class java.lang.Thread

        activeCount, checkAccess, clone, countStackFrames, currentThread, 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, suspend, toString, yield
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • AbstractSelectThread

        public AbstractSelectThread()
                             throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • wakeupSelector

        public void wakeupSelector()
        If the selector is blocked, wake it up.
      • requestSelectInterestChange

        public void requestSelectInterestChange​(AbstractNonblockingServer.FrameBuffer frameBuffer)
        Add FrameBuffer to the list of select interest changes and wake up the selector if it's blocked. When the select() call exits, it'll give the FrameBuffer a chance to change its interests.
      • processInterestChanges

        protected void processInterestChanges()
        Check to see if there are any FrameBuffers that have switched their interest type from read to write or vice versa.
      • handleRead

        protected void handleRead​(java.nio.channels.SelectionKey key)
        Do the work required to read from a readable client. If the frame is fully read, then invoke the method call.
      • handleWrite

        protected void handleWrite​(java.nio.channels.SelectionKey key)
        Let a writable client get written, if there's data to be written.
      • cleanupSelectionKey

        protected void cleanupSelectionKey​(java.nio.channels.SelectionKey key)
        Do connection-close cleanup on a given SelectionKey.