org.jgroups

## Class StreamingSetStateEvent

- java.lang.Object
- - org.jgroups.StreamingSetStateEvent

    public class StreamingSetStateEvent
    extends java.lang.Object

Represents an event returned by `channel.receive()`, as requested by `channel.getState()` previously.

Allows applications using a channel in a pull mode to receive a state from another channel instance providing state. 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 demonstrate how to pull events from a channel, processing `StreamingSetStateEvent` and retrieving hypothetical state in the form of LinkedList from event's `InputStream` reference.

>       Object obj=channel.receive(0);
>       if(obj instanceof StreamingSetStateEvent) {
>             StreamingSetStateEvent evt=(StreamingSetStateEvent)obj;
>             ObjectInputStream ois = null;
>                     try {
>                             ois = new ObjectInputStream(evt.getArg());
>                             state = (LinkedList)ois.readObject();
>                     } catch (Exception e) {}
>                     finally
>                     {
>                             try {
>                                     ois.close();
>                             } catch (IOException e) {
>                                     System.err.println(e);
>                             }
>                     }
>        }

Since:
  2.4
Author:
  Vladimir Blagojevic
See Also:
  `JChannel.getState(Address, long)`, `org.jgroups.StreamingMessageListener#setState(InputStream)`

### Constructor Summary

Constructors
Constructor and Description
`StreamingSetStateEvent(java.io.InputStream is, java.lang.String state_id)`

### Method Summary

Methods
`java.io.InputStream` `getArg()` Returns InputStream used for reading 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

#### StreamingSetStateEvent

    public StreamingSetStateEvent(java.io.InputStream is,
                          java.lang.String state_id)

### Method Detail

#### getArg

    public java.io.InputStream getArg()

Returns InputStream used for reading of a state.

Returns:
  the InputStream

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