org.atmosphere.cpr
Interface MetaBroadcaster

All Superinterfaces:
AtmosphereConfigAware
All Known Implementing Classes:
DefaultMetaBroadcaster

public interface MetaBroadcaster
extends AtmosphereConfigAware

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.
 
Method Summary
 MetaBroadcaster addBroadcasterListener(BroadcasterListener b)
          Add a BroadcasterListener to all mapped Broadcasters.
 Future<List<Broadcaster>> broadcastTo(String broadcasterID, Object message)
          Broadcast the message to all Broadcasters whose Broadcaster.getID() matches the broadcasterID value.
 Future<List<Broadcaster>> broadcastTo(String broadcasterID, Object message, boolean cacheMessage)
          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.
 void destroy()
           
 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 interface org.atmosphere.inject.AtmosphereConfigAware
configure
 

Method Detail

broadcastTo

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

broadcastTo

Future<List<Broadcaster>> broadcastTo(String broadcasterID,
                                      Object message,
                                      boolean cacheMessage)
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
cacheMessage - allow the cache to be cached or not.
Returns:
a Future

scheduleTo

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

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

addBroadcasterListener

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

Parameters:
b - BroadcasterListener
Returns:
this

removeBroadcasterListener

MetaBroadcaster removeBroadcasterListener(BroadcasterListener b)
Remove the BroadcasterListener.

Parameters:
b - BroadcasterListener
Returns:
this

cache

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

Parameters:
cache -
Returns:
this

destroy

void destroy()


Copyright © 2015. All Rights Reserved.