org.apache.tomcat.util.net
Class NioSelectorPool
java.lang.Object
org.apache.tomcat.util.net.NioSelectorPool
public class NioSelectorPool
- extends java.lang.Object
Thread safe non blocking selector pool
- Since:
- 6.0
- Version:
- 1.0
- Author:
- Filip Hanik
Field Summary |
protected java.util.concurrent.atomic.AtomicInteger |
active
|
protected boolean |
enabled
|
protected int |
maxSelectors
|
protected int |
maxSpareSelectors
|
protected java.util.concurrent.ConcurrentLinkedQueue<java.nio.channels.Selector> |
selectors
|
protected java.util.concurrent.atomic.AtomicInteger |
spare
|
Method Summary |
void |
close()
|
java.nio.channels.Selector |
get()
|
int |
getMaxSelectors()
|
int |
getMaxSpareSelectors()
|
boolean |
isEnabled()
|
void |
open()
|
void |
put(java.nio.channels.Selector s)
|
int |
read(java.nio.ByteBuffer buf,
NioChannel socket,
java.nio.channels.Selector selector,
long readTimeout)
Performs a blocking read using the bytebuffer for data to be read and a selector to block. |
void |
setEnabled(boolean enabled)
|
void |
setMaxSelectors(int maxSelectors)
|
void |
setMaxSpareSelectors(int maxSpareSelectors)
|
int |
write(java.nio.ByteBuffer buf,
NioChannel socket,
java.nio.channels.Selector selector,
long writeTimeout)
Performs a blocking write using the bytebuffer for data to be written and a selector to block. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
maxSelectors
protected int maxSelectors
maxSpareSelectors
protected int maxSpareSelectors
enabled
protected boolean enabled
active
protected java.util.concurrent.atomic.AtomicInteger active
spare
protected java.util.concurrent.atomic.AtomicInteger spare
selectors
protected java.util.concurrent.ConcurrentLinkedQueue<java.nio.channels.Selector> selectors
NioSelectorPool
public NioSelectorPool()
get
public java.nio.channels.Selector get()
throws java.io.IOException
- Throws:
java.io.IOException
put
public void put(java.nio.channels.Selector s)
throws java.io.IOException
- Throws:
java.io.IOException
close
public void close()
throws java.io.IOException
- Throws:
java.io.IOException
open
public void open()
write
public int write(java.nio.ByteBuffer buf,
NioChannel socket,
java.nio.channels.Selector selector,
long writeTimeout)
throws java.io.IOException
- Performs a blocking write using the bytebuffer for data to be written and a selector to block.
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 toselector
- Selector - the selector to use for blocking, if null then a busy write will be initiatedwriteTimeout
- long - the timeout for this write operation in milliseconds, -1 means no timeout
- Returns:
- int - returns the number of bytes written
- Throws:
java.io.EOFException
- if write returns -1
java.net.SocketTimeoutException
- if the write times out
java.io.IOException
- if an IO Exception occurs in the underlying socket logic
read
public int read(java.nio.ByteBuffer buf,
NioChannel socket,
java.nio.channels.Selector selector,
long readTimeout)
throws java.io.IOException
- Performs a blocking read using the bytebuffer for data to be read and a selector to block.
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 outsocket
- SocketChannel - the socket to write data toselector
- Selector - the selector to use for blocking, if null then a busy read will be initiatedreadTimeout
- long - the timeout for this read operation in milliseconds, -1 means no timeout
- Returns:
- int - returns the number of bytes read
- Throws:
java.io.EOFException
- if read returns -1
java.net.SocketTimeoutException
- if the read times out
java.io.IOException
- if an IO Exception occurs in the underlying socket logic
setMaxSelectors
public void setMaxSelectors(int maxSelectors)
setMaxSpareSelectors
public void setMaxSpareSelectors(int maxSpareSelectors)
setEnabled
public void setEnabled(boolean enabled)
getMaxSelectors
public int getMaxSelectors()
getMaxSpareSelectors
public int getMaxSpareSelectors()
isEnabled
public boolean isEnabled()
Copyright © 2000-2006 Apache Software Foundation. All Rights Reserved.