| org.apache.catalina.tribes.ChannelInterceptor
All known Subclasses: org.apache.catalina.tribes.group.ChannelInterceptorBase,
ChannelInterceptor | public interface ChannelInterceptor extends MembershipListener,Heartbeat(Code) | | A ChannelInterceptor is an interceptor that intercepts
messages and membership messages in the channel stack.
This allows interceptors to modify the message or perform
other actions when a message is sent or received.
Interceptors are tied together in a linked list.
See Also: org.apache.catalina.tribes.group.ChannelInterceptorBase author: Filip Hanik version: $Revision: 467222 $, $Date: 2006-10-24 05:17:11 +0200 (mar., 24 oct. 2006) $ |
Inner Class :interface InterceptorEvent | |
fireInterceptorEvent | public void fireInterceptorEvent(InterceptorEvent event)(Code) | | |
getMember | public Member getMember(Member mbr)(Code) | | Intercepts the code>Channel.getMember(Member) method
Parameters: mbr - Member Member - the actual member information, including stay alive See Also: Channel.getMember(Member) |
getNext | public ChannelInterceptor getNext()(Code) | | Retrieve the next interceptor in the list
ChannelInterceptor - returns the next interceptor in the list or null if no more interceptors exist |
getOptionFlag | public int getOptionFlag()(Code) | | An interceptor can react to a message based on a set bit on the
message options.
When a message is sent, the options can be retrieved from ChannelMessage.getOptions()
and if the bit is set, this interceptor will react to it.
A simple evaluation if an interceptor should react to the message would be:
boolean react = (getOptionFlag() == (getOptionFlag() & ChannelMessage.getOptions()));
The default option is 0, meaning there is no way for the application to trigger the
interceptor. The interceptor itself will decide.
int See Also: ChannelMessage.getOptions |
getPrevious | public ChannelInterceptor getPrevious()(Code) | | Retrieve the previous interceptor in the list
ChannelInterceptor - returns the previous interceptor in the list or null if no more interceptors exist |
hasMembers | public boolean hasMembers()(Code) | | Intercepts the Channel.hasMembers() method
boolean - if the channel has members in its membership group See Also: Channel.hasMembers |
heartbeat | public void heartbeat()(Code) | | The heartbeat() method gets invoked periodically
to allow interceptors to clean up resources, time out object and
perform actions that are unrelated to sending/receiving data.
|
messageReceived | public void messageReceived(ChannelMessage data)(Code) | | the messageReceived is invoked when a message is received.
ChannelMessage.getAddress() is the sender, or the reply-to address
if it has been overwritten.
Parameters: data - ChannelMessage |
sendMessage | public void sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException(Code) | | The 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)
Alternatively the interceptor can stop the message from being sent by not invoking
getNext().sendMessage(destination,msg,payload)
If the message is to be sent asynchronous the application can be notified of completion and
errors by passing in an error handler attached to a payload object.
The ChannelMessage.getAddress contains Channel.getLocalMember, and can be overwritten
to simulate a message sent from another node.
Parameters: destination - Member[] - the destination for this message Parameters: msg - ChannelMessage - the message to be sent Parameters: payload - InterceptorPayload - the payload, carrying an error handler and future useful data, can be null throws: ChannelException - See Also: ErrorHandler See Also: InterceptorPayload |
setNext | public void setNext(ChannelInterceptor next)(Code) | | Set the next interceptor in the list of interceptors
Parameters: next - ChannelInterceptor |
setPrevious | public void setPrevious(ChannelInterceptor previous)(Code) | | Set the previous interceptor in the list
Parameters: previous - ChannelInterceptor |
start | public void start(int svc) throws ChannelException(Code) | | Starts up the channel. This can be called multiple times for individual services to start
The svc parameter can be the logical or value of any constants
Parameters: svc - int value of Channel.DEFAULT - will start all services Channel.MBR_RX_SEQ - starts the membership receiver Channel.MBR_TX_SEQ - starts the membership broadcaster Channel.SND_TX_SEQ - starts the replication transmitter Channel.SND_RX_SEQ - starts the replication receiver
throws: ChannelException - if a startup error occurs or the service is already started. See Also: Channel |
stop | public void stop(int svc) throws ChannelException(Code) | | Shuts down the channel. This can be called multiple times for individual services to shutdown
The svc parameter can be the logical or value of any constants
Parameters: svc - int value of Channel.DEFAULT - will shutdown all services Channel.MBR_RX_SEQ - stops the membership receiver Channel.MBR_TX_SEQ - stops the membership broadcaster Channel.SND_TX_SEQ - stops the replication transmitter Channel.SND_RX_SEQ - stops the replication receiver
throws: ChannelException - if a startup error occurs or the service is already started. See Also: Channel |
|
|