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 Object
implements ChannelReceiver, ListenCallback, RxTaskPool.TaskCreator
-
Field Summary
Fields inherited from interface org.apache.catalina.tribes.ChannelReceiver
MAX_UDP_SIZE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
bind
(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
(DatagramSocket socket, int portstart, int retries) Same as bind() except it does it for the UDP portboolean
doListen()
int
Return the current number of threads that are in use.int
getBind()
Return the channel that is related to this ChannelReceiverlong
Return the total number of tasks that have completed execution by the pool.boolean
getHost()
String representation of the IPv4 or IPv6 address that this host is listening to.long
int
int
Returns the message listener that is associated with this receiverint
int
boolean
int
Return the current number of threads that are managed by the pool.int
getPort()
Returns the listening portint
int
Returns the secure listening portlong
boolean
boolean
int
boolean
int
long
Return the total number of tasks that have ever been scheduled for execution by the pool.boolean
int
int
int
Returns the UDP portint
int
boolean
int
void
Heartbeat invocation for resources cleanup etcboolean
isDaemon()
boolean
void
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
(String host) void
setAutoBind
(int autoBind) void
setBind
(InetAddress bind) void
setChannel
(Channel channel) Set the channel that is related to this ChannelReceivervoid
setDaemon
(boolean daemon) void
setDirect
(boolean direct) void
setExecutor
(ExecutorService executor) void
void
setListen
(boolean doListen) void
setListener
(MessageListener listener) void
setMaxIdleTime
(long maxIdleTime) void
setMaxTasks
(int maxTasks) void
setMaxThreads
(int maxThreads) void
setMessageListener
(MessageListener listener) Sets the message listener to receive notification of incomingvoid
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/portvoid
stop()
Stop listening for messagesMethods 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 Details
-
OPTION_DIRECT_BUFFER
public static final int OPTION_DIRECT_BUFFER- See Also:
-
sm
-
-
Constructor Details
-
ReceiverBase
public ReceiverBase()
-
-
Method Details
-
start
Description copied from interface:ChannelReceiver
Start listening for incoming messages on the host/port- Specified by:
start
in interfaceChannelReceiver
- Throws:
IOException
- Listen failed
-
stop
public void stop()Description copied from interface:ChannelReceiver
Stop listening for messages- Specified by:
stop
in interfaceChannelReceiver
-
getMessageListener
Description copied from interface:ChannelReceiver
Returns the message listener that is associated with this receiver- Specified by:
getMessageListener
in interfaceChannelReceiver
- Returns:
- MessageListener
- See Also:
-
getPort
public int getPort()Description copied from interface:ChannelReceiver
Returns the listening port- Specified by:
getPort
in interfaceChannelReceiver
- Returns:
- port
-
getRxBufSize
public int getRxBufSize() -
getTxBufSize
public int getTxBufSize() -
setMessageListener
Description copied from interface:ChannelReceiver
Sets the message listener to receive notification of incoming- Specified by:
setMessageListener
in interfaceChannelReceiver
- Parameters:
listener
- MessageListener- See Also:
-
setRxBufSize
public void setRxBufSize(int rxBufSize) -
setTxBufSize
public void setTxBufSize(int txBufSize) -
getBind
- Returns:
- Returns the bind.
-
bind
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 {linkgetBind()
.- Parameters:
socket
- The socket to bindportstart
- Starting port for bind attemptsretries
- Number of times to attempt to bind (port incremented between attempts)- Throws:
IOException
- Socket bind error
-
bindUdp
Same as bind() except it does it for the UDP port- Parameters:
socket
- The socket to bindportstart
- Starting port for bind attemptsretries
- Number of times to attempt to bind (port incremented between attempts)- Returns:
- int The retry count
- Throws:
IOException
- Socket bind error
-
messageDataReceived
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 interfaceListenCallback
- Parameters:
data
- - the message bytes received from the cluster/replication system
-
getWorkerThreadOptions
public int getWorkerThreadOptions() -
setBind
- Parameters:
bind
- The bind to set.
-
getDirect
public boolean getDirect() -
setDirect
public void setDirect(boolean direct) -
getAddress
-
getHost
Description copied from interface:ChannelReceiver
String representation of the IPv4 or IPv6 address that this host is listening to.- Specified by:
getHost
in interfaceChannelReceiver
- Returns:
- the host that this receiver is listening to
-
getSelectorTimeout
public long getSelectorTimeout() -
doListen
public boolean doListen() -
getListener
-
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 interfaceChannelReceiver
- Returns:
- port, -1 if a secure port is not activated
-
getMinTasks
public int getMinTasks() -
getMaxTasks
public int getMaxTasks() -
getExecutor
-
isListening
public boolean isListening() -
setSelectorTimeout
public void setSelectorTimeout(long selTimeout) -
setListen
public void setListen(boolean doListen) -
setAddress
-
setHost
-
setListener
-
setPool
-
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
-
heartbeat
public void heartbeat()Description copied from interface:Heartbeat
Heartbeat invocation for resources cleanup etc -
getUdpPort
public int getUdpPort()Description copied from interface:ChannelReceiver
Returns the UDP port- Specified by:
getUdpPort
in interfaceChannelReceiver
- 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
Description copied from interface:ChannelReceiver
Return the channel that is related to this ChannelReceiver- Specified by:
getChannel
in interfaceChannelReceiver
- Returns:
- Channel
-
setChannel
Description copied from interface:ChannelReceiver
Set the channel that is related to this ChannelReceiver- Specified by:
setChannel
in interfaceChannelReceiver
- 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)
-