Package org.jgroups

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: