public class MessageDispatchInterceptor extends ChannelInterceptorBase implements Runnable
Channel.SEND_OPTIONS_ASYNCHRONOUS
flag to be set, if it is, it will queue the message for delivery and immediately return to the sender.ChannelInterceptor.InterceptorEvent
Modifier and Type | Field and Description |
---|---|
protected boolean |
alwaysSend |
protected long |
currentSize |
protected long |
maxQueueSize |
protected Thread |
msgDispatchThread |
protected FastQueue |
queue |
protected boolean |
run |
protected boolean |
useDeepClone |
optionFlag
Constructor and Description |
---|
MessageDispatchInterceptor() |
Modifier and Type | Method and Description |
---|---|
long |
addAndGetCurrentSize(long inc) |
boolean |
addToQueue(ChannelMessage msg,
Member[] destination,
InterceptorPayload payload) |
long |
getCurrentSize() |
long |
getMaxQueueSize() |
boolean |
getUseDeepClone() |
boolean |
isAlwaysSend() |
LinkObject |
removeFromQueue() |
void |
run() |
protected LinkObject |
sendAsyncData(LinkObject link) |
void |
sendMessage(Member[] destination,
ChannelMessage msg,
InterceptorPayload payload)
The
sendMessage method is called when a message is being sent to one more destinations. |
void |
setAlwaysSend(boolean alwaysSend) |
long |
setAndGetCurrentSize(long value) |
void |
setMaxQueueSize(long maxQueueSize) |
void |
setOptionFlag(int flag)
Sets the option flag
|
void |
setUseDeepClone(boolean useDeepClone) |
void |
start(int svc)
Starts up the channel.
|
void |
startQueue() |
void |
stop(int svc)
Shuts down the channel.
|
void |
stopQueue() |
accept, fireInterceptorEvent, getChannel, getLocalMember, getMember, getMembers, getNext, getOptionFlag, getPrevious, hasMembers, heartbeat, memberAdded, memberDisappeared, messageReceived, okToProcess, setChannel, setNext, setPrevious
protected long maxQueueSize
protected FastQueue queue
protected volatile boolean run
protected Thread msgDispatchThread
protected long currentSize
protected boolean useDeepClone
protected boolean alwaysSend
public void sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException
ChannelInterceptor
sendMessage
method is called when a message is being sent to one more destinations.
The interceptor can modify any of the parameters and then pass on the message down the stack by
invoking getNext().sendMessage(destination,msg,payload)
getNext().sendMessage(destination,msg,payload)
sendMessage
in interface ChannelInterceptor
sendMessage
in class ChannelInterceptorBase
destination
- Member[] - the destination for this messagemsg
- ChannelMessage - the message to be sentpayload
- InterceptorPayload - the payload, carrying an error handler and future useful data, can be nullChannelException
- if a serialization error happens.ErrorHandler
,
InterceptorPayload
public boolean addToQueue(ChannelMessage msg, Member[] destination, InterceptorPayload payload)
public LinkObject removeFromQueue()
public void startQueue()
public void stopQueue()
public void setOptionFlag(int flag)
ChannelInterceptor
setOptionFlag
in interface ChannelInterceptor
setOptionFlag
in class ChannelInterceptorBase
flag
- intChannelInterceptor.getOptionFlag()
public void setMaxQueueSize(long maxQueueSize)
public void setUseDeepClone(boolean useDeepClone)
public long getMaxQueueSize()
public boolean getUseDeepClone()
public long getCurrentSize()
public long addAndGetCurrentSize(long inc)
public long setAndGetCurrentSize(long value)
public void start(int svc) throws ChannelException
ChannelInterceptorBase
start
in interface ChannelInterceptor
start
in class ChannelInterceptorBase
svc
- int value of ChannelException
- if a startup error occurs or the service is already started.Channel
public void stop(int svc) throws ChannelException
ChannelInterceptorBase
stop
in interface ChannelInterceptor
stop
in class ChannelInterceptorBase
svc
- int value of ChannelException
- if a startup error occurs or the service is already started.Channel
protected LinkObject sendAsyncData(LinkObject link)
public boolean isAlwaysSend()
public void setAlwaysSend(boolean alwaysSend)
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.