Class NioReceiver
- java.lang.Object
-
- org.apache.catalina.tribes.transport.ReceiverBase
-
- org.apache.catalina.tribes.transport.nio.NioReceiver
-
- All Implemented Interfaces:
java.lang.Runnable
,ChannelReceiver
,Heartbeat
,ListenCallback
,NioReceiverMBean
,RxTaskPool.TaskCreator
public class NioReceiver extends ReceiverBase implements java.lang.Runnable, NioReceiverMBean
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Deque<java.lang.Runnable>
events
protected long
lastCheck
protected static StringManager
sm
The string manager for this package.-
Fields inherited from class org.apache.catalina.tribes.transport.ReceiverBase
OPTION_DIRECT_BUFFER
-
Fields inherited from interface org.apache.catalina.tribes.ChannelReceiver
MAX_UDP_SIZE
-
-
Constructor Summary
Constructors Constructor Description NioReceiver()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEvent(java.lang.Runnable event)
protected void
bind()
static void
cancelledKey(java.nio.channels.SelectionKey key)
AbstractRxTask
createRxTask()
void
events()
protected void
listen()
Get data from channel and store in byte array send it to clusterprotected void
readDataFromSocket(java.nio.channels.SelectionKey key)
Sample data handler method for a channel with data ready to read.protected void
registerChannel(java.nio.channels.Selector selector, java.nio.channels.SelectableChannel channel, int ops, java.lang.Object attach)
Register the given channel with the given selector for the given operations of interestvoid
run()
Start thread and listenprotected void
socketTimeouts()
void
start()
Start cluster receiver.void
stop()
Stop listening for messagesprotected void
stopListening()
Close Selector.-
Methods inherited from class org.apache.catalina.tribes.transport.ReceiverBase
bind, bindUdp, doListen, getActiveCount, getAddress, getAutoBind, getBind, getChannel, getCompletedTaskCount, getDirect, getExecutor, getHost, getListener, getMaxIdleTime, getMaxTasks, getMaxThreads, getMessageListener, getMinTasks, getMinThreads, getOoBInline, getPoolSize, getPort, getRxBufSize, getSecurePort, getSelectorTimeout, getSoKeepAlive, getSoLingerOn, getSoLingerTime, getSoReuseAddress, getSoTrafficClass, getTaskCount, getTaskPool, getTcpNoDelay, getTimeout, getTxBufSize, getUdpPort, getUdpRxBufSize, getUdpTxBufSize, getUseBufferPool, getWorkerThreadOptions, heartbeat, isDaemon, isListening, messageDataReceived, setAddress, setAutoBind, setBind, setChannel, setDaemon, setDirect, setExecutor, setHost, setListen, setListener, setMaxIdleTime, setMaxTasks, setMaxThreads, setMessageListener, setMinTasks, setMinThreads, setOoBInline, setPool, setPort, setRxBufSize, setSecurePort, setSelectorTimeout, setSoKeepAlive, setSoLingerOn, setSoLingerTime, setSoReuseAddress, setSoTrafficClass, setTcpNoDelay, setTimeout, setTxBufSize, setUdpPort, setUdpRxBufSize, setUdpTxBufSize, setUseBufferPool
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.catalina.tribes.transport.nio.NioReceiverMBean
getActiveCount, getAddress, getAutoBind, getCompletedTaskCount, getDirect, getMaxIdleTime, getMaxThreads, getMinThreads, getOoBInline, getPoolSize, getPort, getRxBufSize, getSecurePort, getSelectorTimeout, getSoKeepAlive, getSoLingerOn, getSoLingerTime, getSoReuseAddress, getTaskCount, getTcpNoDelay, getTimeout, getTxBufSize, getUdpPort, getUdpRxBufSize, getUdpTxBufSize, getUseBufferPool, isListening
-
-
-
-
Field Detail
-
sm
protected static final StringManager sm
The string manager for this package.
-
events
protected final java.util.Deque<java.lang.Runnable> events
-
lastCheck
protected long lastCheck
-
-
Method Detail
-
stop
public void stop()
Description copied from interface:ChannelReceiver
Stop listening for messages- Specified by:
stop
in interfaceChannelReceiver
- Overrides:
stop
in classReceiverBase
-
start
public void start() throws java.io.IOException
Start cluster receiver.- Specified by:
start
in interfaceChannelReceiver
- Overrides:
start
in classReceiverBase
- Throws:
java.io.IOException
- If the receiver fails to start- See Also:
ChannelReceiver.start()
-
createRxTask
public AbstractRxTask createRxTask()
- Specified by:
createRxTask
in interfaceRxTaskPool.TaskCreator
-
bind
protected void bind() throws java.io.IOException
- Throws:
java.io.IOException
-
addEvent
public void addEvent(java.lang.Runnable event)
-
events
public void events()
-
cancelledKey
public static void cancelledKey(java.nio.channels.SelectionKey key)
-
socketTimeouts
protected void socketTimeouts()
-
listen
protected void listen() throws java.lang.Exception
Get data from channel and store in byte array send it to cluster- Throws:
java.io.IOException
- IO errorjava.lang.Exception
-
stopListening
protected void stopListening()
Close Selector.- See Also:
ReceiverBase.stop()
-
registerChannel
protected void registerChannel(java.nio.channels.Selector selector, java.nio.channels.SelectableChannel channel, int ops, java.lang.Object attach) throws java.lang.Exception
Register the given channel with the given selector for the given operations of interest- Parameters:
selector
- The selector to usechannel
- The channelops
- The operations to registerattach
- Attachment object- Throws:
java.lang.Exception
- IO error with channel
-
run
public void run()
Start thread and listen- Specified by:
run
in interfacejava.lang.Runnable
-
readDataFromSocket
protected void readDataFromSocket(java.nio.channels.SelectionKey key) throws java.lang.Exception
Sample data handler method for a channel with data ready to read.- Parameters:
key
- A SelectionKey object associated with a channel determined by the selector to be ready for reading. If the channel returns an EOF condition, it is closed here, which automatically invalidates the associated key. The selector will then de-register the channel on the next select call.- Throws:
java.lang.Exception
- IO error with channel
-
-