Package org.apache.catalina.tribes
Interface ChannelInterceptor
- All Superinterfaces:
- Heartbeat,- MembershipListener
- All Known Implementing Classes:
- ChannelCoordinator,- ChannelInterceptorBase,- DomainFilterInterceptor,- EncryptInterceptor,- FragmentationInterceptor,- GroupChannel,- GzipInterceptor,- MessageDispatchInterceptor,- NonBlockingCoordinator,- OrderInterceptor,- SimpleCoordinator,- StaticMembershipInterceptor,- TcpFailureDetector,- TcpPingInterceptor,- ThroughputInterceptor,- TwoPhaseCommitInterceptor
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.
Interceptors are tied together in a linked list.
- See Also:
- 
Nested Class SummaryNested Classes
- 
Method SummaryModifier and TypeMethodDescriptionvoidReturn the channel that is related to this interceptorgetLocalMember(boolean incAliveTime) Intercepts theChannel.getLocalMember(boolean)methodIntercepts theChannel.getMember(Member)methodMember[]Intercepts theChannel.getMembers()methodgetNext()Retrieve the next interceptor in the listintAn interceptor can react to a message based on a set bit on the message options.Retrieve the previous interceptor in the listbooleanIntercepts theChannel.hasMembers()methodvoidTheheartbeat()method gets invoked periodically to allow interceptors to clean up resources, time out object and perform actions that are unrelated to sending/receiving data.voidthemessageReceivedis invoked when a message is received.voidsendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) ThesendMessagemethod is called when a message is being sent to one more destinations.voidsetChannel(Channel channel) Set the channel that is related to this interceptorvoidsetNext(ChannelInterceptor next) Set the next interceptor in the list of interceptorsvoidsetOptionFlag(int flag) Sets the option flagvoidsetPrevious(ChannelInterceptor previous) Set the previous interceptor in the listvoidstart(int svc) Starts up the channel.voidstop(int svc) Shuts down the channel.Methods inherited from interface org.apache.catalina.tribes.MembershipListenermemberAdded, memberDisappeared
- 
Method Details- 
getOptionFlagint getOptionFlag()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.- Returns:
- int
- See Also:
 
- 
setOptionFlagvoid setOptionFlag(int flag) Sets the option flag- Parameters:
- flag- int
- See Also:
 
- 
setNextSet the next interceptor in the list of interceptors- Parameters:
- next- ChannelInterceptor
 
- 
getNextChannelInterceptor getNext()Retrieve the next interceptor in the list- Returns:
- ChannelInterceptor - returns the next interceptor in the list or null if no more interceptors exist
 
- 
setPreviousSet the previous interceptor in the list- Parameters:
- previous- ChannelInterceptor
 
- 
getPreviousChannelInterceptor getPrevious()Retrieve the previous interceptor in the list- Returns:
- ChannelInterceptor - returns the previous interceptor in the list or null if no more interceptors exist
 
- 
sendMessagevoid sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException ThesendMessagemethod 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 invokinggetNext().sendMessage(destination,msg,payload)
 Alternatively the interceptor can stop the message from being sent by not invokinggetNext().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
- msg- ChannelMessage - the message to be sent
- payload- InterceptorPayload - the payload, carrying an error handler and future useful data, can be null
- Throws:
- ChannelException- if a serialization error happens.
- See Also:
 
- 
messageReceivedthemessageReceivedis invoked when a message is received.ChannelMessage.getAddress()is the sender, or the reply-to address if it has been overwritten.- Parameters:
- data- ChannelMessage
 
- 
heartbeatvoid heartbeat()Theheartbeat()method gets invoked periodically to allow interceptors to clean up resources, time out object and perform actions that are unrelated to sending/receiving data.
- 
hasMembersboolean hasMembers()Intercepts theChannel.hasMembers()method- Returns:
- boolean - if the channel has members in its membership group
- See Also:
 
- 
getMembersMember[] getMembers()Intercepts theChannel.getMembers()method- Returns:
- Member[]
- See Also:
 
- 
getLocalMemberIntercepts theChannel.getLocalMember(boolean)method- Parameters:
- incAliveTime- boolean
- Returns:
- Member
- See Also:
 
- 
getMemberIntercepts theChannel.getMember(Member)method- Parameters:
- mbr- Member
- Returns:
- Member - the actual member information, including stay alive
- See Also:
 
- 
startStarts 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:
 
- 
stopShuts 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:
 
- 
fireInterceptorEvent
- 
getChannelChannel getChannel()Return the channel that is related to this interceptor- Returns:
- Channel
 
- 
setChannelSet the channel that is related to this interceptor- Parameters:
- channel- The channel
 
 
-