org.apache.tomcat.util.net
public class NioSelectorPool extends Object
Since: 6.0
Version: 1.0
| Field Summary | |
|---|---|
| protected AtomicInteger | active |
| protected NioBlockingSelector | blockingSelector |
| protected boolean | enabled |
| protected static Log | log |
| protected int | maxSelectors |
| protected int | maxSpareSelectors |
| protected ConcurrentLinkedQueue<Selector> | selectors |
| protected long | sharedSelectorTimeout |
| protected AtomicInteger | spare |
| protected static boolean | SHARED |
| protected Selector | SHARED_SELECTOR |
| protected static int | threadCount |
| Constructor Summary | |
|---|---|
| NioSelectorPool() | |
| Method Summary | |
|---|---|
| void | close() |
| Selector | get() |
| int | getMaxSelectors() |
| int | getMaxSpareSelectors() |
| ConcurrentLinkedQueue | getSelectors() |
| protected Selector | getSharedSelector() |
| long | getSharedSelectorTimeout() |
| AtomicInteger | getSpare() |
| boolean | isEnabled() |
| void | open() |
| void | put(Selector s) |
| int | read(ByteBuffer buf, NioChannel socket, Selector selector, long readTimeout)
Performs a blocking read using the bytebuffer for data to be read and a selector to block.
|
| int | read(ByteBuffer buf, NioChannel socket, Selector selector, long readTimeout, boolean block)
Performs a read using the bytebuffer for data to be read and a selector to register for events should
you have the block=true.
|
| void | setEnabled(boolean enabled) |
| void | setMaxSelectors(int maxSelectors) |
| void | setMaxSpareSelectors(int maxSpareSelectors) |
| void | setSharedSelectorTimeout(long sharedSelectorTimeout) |
| int | write(ByteBuffer buf, NioChannel socket, Selector selector, long writeTimeout)
Performs a blocking write using the bytebuffer for data to be written and a selector to block.
|
| int | write(ByteBuffer buf, NioChannel socket, Selector selector, long writeTimeout, boolean block, MutableInteger lastWrite) |
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 selector Selector - the selector to use for blocking, if null then a busy read will be initiated readTimeout long - the timeout for this read operation in milliseconds, -1 means no timeout
Returns: int - 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
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 selector Selector - the selector to use for blocking, if null then a busy read will be initiated readTimeout long - the timeout for this read operation in milliseconds, -1 means no timeout block - true if you want to block until data becomes available or timeout time has been reached
Returns: int - 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
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 selector Selector - the selector to use for blocking, if null then a busy write will be initiated writeTimeout long - the timeout for this write operation in milliseconds, -1 means no timeout
Returns: int - 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