org.apache.catalina.tribes.transport.nio
Class NioSender
java.lang.Object
org.apache.catalina.tribes.transport.AbstractSender
org.apache.catalina.tribes.transport.nio.NioSender
- All Implemented Interfaces:
- DataSender
public class NioSender
- extends AbstractSender
- implements DataSender
This class is NOT thread safe and should never be used with more than one thread at a time
This is a state machine, handled by the process method
States are:
- NOT_CONNECTED -> connect() -> CONNECTED
- CONNECTED -> setMessage() -> READY TO WRITE
- READY_TO_WRITE -> write() -> READY TO WRITE | READY TO READ
- READY_TO_READ -> read() -> READY_TO_READ | TRANSFER_COMPLETE
- TRANSFER_COMPLETE -> CONNECTED
- Version:
- 1.0
- Author:
- Filip Hanik
| Methods inherited from class org.apache.catalina.tribes.transport.AbstractSender |
getAddress, getAttempt, getConnectTime, getDestination, getDirect, getDirectBuffer, getKeepAliveCount, getKeepAliveTime, getMaxRetryAttempts, getOoBInline, getPort, getRequestCount, getRxBufSize, getSoKeepAlive, getSoLingerOn, getSoLingerTime, getSoReuseAddress, getSoTrafficClass, getTcpNoDelay, getThrowOnFailedAck, getTimeout, getTxBufSize, isConnected, keepalive, setAddress, setAttempt, setConnected, setConnectTime, setDestination, setDirect, setDirectBuffer, setKeepAliveCount, setKeepAliveTime, setMaxRetryAttempts, setOoBInline, setPort, setRequestCount, setRxBufSize, setSoKeepAlive, setSoLingerOn, setSoLingerTime, setSoReuseAddress, setSoTrafficClass, setTcpNoDelay, setThrowOnFailedAck, setTimeout, setTxBufSize, transferProperties |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
log
protected static Log log
selector
protected Selector selector
socketChannel
protected SocketChannel socketChannel
readbuf
protected ByteBuffer readbuf
writebuf
protected ByteBuffer writebuf
current
protected byte[] current
ackbuf
protected XByteBuffer ackbuf
remaining
protected int remaining
complete
protected boolean complete
connecting
protected boolean connecting
NioSender
public NioSender()
process
public boolean process(SelectionKey key,
boolean waitForAck)
throws IOException
- State machine to send data
- Parameters:
key - SelectionKey
- Returns:
- boolean
- Throws:
IOException
read
protected boolean read(SelectionKey key)
throws IOException
- Throws:
IOException
write
protected boolean write(SelectionKey key)
throws IOException
- Throws:
IOException
connect
public void connect()
throws IOException
- connect - blocking in this operation
- Specified by:
connect in interface DataSender- Specified by:
connect in class AbstractSender
- Throws:
IOException
disconnect
public void disconnect()
- disconnect
- Specified by:
disconnect in interface DataSender- Specified by:
disconnect in class AbstractSender
reset
public void reset()
setMessage
public void setMessage(byte[] data)
throws IOException
- sendMessage
- Parameters:
data - ChannelMessage
- Throws:
IOException
setMessage
public void setMessage(byte[] data,
int offset,
int length)
throws IOException
- Throws:
IOException
getMessage
public byte[] getMessage()
isComplete
public boolean isComplete()
getSelector
public Selector getSelector()
setSelector
public void setSelector(Selector selector)
setComplete
public void setComplete(boolean complete)
Copyright © 2003-2010 The Apache Software Foundation. All Rights Reserved.