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
    Modifier and Type | Method and Description
    --- | ---
    `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.