Class StreamingGetStateEvent

java.lang.Object
org.jgroups.StreamingGetStateEvent

public class StreamingGetStateEvent extends Object
Represents an event returned by channel.receive(), as a result of another channel instance requesting a state from this channel. Other channel has to invoke channel.getState() indicating intent of state retrieval.

Allows applications using a channel in a pull mode to receive StreamingGetStateEvent event and thus provide state to requsting channel instance. Channels have to be configured with STREAMING_STATE_TRANSFER protocol rather than the default STATE_TRANSFER protocol in order to receive this event

The following code demonstrates how to pull events from a channel, processing StreamingGetStateEvent and sending hypothetical state through OutputStream reference.

 Object obj=channel.receive(0);
 if(obj instanceof StreamingGetStateEvent) {
        StreamingGetStateEvent evt=(StreamingGetStateEvent)obj;
        OutputStream oos = null;
        try {                   
                oos = new ObjectOutputStream(evt.getArg());                     
                oos.writeObject(state);   
        oos.flush();
        } catch (Exception e) {} 
        finally
        {
                try {                           
                        oos.close();
                } catch (IOException e) {
                        System.err.println(e);
                }
        }                
  }
Since:
2.4
Author:
Vladimir Blagojevic
See Also: