Package org.apache.catalina.tribes.transport

## Class ReceiverBase

- java.lang.Object
- - org.apache.catalina.tribes.transport.ReceiverBase

All Implemented Interfaces:
  `ChannelReceiver`, `Heartbeat`, `ListenCallback`, `RxTaskPool.TaskCreator`

Direct Known Subclasses:
  `BioReceiver`, `NioReceiver`

    public abstract class ReceiverBase
    extends java.lang.Object
    implements ChannelReceiver, ListenCallback, RxTaskPool.TaskCreator

### Field Summary

Fields
`static int` `OPTION_DIRECT_BUFFER`
`protected static StringManager` `sm`

### Fields inherited from interface org.apache.catalina.tribes.ChannelReceiver

`MAX_UDP_SIZE`

### Constructor Summary

Constructors
`ReceiverBase()`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `bind​(java.net.ServerSocket socket, int portstart, int retries)` Attempts to bind using the provided port and if that fails attempts to bind to each of the ports from portstart to (portstart + retries -1) until either there are no more ports or the bind is successful.
`protected int` `bindUdp​(java.net.DatagramSocket socket, int portstart, int retries)` Same as bind() except it does it for the UDP port
`boolean` `doListen()`
`int` `getActiveCount()` Return the current number of threads that are in use.
`java.lang.String` `getAddress()`
`int` `getAutoBind()`
`java.net.InetAddress` `getBind()`
`Channel` `getChannel()` Return the channel that is related to this ChannelReceiver
`long` `getCompletedTaskCount()` Return the total number of tasks that have completed execution by the pool.
`boolean` `getDirect()`
`java.util.concurrent.ExecutorService` `getExecutor()`
`java.lang.String` `getHost()` String representation of the IPv4 or IPv6 address that this host is listening to.
`MessageListener` `getListener()`
`long` `getMaxIdleTime()`
`int` `getMaxTasks()`
`int` `getMaxThreads()`
`MessageListener` `getMessageListener()` getMessageListener
`int` `getMinTasks()`
`int` `getMinThreads()`
`boolean` `getOoBInline()`
`int` `getPoolSize()` Return the current number of threads that are managed by the pool.
`int` `getPort()` Returns the listening port
`int` `getRxBufSize()`
`int` `getSecurePort()` Returns the secure listening port
`long` `getSelectorTimeout()`
`boolean` `getSoKeepAlive()`
`boolean` `getSoLingerOn()`
`int` `getSoLingerTime()`
`boolean` `getSoReuseAddress()`
`int` `getSoTrafficClass()`
`long` `getTaskCount()` Return the total number of tasks that have ever been scheduled for execution by the pool.
`RxTaskPool` `getTaskPool()`
`boolean` `getTcpNoDelay()`
`int` `getTimeout()`
`int` `getTxBufSize()`
`int` `getUdpPort()` Returns the UDP port
`int` `getUdpRxBufSize()`
`int` `getUdpTxBufSize()`
`boolean` `getUseBufferPool()`
`int` `getWorkerThreadOptions()`
`void` `heartbeat()` Heartbeat invocation for resources cleanup etc
`boolean` `isDaemon()`
`boolean` `isListening()`
`void` `messageDataReceived​(ChannelMessage data)` This method is invoked on the callback object to notify it that new data has been received from one of the cluster nodes.
`void` `setAddress​(java.lang.String host)`
`void` `setAutoBind​(int autoBind)`
`void` `setBind​(java.net.InetAddress bind)`
`void` `setChannel​(Channel channel)` Set the channel that is related to this ChannelReceiver
`void` `setDaemon​(boolean daemon)`
`void` `setDirect​(boolean direct)`
`void` `setExecutor​(java.util.concurrent.ExecutorService executor)`
`void` `setHost​(java.lang.String host)`
`void` `setListen​(boolean doListen)`
`void` `setListener​(MessageListener listener)`
`void` `setMaxIdleTime​(long maxIdleTime)`
`void` `setMaxTasks​(int maxTasks)`
`void` `setMaxThreads​(int maxThreads)`
`void` `setMessageListener​(MessageListener listener)` setMessageListener
`void` `setMinTasks​(int minTasks)`
`void` `setMinThreads​(int minThreads)`
`void` `setOoBInline​(boolean ooBInline)`
`void` `setPool​(RxTaskPool pool)`
`void` `setPort​(int port)`
`void` `setRxBufSize​(int rxBufSize)`
`void` `setSecurePort​(int securePort)`
`void` `setSelectorTimeout​(long selTimeout)`
`void` `setSoKeepAlive​(boolean soKeepAlive)`
`void` `setSoLingerOn​(boolean soLingerOn)`
`void` `setSoLingerTime​(int soLingerTime)`
`void` `setSoReuseAddress​(boolean soReuseAddress)`
`void` `setSoTrafficClass​(int soTrafficClass)`
`void` `setTcpNoDelay​(boolean tcpNoDelay)`
`void` `setTimeout​(int timeout)`
`void` `setTxBufSize​(int txBufSize)`
`void` `setUdpPort​(int udpPort)`
`void` `setUdpRxBufSize​(int udpRxBufSize)`
`void` `setUdpTxBufSize​(int udpTxBufSize)`
`void` `setUseBufferPool​(boolean useBufferPool)`
`void` `start()` Start listening for incoming messages on the host/port
`void` `stop()` Stop listening for messages

