org.atmosphere.cpr
Class MetaBroadcaster

java.lang.Object
  extended by org.atmosphere.cpr.MetaBroadcaster

public class MetaBroadcaster
extends Object

Broadcast events to all or a subset of available Broadcasters based on their Broadcaster.getID() value. This class allows broadcasting events to a set of broadcasters that maps to some String like:

        // Broadcast the event to all Broadcaster ID starting with /hello
        broadcast("/hello", event)
        // Broadcast the event to all Broadcaster ID
        broaccast("/*", event);
 
The rule used is similar to path/URI mapping used by technology like Servlet, Jersey, etc.

NOTE: Broadcasters' name must start with / in order to get retrieved by this class.

This class is NOT thread safe.

If you want to use MetaBroadcaster with Jersey or any framework, make sure all Broadcaster.getID() starts with '/'. For example, with Jersey:

Author:
Jeanfrancois Arcand

Field Summary
static String MAPPING_REGEX
           
 
Constructor Summary
MetaBroadcaster()
           
 
Method Summary
 MetaBroadcaster addBroadcasterListener(BroadcasterListener b)
          Add a BroadcasterListener to all mapped Broadcasters.
protected  org.atmosphere.cpr.MetaBroadcaster.MetaBroadcasterFuture broadcast(String path, Object message, int time, TimeUnit unit, boolean delay)
           
 Future<List<Broadcaster>> broadcastTo(String broadcasterID, Object message)
          Broadcast the message to all Broadcasters whose Broadcaster.getID() matches the broadcasterID value.
 Future<List<Broadcaster>> delayTo(String broadcasterID, Object message, int time, TimeUnit unit)
          Delay the message delivery to Broadcasters whose Broadcaster.getID() matches the broadcasterID value.
static MetaBroadcaster getDefault()
           
protected  org.atmosphere.cpr.MetaBroadcaster.MetaBroadcasterFuture map(String path, Object message, int time, TimeUnit unit, boolean delay)
           
 MetaBroadcaster removeBroadcasterListener(BroadcasterListener b)
          Remove the BroadcasterListener.
 Future<List<Broadcaster>> scheduleTo(String broadcasterID, Object message, int time, TimeUnit unit)
          Broadcast the message at a fixed rate to all Broadcasters whose Broadcaster.getID() matches the broadcasterID value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAPPING_REGEX

public static final String MAPPING_REGEX
See Also:
Constant Field Values
Constructor Detail

MetaBroadcaster

public MetaBroadcaster()
Method Detail

broadcast

protected org.atmosphere.cpr.MetaBroadcaster.MetaBroadcasterFuture broadcast(String path,
                                                                             Object message,
                                                                             int time,
                                                                             TimeUnit unit,
                                                                             boolean delay)

map

protected org.atmosphere.cpr.MetaBroadcaster.MetaBroadcasterFuture map(String path,
                                                                       Object message,
                                                                       int time,
                                                                       TimeUnit unit,
                                                                       boolean delay)

broadcastTo

public Future<List<Broadcaster>> broadcastTo(String broadcasterID,
                                             Object message)
Broadcast the message to all Broadcasters whose Broadcaster.getID() matches the broadcasterID value.

Parameters:
broadcasterID - a String (or path) that can potentially match a Broadcaster.getID()
message - a message to be broadcasted
Returns:
a Future

scheduleTo

public Future<List<Broadcaster>> scheduleTo(String broadcasterID,
                                            Object message,
                                            int time,
                                            TimeUnit unit)
Broadcast the message at a fixed rate to all Broadcasters whose Broadcaster.getID() matches the broadcasterID value. This operation will invoke Broadcaster.scheduleFixedBroadcast(Object, long, java.util.concurrent.TimeUnit)}

Parameters:
broadcasterID - a String (or path) that can potentially match a Broadcaster.getID()
message - a message to be broadcasted
time - a time value
unit - a TimeUnit
Returns:
a Future

delayTo

public Future<List<Broadcaster>> delayTo(String broadcasterID,
                                         Object message,
                                         int time,
                                         TimeUnit unit)
Delay the message delivery to Broadcasters whose Broadcaster.getID() matches the broadcasterID value. This operation will invoke Broadcaster.delayBroadcast(Object, long, java.util.concurrent.TimeUnit) (Object, long, java.util.concurrent.TimeUnit)}}

Parameters:
broadcasterID - a String (or path) that can potentially match a Broadcaster.getID()
message - a message to be broadcasted
time - a time value
unit - a TimeUnit
Returns:
a Future

getDefault

public static final MetaBroadcaster getDefault()

addBroadcasterListener

public MetaBroadcaster addBroadcasterListener(BroadcasterListener b)
Add a BroadcasterListener to all mapped Broadcasters.

Parameters:
b - BroadcasterListener
Returns:
this

removeBroadcasterListener

public MetaBroadcaster removeBroadcasterListener(BroadcasterListener b)
Remove the BroadcasterListener.

Parameters:
b - BroadcasterListener
Returns:
this


Copyright © 2014. All Rights Reserved.