Package org.apache.catalina.tribes.transport.nio

## 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
`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
`NioReceiver()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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 cluster
`protected 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 interest
`void` `run()` Start thread and listen
`protected void` `socketTimeouts()`
`void` `start()` Start cluster receiver.
`void` `stop()` Stop listening for messages
`protected 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

### Constructor Detail

#### NioReceiver

    public NioReceiver()

### Method Detail

#### stop

    public void stop()

Description copied from interface: `ChannelReceiver`
Stop listening for messages

Specified by:
  `stop` in interface `ChannelReceiver`
Overrides:
  `stop` in class `ReceiverBase`

#### start

    public void start()
               throws java.io.IOException

Start cluster receiver.

Specified by:
  `start` in interface `ChannelReceiver`
Overrides:
  `start` in class `ReceiverBase`
Throws:
  `java.io.IOException` - If the receiver fails to start
See Also:
  `ChannelReceiver.start()`

#### createRxTask

    public AbstractRxTask createRxTask()

Specified by:
  `createRxTask` in interface `RxTaskPool.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 error
  `java.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 use
  `channel` - The channel
  `ops` - The operations to register
  `attach` - Attachment object
Throws:
  `java.lang.Exception` - IO error with channel

#### run

    public void run()

Start thread and listen

Specified by:
  `run` in interface `java.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