### 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.RxTaskPool.TaskCreator

`createRxTask`

### Field Detail

#### OPTION_DIRECT_BUFFER

    public static final int OPTION_DIRECT_BUFFER

See Also:
  Constant Field Values

#### sm

    protected static final StringManager sm

### Constructor Detail

#### ReceiverBase

    public ReceiverBase()

### Method Detail

#### start

    public void start()
               throws java.io.IOException

Description copied from interface: `ChannelReceiver`
Start listening for incoming messages on the host/port

Specified by:
  `start` in interface `ChannelReceiver`
Throws:
  `java.io.IOException` - Listen failed

#### stop

    public void stop()

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

Specified by:
  `stop` in interface `ChannelReceiver`

#### getMessageListener

    public MessageListener getMessageListener()

getMessageListener

Specified by:
  `getMessageListener` in interface `ChannelReceiver`
Returns:
  MessageListener
See Also:
  `MessageListener`

#### getPort

    public int getPort()

Description copied from interface: `ChannelReceiver`
Returns the listening port

Specified by:
  `getPort` in interface `ChannelReceiver`
Returns:
  The port

#### getRxBufSize

    public int getRxBufSize()

#### getTxBufSize

    public int getTxBufSize()

#### setMessageListener

    public void setMessageListener​(MessageListener listener)

setMessageListener

Specified by:
  `setMessageListener` in interface `ChannelReceiver`
Parameters:
  `listener` - MessageListener
See Also:
  `MessageListener`

#### setRxBufSize

    public void setRxBufSize​(int rxBufSize)

#### setTxBufSize

    public void setTxBufSize​(int txBufSize)

#### getBind

    public java.net.InetAddress getBind()

Returns:
  Returns the bind.

#### bind

    protected void bind​(java.net.ServerSocket socket,
                        int portstart,
                        int retries)
                 throws java.io.IOException

