Class NioBlockingSelector

java.lang.Object
org.apache.tomcat.util.net.NioBlockingSelector

public class NioBlockingSelector extends Object
  • Field Details

  • Constructor Details

    • NioBlockingSelector

      public NioBlockingSelector()
  • Method Details

    • open

      public void open(String name, Selector selector)
    • close

      public void close()
    • write

      public int write(ByteBuffer buf, NioChannel socket, long writeTimeout) throws IOException
      Performs a blocking write using the byte buffer for data to be written If the selector parameter is null, then it will perform a busy write that could take up a lot of CPU cycles.
      Parameters:
      buf - ByteBuffer - the buffer containing the data, we will write as long as (buf.hasRemaining()==true)
      socket - SocketChannel - the socket to write data to
      writeTimeout - long - the timeout for this write operation in milliseconds, -1 means no timeout
      Returns:
      the number of bytes written
      Throws:
      EOFException - if write returns -1
      SocketTimeoutException - if the write times out
      IOException - if an IO Exception occurs in the underlying socket logic
    • read

      public int read(ByteBuffer buf, NioChannel socket, long readTimeout) throws IOException
      Performs a blocking read using the bytebuffer for data to be read If the selector parameter is null, then it will perform a busy read that could take up a lot of CPU cycles.
      Parameters:
      buf - ByteBuffer - the buffer containing the data, we will read as until we have read at least one byte or we timed out
      socket - SocketChannel - the socket to write data to
      readTimeout - long - the timeout for this read operation in milliseconds, -1 means no timeout
      Returns:
      the number of bytes read
      Throws:
      EOFException - if read returns -1
      SocketTimeoutException - if the read times out
      IOException - if an IO Exception occurs in the underlying socket logic