org.jgroups.blocks

Class MessageListenerAdapter

public class MessageListenerAdapter extends Object implements MessageListener

This class provides multiplexing possibilities for MessageListener instances. Usually, we have more than one instance willing to listen to incoming messages, but only one that can produce state for group. PullPushAdapter allows only one instance of MessageListener to be registered for message notification. With help of this class you can overcome this limitation.

Author: Roman Rokytskyy (rrokytskyy@acm.org)

Field Summary
protected HashSetmessageListeners
protected MessageListener[]messageListenersCache
protected MessageListenerstateListener
Constructor Summary
MessageListenerAdapter()
Create default instance of this class.
MessageListenerAdapter(MessageListener mainListener)
Create instance of this class.
Method Summary
voidaddMessageListener(MessageListener listener)
Add message listener to this adapter.
byte[]getState()
Get state from state listener if present.
voidreceive(Message msg)
Receive message from group.
voidremoveMessageListener(MessageListener listener)
Remove message listener from this adapter.
voidsetState(byte[] state)
Set state of ths group.
voidsetStateListener(MessageListener listener)
Register listener for state notification events.

Field Detail

messageListeners

protected final HashSet messageListeners

messageListenersCache

protected MessageListener[] messageListenersCache

stateListener

protected MessageListener stateListener

Constructor Detail

MessageListenerAdapter

public MessageListenerAdapter()
Create default instance of this class. Newly created instance will have no message or state listeners. You have to use addMessageListener or removeMessageListener to add or remove message listeners, and setStateListener to set listener that will participate in state transfer.

MessageListenerAdapter

public MessageListenerAdapter(MessageListener mainListener)
Create instance of this class. mainListener is a main listener instance that received message notifications and can get and set group state.

Parameters: mainListener instance of MessageListener that will provide state messages.

Method Detail

addMessageListener

public void addMessageListener(MessageListener listener)
Add message listener to this adapter. This method registers listener for message notification.

Note, state notification will not be used.

getState

public byte[] getState()
Get state from state listener if present.

Returns: current state of the group state or null if no state listeners were registered.

receive

public void receive(Message msg)
Receive message from group. This method will send this message to each message listener that was registered in this adapter.

Parameters: msg message to distribute within message listeners.

removeMessageListener

public void removeMessageListener(MessageListener listener)
Remove message listener from this adapter. This method deregisters listener from message notification.

setState

public void setState(byte[] state)
Set state of ths group. This method will delegate call to state listener if it was previously registered.

setStateListener

public void setStateListener(MessageListener listener)
Register listener for state notification events. There can be only one state listener per adapter.
Copyright ? 1998-2005 Bela Ban. All Rights Reserved.