Attempts to bind using the provided port and if that fails attempts to bind to each of the ports from portstart to (portstart + retries -1) until either there are no more ports or the bind is successful. The address to bind to is obtained via a call to {link `getBind()`.

Parameters:
  `socket` - The socket to bind
  `portstart` - Starting port for bind attempts
  `retries` - Number of times to attempt to bind (port incremented between attempts)
Throws:
  `java.io.IOException` - Socket bind error

#### bindUdp

    protected int bindUdp​(java.net.DatagramSocket socket,
                          int portstart,
                          int retries)
                   throws java.io.IOException

Same as bind() except it does it for the UDP port

Parameters:
  `socket` - The socket to bind
  `portstart` - Starting port for bind attempts
  `retries` - Number of times to attempt to bind (port incremented between attempts)
Returns:
  int The retry count
Throws:
  `java.io.IOException` - Socket bind error

#### messageDataReceived

    public void messageDataReceived​(ChannelMessage data)

Description copied from interface: `ListenCallback`
This method is invoked on the callback object to notify it that new data has been received from one of the cluster nodes.

Specified by:
  `messageDataReceived` in interface `ListenCallback`
Parameters:
  `data` - - the message bytes received from the cluster/replication system

#### getWorkerThreadOptions

    public int getWorkerThreadOptions()

#### setBind

    public void setBind​(java.net.InetAddress bind)

Parameters:
  `bind` - The bind to set.

#### getDirect

    public boolean getDirect()

#### setDirect

    public void setDirect​(boolean direct)

#### getAddress

    public java.lang.String getAddress()

#### getHost

    public java.lang.String getHost()

Description copied from interface: `ChannelReceiver`
String representation of the IPv4 or IPv6 address that this host is listening to.

Specified by:
  `getHost` in interface `ChannelReceiver`
Returns:
  the host that this receiver is listening to

#### getSelectorTimeout

    public long getSelectorTimeout()

#### doListen

    public boolean doListen()

#### getListener

    public MessageListener getListener()

#### getTaskPool

    public RxTaskPool getTaskPool()

#### getAutoBind

    public int getAutoBind()

#### getMaxThreads

    public int getMaxThreads()

#### getMinThreads

    public int getMinThreads()

#### getTcpNoDelay

    public boolean getTcpNoDelay()

#### getSoKeepAlive

    public boolean getSoKeepAlive()

#### getOoBInline

    public boolean getOoBInline()

#### getSoLingerOn

    public boolean getSoLingerOn()

#### getSoLingerTime

    public int getSoLingerTime()

#### getSoReuseAddress

    public boolean getSoReuseAddress()

#### getSoTrafficClass

    public int getSoTrafficClass()

#### getTimeout

    public int getTimeout()

#### getUseBufferPool

    public boolean getUseBufferPool()

#### getSecurePort

    public int getSecurePort()

Description copied from interface: `ChannelReceiver`
Returns the secure listening port

Specified by:
  `getSecurePort` in interface `ChannelReceiver`
Returns:
  port, -1 if a secure port is not activated

#### getMinTasks

    public int getMinTasks()

#### getMaxTasks

    public int getMaxTasks()

#### getExecutor

    public java.util.concurrent.ExecutorService getExecutor()

#### isListening

    public boolean isListening()

#### setSelectorTimeout

    public void setSelectorTimeout​(long selTimeout)

#### setListen

    public void setListen​(boolean doListen)

#### setAddress

    public void setAddress​(java.lang.String host)

#### setHost

    public void setHost​(java.lang.String host)

#### setListener

    public void setListener​(MessageListener listener)

#### setPool

    public void setPool​(RxTaskPool pool)

#### setPort

    public void setPort​(int port)

#### setAutoBind

    public void setAutoBind​(int autoBind)

#### setMaxThreads

    public void setMaxThreads​(int maxThreads)

#### setMinThreads

    public void setMinThreads​(int minThreads)

#### setTcpNoDelay

    public void setTcpNoDelay​(boolean tcpNoDelay)

#### setSoKeepAlive

    public void setSoKeepAlive​(boolean soKeepAlive)

#### setOoBInline

    public void setOoBInline​(boolean ooBInline)

#### setSoLingerOn

    public void setSoLingerOn​(boolean soLingerOn)

#### setSoLingerTime

    public void setSoLingerTime​(int soLingerTime)

#### setSoReuseAddress

    public void setSoReuseAddress​(boolean soReuseAddress)

#### setSoTrafficClass

    public void setSoTrafficClass​(int soTrafficClass)

#### setTimeout

    public void setTimeout​(int timeout)

#### setUseBufferPool

    public void setUseBufferPool​(boolean useBufferPool)

#### setSecurePort

    public void setSecurePort​(int securePort)

#### setMinTasks

    public void setMinTasks​(int minTasks)

#### setMaxTasks

    public void setMaxTasks​(int maxTasks)

#### setExecutor

    public void setExecutor​(java.util.concurrent.ExecutorService executor)

#### heartbeat

    public void heartbeat()

Description copied from interface: `Heartbeat`
Heartbeat invocation for resources cleanup etc

Specified by:
  `heartbeat` in interface `Heartbeat`

#### getUdpPort

    public int getUdpPort()

Description copied from interface: `ChannelReceiver`
Returns the UDP port

Specified by:
  `getUdpPort` in interface `ChannelReceiver`
Returns:
  port, -1 if the UDP port is not activated.

#### setUdpPort

    public void setUdpPort​(int udpPort)

#### getUdpRxBufSize

    public int getUdpRxBufSize()

#### setUdpRxBufSize

    public void setUdpRxBufSize​(int udpRxBufSize)

#### getUdpTxBufSize

    public int getUdpTxBufSize()

#### setUdpTxBufSize

    public void setUdpTxBufSize​(int udpTxBufSize)

#### getChannel

    public Channel getChannel()

Description copied from interface: `ChannelReceiver`
Return the channel that is related to this ChannelReceiver

Specified by:
  `getChannel` in interface `ChannelReceiver`
Returns:
  Channel

#### setChannel

    public void setChannel​(Channel channel)

Description copied from interface: `ChannelReceiver`
Set the channel that is related to this ChannelReceiver

Specified by:
  `setChannel` in interface `ChannelReceiver`
Parameters:
  `channel` - The channel

#### getPoolSize

    public int getPoolSize()

Return the current number of threads that are managed by the pool.

Returns:
  the current number of threads that are managed by the pool

#### getActiveCount

    public int getActiveCount()

Return the current number of threads that are in use.

Returns:
  the current number of threads that are in use

#### getTaskCount

    public long getTaskCount()

Return the total number of tasks that have ever been scheduled for execution by the pool.

Returns:
  the total number of tasks that have ever been scheduled for execution by the pool

#### getCompletedTaskCount

    public long getCompletedTaskCount()

Return the total number of tasks that have completed execution by the pool.

Returns:
  the total number of tasks that have completed execution by the pool

#### isDaemon

    public boolean isDaemon()

#### getMaxIdleTime

    public long getMaxIdleTime()

#### setDaemon

    public void setDaemon​(boolean daemon)

#### setMaxIdleTime

    public void setMaxIdleTime​(long maxIdleTime)