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

Nested Class Summary
static interface MetaBroadcaster.MetaBroadcasterCache
          Cache message if no Broadcaster maps the broadcastTo(String, Object)
static class MetaBroadcaster.NoCache
           
static class MetaBroadcaster.ThirtySecondsCache
          Flush the cache every 30 seconds.
 
Field Summary
static String MAPPING_REGEX
           
 
Constructor Summary
MetaBroadcaster()
           
MetaBroadcaster(AtmosphereConfig config)
           
 
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, boolean cacheMessage)
           
 Future<List<Broadcaster>> broadcastTo(String broadcasterID, Object message)
          Broadcast the message to all Broadcasters whose Broadcaster.getID() matches the broadcasterID value.
 MetaBroadcaster cache(MetaBroadcaster.MetaBroadcasterCache cache)
          Set the MetaBroadcaster.MetaBroadcasterCache.
 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.
protected  void destroy()
           
protected  MetaBroadcaster flushCache()
          Flush the cached messages.
static MetaBroadcaster getDefault()
          Deprecated. Use AtmosphereConfig.metaBroadcaster()
protected  org.atmosphere.cpr.MetaBroadcaster.MetaBroadcasterFuture map(String path, Object message, int time, TimeUnit unit, boolean delay, boolean cacheMessage)
           
 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()

MetaBroadcaster

public MetaBroadcaster(AtmosphereConfig config)
Method Detail

broadcast

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

map

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

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

flushCache

protected MetaBroadcaster flushCache()
Flush the cached messages.

Returns:
this

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()
Deprecated. Use AtmosphereConfig.metaBroadcaster()


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

cache

public MetaBroadcaster cache(MetaBroadcaster.MetaBroadcasterCache cache)
Set the MetaBroadcaster.MetaBroadcasterCache. Default is MetaBroadcaster.NoCache.

Parameters:
cache -
Returns:

destroy

protected void destroy()


Copyright © 2014. All Rights Reserved.