Class InMemoryPushPushPipe

java.lang.Object
org.red5.server.messaging.AbstractPipe
org.red5.server.messaging.InMemoryPushPushPipe
All Implemented Interfaces:
IMessageInput, IMessageOutput, IPipe

public class InMemoryPushPushPipe extends AbstractPipe
A simple in-memory version of push-push pipe. It is triggered by an active provider to push messages through it to an event-driven consumer.
Author:
Steven Gong (steven.gong@gmail.com), Paul Gregoire (mondain@gmail.com)
  • Field Details

    • log

      private static final org.slf4j.Logger log
  • Constructor Details

    • InMemoryPushPushPipe

      public InMemoryPushPushPipe()
    • InMemoryPushPushPipe

      public InMemoryPushPushPipe(IPipeConnectionListener listener)
  • Method Details

    • subscribe

      public boolean subscribe(IConsumer consumer, Map<String,Object> paramMap)
      Connect consumer to this pipe. Doesn't allow to connect one consumer twice. Does register event listeners if instance of IPipeConnectionListener is given.
      Specified by:
      subscribe in interface IMessageInput
      Overrides:
      subscribe in class AbstractPipe
      Parameters:
      consumer - Consumer
      paramMap - Parameters passed with connection, used in concrete pipe implementations
      Returns:
      true if consumer was added, false otherwise
    • subscribe

      public boolean subscribe(IProvider provider, Map<String,Object> paramMap)
      Connect provider to this pipe. Doesn't allow to connect one provider twice. Does register event listeners if instance of IPipeConnectionListener is given.
      Specified by:
      subscribe in interface IMessageOutput
      Overrides:
      subscribe in class AbstractPipe
      Parameters:
      provider - Provider
      paramMap - Parameters passed with connection, used in concrete pipe implementations
      Returns:
      true if provider was added, false otherwise
    • pullMessage

      public IMessage pullMessage()
      Pull message from this input endpoint. Return w/o waiting.
      Returns:
      The pulled message or null if message is not available.
    • pullMessage

      public IMessage pullMessage(long wait)
      Pull message from this input endpoint. Wait wait milliseconds if message is not available.
      Parameters:
      wait - milliseconds to wait when message is not available.
      Returns:
      The pulled message or null if message is not available.
    • pushMessage

      public void pushMessage(IMessage message) throws IOException
      Pushes a message out to all the PushableConsumers.
      Parameters:
      message - the message to be pushed to consumers
      Throws:
      IOException - In case IOException of some sort is occurred