Package org.atmosphere.pool
Class PoolableBroadcasterFactory
java.lang.Object
org.atmosphere.cpr.DefaultBroadcasterFactory
org.atmosphere.pool.PoolableBroadcasterFactory
- All Implemented Interfaces:
BroadcasterFactory
This class uses a
PoolableProvider to retrieve instance of Broadcaster. This class
doesn't validate the id of the Broadcaster [Broadcaster.setID(String)] and can return a Broadcaster
with was already created under that name. Set trackPooledBroadcaster(boolean) or ApplicationConfig.SUPPORT_TRACKED_BROADCASTER to true to track duplication but
be aware it can significantly reduce performance. Use the DefaultBroadcasterFactory is recommended
under that scenario.
By default, this factory doesn't keep trace of created Broadcasters hence a new pooled Broadcaster will always
be returned unless trackPooledBroadcaster(boolean) or ApplicationConfig.SUPPORT_TRACKED_BROADCASTER
is set to true.
This Factory has been designed for application.
This factory is usefull when an application needs a short-lived Broadcaster.- Author:
- Jeanfrancois Arcand
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.atmosphere.cpr.BroadcasterFactory
BroadcasterFactory.BroadcasterCreationException -
Field Summary
Fields inherited from class org.atmosphere.cpr.DefaultBroadcasterFactory
broadcasterListeners, clazz, config, defaultPolicy, defaultPolicyInteger, legacyBroadcasterURI, lifeCycleListener, policy, store -
Constructor Summary
ConstructorsConstructorDescriptionPoolableBroadcasterFactory(Class<? extends Broadcaster> clazz, String broadcasterLifeCyclePolicy, AtmosphereConfig c) Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionbooleanadd(Broadcaster b, Object id) Add aBroadcasterto the list.protected voidget()Return an instance of the defaultBroadcaster.<T extends Broadcaster>
TReturn an immutable Collection ofBroadcasterthis factory contains.PoolableProvider<? extends Broadcaster, ?> The currentPoolableProviderpoolableProvider(PoolableProvider<? extends Broadcaster, ?> poolableProvider) Set the implementation ofPoolableProviderbooleanRemove the associatedBroadcaster.booleanremove(Broadcaster b, Object id) Remove aBroadcasterfrom the list.voidRemove all instances ofAtmosphereResourcefrom all registeredBroadcasters.booleanReturn true isBroadcasterinstance are tracked, e.g stored in a Collection for duplicate id.trackPooledBroadcaster(boolean trackPooledBroadcaster) Set to true to enable tracking ofBroadcaster.getID()duplication.Methods inherited from class org.atmosphere.cpr.DefaultBroadcasterFactory
addBroadcasterListener, broadcasterListeners, configure, createBroadcaster, destroy, get, get, lookup, lookup, lookup, lookup, notifyOnPostCreate, removeBroadcasterListener
-
Constructor Details
-
PoolableBroadcasterFactory
public PoolableBroadcasterFactory() -
PoolableBroadcasterFactory
@Deprecated public PoolableBroadcasterFactory(Class<? extends Broadcaster> clazz, String broadcasterLifeCyclePolicy, AtmosphereConfig c) Deprecated.
-
-
Method Details
-
configure
- Overrides:
configurein classDefaultBroadcasterFactory
-
get
Description copied from interface:BroadcasterFactoryReturn an instance of the defaultBroadcaster. The name of the Broadcaster will be randomly generated.- Specified by:
getin interfaceBroadcasterFactory- Overrides:
getin classDefaultBroadcasterFactory- Returns:
- an instance of the default
Broadcaster
-
add
Description copied from interface:BroadcasterFactoryAdd aBroadcasterto the list.- Specified by:
addin interfaceBroadcasterFactory- Overrides:
addin classDefaultBroadcasterFactory- Parameters:
b- aBroadcaster- Returns:
- false if a with the same name
Broadcasterwas already stored
-
remove
Description copied from interface:BroadcasterFactoryRemove aBroadcasterfrom the list.- Specified by:
removein interfaceBroadcasterFactory- Overrides:
removein classDefaultBroadcasterFactory- Parameters:
b- aBroadcasterid- theID}invalid @link
{@link Broadcaster's- Returns:
- false if wasn't present, or
Broadcaster
-
lookup
public <T extends Broadcaster> T lookup(Class<T> c, Object id, boolean createIfNull, boolean unique) - Overrides:
lookupin classDefaultBroadcasterFactory
-
removeAllAtmosphereResource
Description copied from interface:BroadcasterFactoryRemove all instances ofAtmosphereResourcefrom all registeredBroadcasters.- Specified by:
removeAllAtmosphereResourcein interfaceBroadcasterFactory- Overrides:
removeAllAtmosphereResourcein classDefaultBroadcasterFactory- Parameters:
r- an voidAtmosphereResource
-
remove
Description copied from interface:BroadcasterFactoryRemove the associatedBroadcaster.- Specified by:
removein interfaceBroadcasterFactory- Overrides:
removein classDefaultBroadcasterFactory
-
lookupAll
Description copied from interface:BroadcasterFactoryReturn an immutable Collection ofBroadcasterthis factory contains.- Specified by:
lookupAllin interfaceBroadcasterFactory- Overrides:
lookupAllin classDefaultBroadcasterFactory- Returns:
- an immutable Collection of
Broadcasterthis factory contains.
-
createBroadcaster
-
trackPooledBroadcaster
Set to true to enable tracking ofBroadcaster.getID()duplication. Enabling this feature will significantly reduce the performance of thePoolableProvider. Use theDefaultBroadcasterFactoryif you need to track's duplication.- Parameters:
trackPooledBroadcaster-- Returns:
-
trackPooledBroadcaster
public boolean trackPooledBroadcaster()Return true isBroadcasterinstance are tracked, e.g stored in a Collection for duplicate id.- Returns:
Broadcasterinstance are tracked, e.g stored in a Collection for duplicate id.
-
poolableProvider
The currentPoolableProvider- Returns:
- current
PoolableProvider
-
poolableProvider
public PoolableBroadcasterFactory poolableProvider(PoolableProvider<? extends Broadcaster, ?> poolableProvider) Set the implementation ofPoolableProvider- Parameters:
poolableProvider- the implementation ofPoolableProvider- Returns:
- this
-