public class StreamingGetStateEvent
extends java.lang.Object
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);
}
}
}
JChannel.getState(Address, long),
org.jgroups.StreamingMessageListener#getState(OutputStream)| Constructor and Description |
|---|
StreamingGetStateEvent(java.io.OutputStream os,
java.lang.String state_id) |
| 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.
|
public StreamingGetStateEvent(java.io.OutputStream os,
java.lang.String state_id)
public java.io.OutputStream getArg()
public java.lang.String getStateId()
JChannel.getState(Address, long),
JChannel.getState(Address, String, long)Copyright ? 1998-2008 Bela Ban. All Rights Reserved.