T
- broadcast type.public class Broadcaster<T> extends Object implements BroadcasterListener<T>
ChunkedOutput
instances.Modifier | Constructor and Description |
---|---|
|
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 . |
Modifier and Type | Method and Description |
---|---|
boolean |
add(BroadcasterListener<T> listener)
Register
BroadcasterListener for Broadcaster events listening. |
<OUT extends ChunkedOutput<T>> |
add(OUT chunkedOutput)
Register
ChunkedOutput to this Broadcaster instance. |
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(BroadcasterListener<T> listener)
Un-register
BroadcasterListener . |
<OUT extends ChunkedOutput<T>> |
remove(OUT chunkedOutput)
Un-register
ChunkedOutput from this Broadcaster instance. |
public Broadcaster()
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.protected Broadcaster(Class<? extends Broadcaster> subclass)
listeners
. If creating a direct instance of a subclass passed in the parameter,
the broadcaster will not register itself as a listener.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.Broadcaster()
public <OUT extends ChunkedOutput<T>> boolean add(OUT chunkedOutput)
ChunkedOutput
to this Broadcaster
instance.chunkedOutput
- ChunkedOutput
to register.true
if the instance was successfully registered, false
otherwise.public <OUT extends ChunkedOutput<T>> boolean remove(OUT chunkedOutput)
ChunkedOutput
from this Broadcaster
instance.
This method does not close the ChunkedOutput
being unregistered.chunkedOutput
- ChunkedOutput
instance to un-register from this broadcaster.true
if the instance was unregistered, false
otherwise.public boolean add(BroadcasterListener<T> listener)
BroadcasterListener
for Broadcaster
events listening.
This operation is potentially slow, especially if large number of listeners get registered in the broadcaster.
The Broadcaster
implementation is optimized to efficiently handle small amounts of
concurrent listener registrations and removals and large amounts of registered listener notifications.
listener
- listener to be registered.true
if registered, false
otherwise.public boolean remove(BroadcasterListener<T> listener)
BroadcasterListener
.
This operation is potentially slow, especially if large number of listeners get registered in the broadcaster.
The Broadcaster
implementation is optimized to efficiently handle small amounts of
concurrent listener registrations and removals and large amounts of registered listener notifications.
listener
- listener to be unregistered.true
if unregistered, false
otherwise.public void broadcast(T chunk)
ChunkedOutput
instances.chunk
- chunk to be sent.public void closeAll()
ChunkedOutput
instances.public void onException(ChunkedOutput<T> chunkedOutput, Exception exception)
ChunkedOutput
instance when trying to write to it or close it.onException
in interface BroadcasterListener<T>
chunkedOutput
- instance that threw exception.exception
- exception that was thrown.public void onClose(ChunkedOutput<T> chunkedOutput)
ChunkedOutput.close()
on the server side.
Can be implemented by subclasses to handle the event of ChunkedOutput
being closed.onClose
in interface BroadcasterListener<T>
chunkedOutput
- instance that was closed.Copyright © 2007-2021, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.