org.atmosphere.cpr
Interface Broadcaster

All Known Implementing Classes:
DefaultBroadcaster

public interface Broadcaster

A Broadcaster is responsible for delivering messages to its subscribed AtmosphereResource, which are representing a suspended response. AtmosphereResource can be added using addAtmosphereResource(org.atmosphere.cpr.AtmosphereResource), so when broadcast(java.lang.Object) execute, AtmosphereHandler#onStateChange(org.atmosphere.cpr.AtmosphereResource) will by invoked and the suspended connection will have a chance to write the message available using AtmosphereResource#getMessage()
A Broadcaster, by default, will use an ExecutorService, and the number of Thread will be computed based on the core/cpu of the OS under which the application run.
One final word on Broadcaster: by default, a Broadcaster will broadcast using all AtmosphereResource on which the response has been suspended, e.g. {AtmosphereResource#suspend()} has been invoked. This behavior is configurable and you can configure it by invoking the Broadcaster#setScope()):

Author:
Jeanfrancois Arcand

Nested Class Summary
static class Broadcaster.SCOPE
           
 
Method Summary
 AtmosphereResource addAtmosphereResource(AtmosphereResource resource)
          Add a AtmosphereResource to the list of item to be notified when the broadcast(java.lang.Object) is invoked.
 Future<Object> broadcast(Object o)
          Broadcast the Object to all suspended response, e.g.
 Future<Object> broadcast(Object o, AtmosphereResource resource)
          Broadcast the Object to all suspended response, e.g.
 Future<Object> broadcast(Object o, Set<AtmosphereResource> subset)
          Broadcast the Object to all suspended response, e.g.
 Future<Object> delayBroadcast(Object o)
          Delay the broadcast operation.
 Future<Object> delayBroadcast(Object o, long delay, TimeUnit t)
          Delay the broadcast operation.
 void destroy()
          Destroy this instance and shutdown it's associated ExecutorServices
 Iterator<AtmosphereResource> getAtmosphereResources()
          Return an Iterator of AtmosphereResource
 BroadcasterConfig getBroadcasterConfig()
          Return the current BroadcasterConfig
 String getName()
          Return the name of this Broadcaster
 Broadcaster.SCOPE getScope()
          Retunr the Broadcaster#SCOPE
 AtmosphereResource removeAtmosphereResource(AtmosphereResource resource)
          Remove a AtmosphereResource from the list of item to be notified when the broadcast(java.lang.Object) is invoked.
 Future<?> scheduleFixedBroadcast(Object o, long period, TimeUnit t)
          Broadcast periodically.
 void setBroadcasterConfig(BroadcasterConfig bc)
          Set the BroadcasterConfig instance.
 void setName(String name)
          Set the name of this Broadcaster
 void setScope(Broadcaster.SCOPE scope)
          Set the scope.
 

Method Detail

broadcast

Future<Object> broadcast(Object o)
Broadcast the Object to all suspended response, e.g. invoke AtmosphereHandler.onStateChange(org.atmosphere.cpr.AtmosphereResourceEvent).

Parameters:
o - and Object to be broadcasted.
Returns:
a Future that can be used to synchronize using the Future.get()

delayBroadcast

Future<Object> delayBroadcast(Object o)
Delay the broadcast operation. The Object will be broadcasted when the first broadcast(java.lang.Object) is invoked.

Parameters:
o - and Object to be broadcasted.
Returns:
a Future that can be used to synchronize using the Future.get()

delayBroadcast

Future<Object> delayBroadcast(Object o,
                              long delay,
                              TimeUnit t)
Delay the broadcast operation. The Object will be broadcasted once the specified delay expires. If the TimeUnit is set null, the Object will be broadcasted when the first broadcast(java.lang.Object) is invoked.

Parameters:
o - and Object to be broadcasted.
the - delay
t - a TimeUnit
Returns:
a Future that can be used to synchronize using the Future.get()

scheduleFixedBroadcast

Future<?> scheduleFixedBroadcast(Object o,
                                 long period,
                                 TimeUnit t)
Broadcast periodically. The Object will be broadcasted after every period specified time frame expires. If the TimeUnit is set null, the Object will be broadcasted when the first broadcast(java.lang.Object) is invoked.

Parameters:
o - and Object to be broadcasted.
the - period
t - a TimeUnit
Returns:
a Future that can be used to synchronize using the Future.get()

broadcast

Future<Object> broadcast(Object o,
                         AtmosphereResource resource)
Broadcast the Object to all suspended response, e.g. invoke AtmosphereHandler.onStateChange(org.atmosphere.cpr.AtmosphereResourceEvent) with an instance of AtmosphereResource, representing a single suspended response..

Parameters:
o - and Object to be broadcasted.
resource - an AtmosphereResource
Returns:
a Future that can be used to synchronize using the Future.get()

broadcast

Future<Object> broadcast(Object o,
                         Set<AtmosphereResource> subset)
Broadcast the Object to all suspended response, e.g. invoke AtmosphereHandler.onStateChange(org.atmosphere.cpr.AtmosphereResourceEvent) with a Set of AtmosphereResource, representing a set of AtmosphereHandler.

Parameters:
o - and Object to be broadcasted.
resource - an AtmosphereResource
Returns:
a Future that can be used to synchronize using the Future.get()

addAtmosphereResource

AtmosphereResource addAtmosphereResource(AtmosphereResource resource)
Add a AtmosphereResource to the list of item to be notified when the broadcast(java.lang.Object) is invoked.

Parameters:
resource - an AtmosphereResource
Returns:
AtmosphereResource if added, or null if it was already there.

removeAtmosphereResource

AtmosphereResource removeAtmosphereResource(AtmosphereResource resource)
Remove a AtmosphereResource from the list of item to be notified when the broadcast(java.lang.Object) is invoked.

Parameters:
resource - an AtmosphereResource
Returns:
AtmosphereResource if removed, or null if it was not.

setBroadcasterConfig

void setBroadcasterConfig(BroadcasterConfig bc)
Set the BroadcasterConfig instance.

Parameters:
bf -

getBroadcasterConfig

BroadcasterConfig getBroadcasterConfig()
Return the current BroadcasterConfig

Returns:
the current BroadcasterConfig

destroy

void destroy()
Destroy this instance and shutdown it's associated ExecutorServices


getAtmosphereResources

Iterator<AtmosphereResource> getAtmosphereResources()
Return an Iterator of AtmosphereResource


setScope

void setScope(Broadcaster.SCOPE scope)
Set the scope.


getScope

Broadcaster.SCOPE getScope()
Retunr the Broadcaster#SCOPE

Returns:
Broadcaster#SCOPE

setName

void setName(String name)
Set the name of this Broadcaster

Parameters:
name - of this Broadcaster

getName

String getName()
Return the name of this Broadcaster

Returns:
the name of this Broadcaster


Copyright © 2009 SUN Microsystems. All Rights Reserved.