org.glassfish.jersey.server
Class Broadcaster<T>

java.lang.Object
  extended by org.glassfish.jersey.server.Broadcaster<T>
Type Parameters:
T - broadcast type.
All Implemented Interfaces:
BroadcasterListener<T>

public class Broadcaster<T>
extends Object
implements BroadcasterListener<T>

Used for broadcasting response chunks to multiple ChunkedOutput instances.

Author:
Pavel Bucek (pavel.bucek at oracle.com), Martin Matula (martin.matula at oracle.com)

Constructor Summary
  Broadcaster()
          Creates a new instance.
protected Broadcaster(Class<? extends Broadcaster> subclass)
          Can be used by subclasses to override the default functionality of adding self to the set of listeners.
 
Method Summary
 boolean add(ChunkedOutput<T> chunkedOutput)
          Register ChunkedOutput to this Broadcaster instance.
 boolean addBroadcasterListener(BroadcasterListener<T> listener)
          Register BroadcasterListener for Broadcaster events listening.
 void broadcast(T chunk)
          Broadcast a chunk to all registered ChunkedOutput instances.
 void closeAll()
          Close all registered ChunkedOutput instances.
 void onClose(ChunkedOutput<T> chunkedOutput)
          Called when the chunkedOutput has been closed (either by client closing the connection or by calling ChunkedOutput.close() on the server side.
 void onException(ChunkedOutput<T> chunkedOutput, Exception exception)
          Called when exception was thrown by a given chunked response when trying to write to it or close it.
 boolean remove(ChunkedOutput<T> chunkedOutput)
          Un-register ChunkedOutput from this Broadcaster instance.
 boolean removeBroadcasterListener(BroadcasterListener<T> listener)
          Un-register BroadcasterListener.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Broadcaster

public Broadcaster()
Creates a new instance. If this constructor is called by a subclass, it assumes the the reason for the subclass to exist is to implement onClose(ChunkedOutput) and onException(ChunkedOutput, Exception) methods, so it adds the newly created instance as the listener. To avoid this, subclasses may call Broadcaster(Class) passing their class as an argument.


Broadcaster

protected Broadcaster(Class<? extends Broadcaster> subclass)
Can be used by subclasses to override the default functionality of adding self to the set of listeners. If creating a direct instance of a subclass passed in the parameter, the broadcaster will not register itself as a listener.

Parameters:
subclass - subclass of Broadcaster that should not be registered as a listener - if creating a direct instance of this subclass, this constructor will not register the new instance as a listener.
See Also:
Broadcaster()
Method Detail

add

public final boolean add(ChunkedOutput<T> chunkedOutput)
Register ChunkedOutput to this Broadcaster instance.

Parameters:
chunkedOutput - ChunkedOutput to register.
Returns:
true if the instance was successfully registered, false if this instance was already in the list of registered chunked responses.

remove

public final boolean remove(ChunkedOutput<T> chunkedOutput)
Un-register ChunkedOutput from this Broadcaster instance. This method does not close the ChunkedOutput being unregistered.

Parameters:
chunkedOutput - ChunkedOutput instance to un-register from this broadcaster.
Returns:
true if the instance was unregistered, false if the instance wasn't found in the list of registered chunked responses.

addBroadcasterListener

public final boolean addBroadcasterListener(BroadcasterListener<T> listener)
Register BroadcasterListener for Broadcaster events listening.

Parameters:
listener - listener to be registered
Returns:
true if registered, false if the listener was already in the list TODO rename

removeBroadcasterListener

public final boolean removeBroadcasterListener(BroadcasterListener<T> listener)
Un-register BroadcasterListener.

Parameters:
listener - listener to be unregistered
Returns:
true if unregistered, false if the listener was not found in the list of registered listeners TODO rename

broadcast

public void broadcast(T chunk)
Broadcast a chunk to all registered ChunkedOutput instances.

Parameters:
chunk - chunk to be sent.

closeAll

public void closeAll()
Close all registered ChunkedOutput instances.


onException

public void onException(ChunkedOutput<T> chunkedOutput,
                        Exception exception)
Called when exception was thrown by a given chunked response when trying to write to it or close it. Can be implemented by subclasses to handle the event of exception thrown from a particular ChunkedOutput instance when trying to write to it or close it.

Specified by:
onException in interface BroadcasterListener<T>
Parameters:
chunkedOutput - instance that threw exception.
exception - exception that was thrown.

onClose

public void onClose(ChunkedOutput<T> chunkedOutput)
Called when the chunkedOutput has been closed (either by client closing the connection or by calling ChunkedOutput.close() on the server side. Can be implemented by subclasses to hadnle the event of ChunkedOutput being closed.

Specified by:
onClose in interface BroadcasterListener<T>
Parameters:
chunkedOutput - instance that was closed.


Copyright © 2007-2012 Oracle Corporation. All Rights Reserved. Use is subject to license terms.