Package org.atmosphere.cpr
Class DefaultMetaBroadcaster
- java.lang.Object
-
- org.atmosphere.cpr.DefaultMetaBroadcaster
-
- All Implemented Interfaces:
MetaBroadcaster,AtmosphereConfigAware
public class DefaultMetaBroadcaster extends java.lang.Object implements MetaBroadcaster
Broadcast events to all or a subset of availableBroadcasters based on theirBroadcaster.getID()value. This class allows broadcasting events to a set of broadcasters that maps to some String like:
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// Broadcast the event to all Broadcaster ID starting with /hello broadcast("/hello", event) // Broadcast the event to all Broadcaster ID broaccast("/*", event);Broadcaster.getID()starts with '/'. For example, with Jersey:- Author:
- Jeanfrancois Arcand
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.atmosphere.cpr.MetaBroadcaster
MetaBroadcaster.MetaBroadcasterCache, MetaBroadcaster.NoCache, MetaBroadcaster.ThirtySecondsCache
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringMAPPING_REGEX
-
Constructor Summary
Constructors Constructor Description DefaultMetaBroadcaster()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MetaBroadcasteraddBroadcasterListener(BroadcasterListener b)Add aBroadcasterListenerto all mappedBroadcasters.protected org.atmosphere.cpr.DefaultMetaBroadcaster.MetaBroadcasterFuturebroadcast(java.lang.String path, java.lang.Object message, int time, java.util.concurrent.TimeUnit unit, boolean delay, boolean cacheMessage)java.util.concurrent.Future<java.util.List<Broadcaster>>broadcastTo(java.lang.String broadcasterID, java.lang.Object message)Broadcast the message to all Broadcasters whoseBroadcaster.getID()matches the broadcasterID value.java.util.concurrent.Future<java.util.List<Broadcaster>>broadcastTo(java.lang.String broadcasterID, java.lang.Object message, boolean cacheMessage)Broadcast the message to all Broadcasters whoseBroadcaster.getID()matches the broadcasterID value.MetaBroadcastercache(MetaBroadcaster.MetaBroadcasterCache cache)Set theMetaBroadcaster.MetaBroadcasterCache.voidconfigure(AtmosphereConfig config)Configure an AtmosphereFramework object.java.util.concurrent.Future<java.util.List<Broadcaster>>delayTo(java.lang.String broadcasterID, java.lang.Object message, int time, java.util.concurrent.TimeUnit unit)Delay the message delivery to Broadcasters whoseBroadcaster.getID()matches the broadcasterID value.voiddestroy()protected MetaBroadcasterflushCache()Flush the cached messages.protected org.atmosphere.cpr.DefaultMetaBroadcaster.MetaBroadcasterFuturemap(java.lang.String path, java.lang.Object message, int time, java.util.concurrent.TimeUnit unit, boolean delay, boolean cacheMessage)MetaBroadcasterremoveBroadcasterListener(BroadcasterListener b)Remove theBroadcasterListener.java.util.concurrent.Future<java.util.List<Broadcaster>>scheduleTo(java.lang.String broadcasterID, java.lang.Object message, int time, java.util.concurrent.TimeUnit unit)Broadcast the message at a fixed rate to all Broadcasters whoseBroadcaster.getID()matches the broadcasterID value.
-
-
-
Field Detail
-
MAPPING_REGEX
public static final java.lang.String MAPPING_REGEX
- See Also:
- Constant Field Values
-
-
Method Detail
-
configure
public void configure(AtmosphereConfig config)
Description copied from interface:AtmosphereConfigAwareConfigure an AtmosphereFramework object.- Specified by:
configurein interfaceAtmosphereConfigAware- Parameters:
config-AtmosphereConfig
-
broadcast
protected org.atmosphere.cpr.DefaultMetaBroadcaster.MetaBroadcasterFuture broadcast(java.lang.String path, java.lang.Object message, int time, java.util.concurrent.TimeUnit unit, boolean delay, boolean cacheMessage)
-
map
protected org.atmosphere.cpr.DefaultMetaBroadcaster.MetaBroadcasterFuture map(java.lang.String path, java.lang.Object message, int time, java.util.concurrent.TimeUnit unit, boolean delay, boolean cacheMessage)
-
broadcastTo
public java.util.concurrent.Future<java.util.List<Broadcaster>> broadcastTo(java.lang.String broadcasterID, java.lang.Object message)
Description copied from interface:MetaBroadcasterBroadcast the message to all Broadcasters whoseBroadcaster.getID()matches the broadcasterID value.- Specified by:
broadcastToin interfaceMetaBroadcaster- Parameters:
broadcasterID- a String (or path) that can potentially match aBroadcaster.getID()message- a message to be broadcasted- Returns:
- a Future
-
broadcastTo
public java.util.concurrent.Future<java.util.List<Broadcaster>> broadcastTo(java.lang.String broadcasterID, java.lang.Object message, boolean cacheMessage)
Description copied from interface:MetaBroadcasterBroadcast the message to all Broadcasters whoseBroadcaster.getID()matches the broadcasterID value.- Specified by:
broadcastToin interfaceMetaBroadcaster- Parameters:
broadcasterID- a String (or path) that can potentially match aBroadcaster.getID()message- a message to be broadcastedcacheMessage- allow the cache to be cached or not.- Returns:
- a Future
-
flushCache
protected MetaBroadcaster flushCache()
Flush the cached messages.- Returns:
- this
-
scheduleTo
public java.util.concurrent.Future<java.util.List<Broadcaster>> scheduleTo(java.lang.String broadcasterID, java.lang.Object message, int time, java.util.concurrent.TimeUnit unit)
Description copied from interface:MetaBroadcasterBroadcast the message at a fixed rate to all Broadcasters whoseBroadcaster.getID()matches the broadcasterID value. This operation will invokeBroadcaster.scheduleFixedBroadcast(Object, long, java.util.concurrent.TimeUnit)}- Specified by:
scheduleToin interfaceMetaBroadcaster- Parameters:
broadcasterID- a String (or path) that can potentially match aBroadcaster.getID()message- a message to be broadcastedtime- a time valueunit- aTimeUnit- Returns:
- a Future
-
delayTo
public java.util.concurrent.Future<java.util.List<Broadcaster>> delayTo(java.lang.String broadcasterID, java.lang.Object message, int time, java.util.concurrent.TimeUnit unit)
Description copied from interface:MetaBroadcasterDelay the message delivery to Broadcasters whoseBroadcaster.getID()matches the broadcasterID value. This operation will invokeBroadcaster.delayBroadcast(Object, long, java.util.concurrent.TimeUnit)(Object, long, java.util.concurrent.TimeUnit)}}- Specified by:
delayToin interfaceMetaBroadcaster- Parameters:
broadcasterID- a String (or path) that can potentially match aBroadcaster.getID()message- a message to be broadcastedtime- a time valueunit- aTimeUnit- Returns:
- a Future
-
addBroadcasterListener
public MetaBroadcaster addBroadcasterListener(BroadcasterListener b)
Description copied from interface:MetaBroadcasterAdd aBroadcasterListenerto all mappedBroadcasters.- Specified by:
addBroadcasterListenerin interfaceMetaBroadcaster- Parameters:
b-BroadcasterListener- Returns:
- this
-
removeBroadcasterListener
public MetaBroadcaster removeBroadcasterListener(BroadcasterListener b)
Description copied from interface:MetaBroadcasterRemove theBroadcasterListener.- Specified by:
removeBroadcasterListenerin interfaceMetaBroadcaster- Parameters:
b-BroadcasterListener- Returns:
- this
-
cache
public MetaBroadcaster cache(MetaBroadcaster.MetaBroadcasterCache cache)
Description copied from interface:MetaBroadcasterSet theMetaBroadcaster.MetaBroadcasterCache. Default isMetaBroadcaster.NoCache.- Specified by:
cachein interfaceMetaBroadcaster- Returns:
- this
-
destroy
public void destroy()
- Specified by:
destroyin interfaceMetaBroadcaster
-
-