## org.jgroups
Class StreamingGetStateEvent

    java.lang.Object
      org.jgroups.StreamingGetStateEvent

    public class StreamingGetStateEvent

extends java.lang.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:
  `JChannel.getState(Address, long)`, `org.jgroups.StreamingMessageListener#getState(OutputStream)`

Constructor Summary
`StreamingGetStateEvent(java.io.OutputStream os, java.lang.String state_id)`

Method Summary
`java.io.OutputStream` `getArg()` Returns OutputStream used for writing of a state.
`java.lang.String` `getStateId()` Returns id of the partial state if partial state was requested.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### StreamingGetStateEvent

    public StreamingGetStateEvent(java.io.OutputStream os,
                                  java.lang.String state_id)

Method Detail

### getArg

    public java.io.OutputStream getArg()

  Returns OutputStream used for writing of a state.

  Returns:
    the OutputStream

### getStateId

    public java.lang.String getStateId()

  Returns id of the partial state if partial state was requested. If full state transfer was requested this method will return null.

  Returns:
    partial state id
  See Also:
    `JChannel.getState(Address, long)`, `JChannel.getState(Address, String, long)`

Copyright © 1998-2009 Bela Ban / Red Hat. All Rights Reserved.