Class NioEndpoint.Poller

java.lang.Object
org.apache.tomcat.util.net.NioEndpoint.Poller
All Implemented Interfaces:
Runnable
Enclosing class:
NioEndpoint

public class NioEndpoint.Poller extends Object implements Runnable
Poller class.
  • Constructor Details

    • Poller

      public Poller() throws IOException
      Creates a new poller.
      Throws:
      IOException - If the selector cannot be opened
  • Method Details

    • getKeyCount

      public int getKeyCount()
      Returns the number of registered keys.
      Returns:
      the key count
    • getSelector

      public Selector getSelector()
      Returns the selector.
      Returns:
      the selector
    • destroy

      protected void destroy()
      Destroy the poller.
    • add

      public void add(NioEndpoint.NioSocketWrapper socketWrapper, int interestOps)
      Add specified socket and associated pool to the poller. The socket will be added to a temporary array, and polled first after a maximum amount of time equal to pollTime (in most cases, latency will be much lower, however).
      Parameters:
      socketWrapper - to add to the poller
      interestOps - Operations for which to register this socket with the Poller
    • events

      public boolean events()
      Processes events in the event queue of the Poller.
      Returns:
      true if some events were processed, false if queue was empty
    • register

      public void register(NioEndpoint.NioSocketWrapper socketWrapper)
      Registers a newly created socket with the poller.
      Parameters:
      socketWrapper - The socket wrapper
    • run

      public void run()
      The background thread that adds sockets to the Poller, checks the poller for triggered events and hands the associated socket off to an appropriate processor as events occur.
      Specified by:
      run in interface Runnable
    • processKey

      protected void processKey(SelectionKey sk, NioEndpoint.NioSocketWrapper socketWrapper)
      Processes a selection key event.
      Parameters:
      sk - The selection key
      socketWrapper - The socket wrapper
    • processSendfile

      public SendfileState processSendfile(SelectionKey sk, NioEndpoint.NioSocketWrapper socketWrapper, boolean calledByProcessor)
      Processes a sendfile operation.
      Parameters:
      sk - The selection key
      socketWrapper - The socket wrapper
      calledByProcessor - Whether called from a processor thread
      Returns:
      the sendfile state
    • unreg

      protected void unreg(SelectionKey sk, NioEndpoint.NioSocketWrapper socketWrapper, int readyOps)
      Unregisters interest operations for a socket.
      Parameters:
      sk - The selection key
      socketWrapper - The socket wrapper
      readyOps - The ready operations to remove
    • reg

      protected void reg(SelectionKey sk, NioEndpoint.NioSocketWrapper socketWrapper, int intops)
      Registers interest operations for a socket.
      Parameters:
      sk - The selection key
      socketWrapper - The socket wrapper
      intops - The interest operations to set
    • timeout

      protected void timeout(int keyCount, boolean hasEvents)
      Checks for socket timeouts.
      Parameters:
      keyCount - Number of selected keys
      hasEvents - Whether there were events processed