org.apache.catalina.tribes.transport.nio

Class NioSender

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

Field Summary
protected XByteBufferackbuf
protected booleancomplete
protected booleanconnecting
protected byte[]current
protected static Loglog
protected ByteBufferreadbuf
protected intremaining
protected Selectorselector
protected SocketChannelsocketChannel
protected ByteBufferwritebuf
Constructor Summary
NioSender()
Method Summary
voidconnect()
connect - blocking in this operation
voiddisconnect()
disconnect
byte[]getMessage()
SelectorgetSelector()
booleanisComplete()
booleanprocess(SelectionKey key, boolean waitForAck)
State machine to send data
protected booleanread(SelectionKey key)
voidreset()
voidsetComplete(boolean complete)
voidsetMessage(byte[] data)
sendMessage
voidsetMessage(byte[] data, int offset, int length)
voidsetSelector(Selector selector)
protected booleanwrite(SelectionKey key)

Field Detail

ackbuf

protected XByteBuffer ackbuf

complete

protected boolean complete

connecting

protected boolean connecting

current

protected byte[] current

log

protected static Log log

readbuf

protected ByteBuffer readbuf

remaining

protected int remaining

selector

protected Selector selector

socketChannel

protected SocketChannel socketChannel

writebuf

protected ByteBuffer writebuf

Constructor Detail

NioSender

public NioSender()

Method Detail

connect

public void connect()
connect - blocking in this operation

Throws: IOException

UNKNOWN: Implement this org.apache.catalina.tribes.transport.IDataSender method

disconnect

public void disconnect()
disconnect

UNKNOWN: Implement this org.apache.catalina.tribes.transport.IDataSender method

getMessage

public byte[] getMessage()

getSelector

public Selector getSelector()

isComplete

public boolean isComplete()

process

public boolean process(SelectionKey key, boolean waitForAck)
State machine to send data

Parameters: key SelectionKey

Returns: boolean

Throws: IOException

read

protected boolean read(SelectionKey key)

reset

public void reset()

setComplete

public void setComplete(boolean complete)

setMessage

public void setMessage(byte[] data)
sendMessage

Parameters: data ChannelMessage

Throws: IOException

UNKNOWN: Implement this org.apache.catalina.tribes.transport.IDataSender method

setMessage

public void setMessage(byte[] data, int offset, int length)

setSelector

public void setSelector(Selector selector)

write

protected boolean write(SelectionKey key)
Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.