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

Constructors
Constructor and Description
`StreamingGetStateEvent(java.io.OutputStream os, java.lang.String state_id)`

### Method Summary

Methods
`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)`