org.jgroups

## Interface ExtendedMessageListener

All Superinterfaces:
  MessageListener

All Known Subinterfaces:
  ExtendedReceiver

All Known Implementing Classes:
  Draw, ExtendedReceiverAdapter, MessageListenerAdapter, ReplicatedHashMap

    public interface ExtendedMessageListener
    extends MessageListener

`ExtendedMessageListener` has additional callbacks for:

- partial state transfer - http://jira.jboss.com/jira/browse/JGRP-118
- streaming state transfer - http://jira.jboss.com/jira/browse/JGRP-89

Application channels interested in using streaming state transfer, beside implementing this interface, have to be configured with `STREAMING_STATE_TRANSFER` protocol rather than the default `STATE_TRANSFER` protocol.

Note:

This interface will be merged with MessageListener in 3.0 (API changes)

Since:
  2.3
Author:
  Bela Ban, Vladimir Blagojevic
See Also:
  `JChannel.getState(Address, long)`, `JChannel.getState(Address, String, long)`

### Method Summary

Methods
`void` `getState(java.io.OutputStream ostream)` Allows an application to write a state through a provided OutputStream.
`byte[]` `getState(java.lang.String state_id)` Allows an application to provide a partial state as a byte array
`void` `getState(java.lang.String state_id, java.io.OutputStream ostream)` Allows an application to write a partial state through a provided OutputStream.
`void` `setState(java.io.InputStream istream)` Allows an application to read a state through a provided InputStream.
`void` `setState(java.lang.String state_id, byte[] state)` Allows an application to read a partial state indicated by state_id from a given state byte array parameter.
`void` `setState(java.lang.String state_id, java.io.InputStream istream)` Allows an application to read a partial state through a provided InputStream.

### Methods inherited from interface org.jgroups.MessageListener

`getState, receive, setState`

### Method Detail

#### getState

    byte[] getState(java.lang.String state_id)

Allows an application to provide a partial state as a byte array

Parameters:
  `state_id` - id of the partial state requested
Returns:
  partial state for the given state_id

#### setState

    void setState(java.lang.String state_id,
                byte[] state)

Allows an application to read a partial state indicated by state_id from a given state byte array parameter.

Parameters:
  `state_id` - id of the partial state requested
  `state` - partial state for the given state_id

#### getState

    void getState(java.io.OutputStream ostream)

Allows an application to write a state through a provided OutputStream. An application is obligated to always close the given OutputStream reference.

Parameters:
  `ostream` - the OutputStream
See Also:
  `OutputStream.close()`

#### getState

    void getState(java.lang.String state_id,
                java.io.OutputStream ostream)

Allows an application to write a partial state through a provided OutputStream. An application is obligated to always close the given OutputStream reference.

Parameters:
  `state_id` - id of the partial state requested
  `ostream` - the OutputStream
See Also:
  `OutputStream.close()`

#### setState

    void setState(java.io.InputStream istream)

Allows an application to read a state through a provided InputStream. An application is obligated to always close the given InputStream reference.

Parameters:
  `istream` - the InputStream
See Also:
  `InputStream.close()`

#### setState

    void setState(java.lang.String state_id,
                java.io.InputStream istream)

Allows an application to read a partial state through a provided InputStream. An application is obligated to always close the given InputStream reference.

Parameters:
  `state_id` - id of the partial state requested
  `istream` - the InputStream
See Also:
  `InputStream.close()`