org.red5.server.messaging

## Interface IMessageOutput

All Known Subinterfaces:
  IBroadcastScope, IPipe

All Known Implementing Classes:
  AbstractPipe, BroadcastScope, InMemoryPullPullPipe, InMemoryPushPushPipe

    public interface IMessageOutput

Output Endpoint for a provider to connect.

Author:
  The Red5 Project (red5@osflash.org), Steven Gong (steven.gong@gmail.com)

### Method Summary

Methods
`List<IProvider>` `getProviders()` Getter for providers
`void` `pushMessage(IMessage message)` Push a message to this output endpoint.
`void` `sendOOBControlMessage(IProvider provider, OOBControlMessage oobCtrlMsg)` Send OOB Control Message to all consumers on the other side of pipe.
`boolean` `subscribe(IProvider provider, Map<String,Object> paramMap)` Connect to a provider.
`boolean` `unsubscribe(IProvider provider)` Disconnect from a provider.

### Method Detail

#### pushMessage

    void pushMessage(IMessage message)
                     throws IOException

Push a message to this output endpoint. May block the pusher when output can't handle the message at the time.

Parameters:
  `message` - Message to be pushed.
Throws:
  `IOException` - If message could not be written.

#### subscribe

    boolean subscribe(IProvider provider,
                    Map<String,Object> paramMap)

Connect to a provider. Note that params passed has nothing to deal with NetConnection.connect in client-side Flex/Flash RIA.

Parameters:
  `provider` - Provider
  `paramMap` - Parameters passed with connection
Returns:
  `true` when successfully subscribed, `false` otherwise.

#### unsubscribe

    boolean unsubscribe(IProvider provider)

Disconnect from a provider.

Parameters:
  `provider` - Provider
Returns:
  `true` when successfully unsubscribed, `false` otherwise.

#### getProviders

    List<IProvider> getProviders()

Getter for providers

Returns:
  Providers

#### sendOOBControlMessage

    void sendOOBControlMessage(IProvider provider,
                             OOBControlMessage oobCtrlMsg)

Send OOB Control Message to all consumers on the other side of pipe.

Parameters:
  `provider` - The provider that sends the message
  `oobCtrlMsg` - Out-of-band control message