org.apache.tomcat.util.net

Class NioBlockingSelector

public class NioBlockingSelector extends Object

Nested Class Summary
protected classNioBlockingSelector.BlockPoller
classNioBlockingSelector.KeyReference
Field Summary
protected static Loglog
protected NioBlockingSelector.BlockPollerpoller
protected SelectorsharedSelector
Constructor Summary
NioBlockingSelector()
Method Summary
voidclose()
voidopen(Selector selector)
intread(ByteBuffer buf, NioChannel socket, long readTimeout)
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.
intwrite(ByteBuffer buf, NioChannel socket, long writeTimeout, MutableInteger lastWrite)
Performs a blocking write using the bytebuffer 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.

Field Detail

log

protected static Log log

poller

protected NioBlockingSelector.BlockPoller poller

sharedSelector

protected Selector sharedSelector

Constructor Detail

NioBlockingSelector

public NioBlockingSelector()

Method Detail

close

public void close()

open

public void open(Selector selector)

read

public int read(ByteBuffer buf, NioChannel socket, long readTimeout)
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 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

write

public int write(ByteBuffer buf, NioChannel socket, long writeTimeout, MutableInteger lastWrite)
Performs a blocking write using the bytebuffer 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: 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

Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.