public class BroadcastHub$
extends java.lang.Object
Sink
and a Source
. The Sink
broadcasts elements from a producer to the
actually live consumers it has. Once the producer has been materialized, the Sink
it feeds into returns a
materialized value which is the corresponding Source
. This Source
can be materialized arbitrary many times,
where weach of the new materializations will receive their elements from the original Sink
.Modifier and Type | Field and Description |
---|---|
static BroadcastHub$ |
MODULE$
Static reference to the singleton instance of this Scala object.
|
Constructor and Description |
---|
BroadcastHub$() |
Modifier and Type | Method and Description |
---|---|
<T> Sink<T,Source<T,NotUsed>> |
of(java.lang.Class<T> clazz) |
<T> Sink<T,Source<T,NotUsed>> |
of(java.lang.Class<T> clazz,
int bufferSize)
Creates a
Sink that receives elements from its upstream producer and broadcasts them to a dynamic set
of consumers. |
public static final BroadcastHub$ MODULE$
public <T> Sink<T,Source<T,NotUsed>> of(java.lang.Class<T> clazz, int bufferSize)
Sink
that receives elements from its upstream producer and broadcasts them to a dynamic set
of consumers. After the Sink
returned by this method is materialized, it returns a Source
as materialized
value. This Source
can be materialized arbitrary many times and each materialization will receive the
broadcast elements form the ofiginal Sink
.
Every new materialization of the Sink
results in a new, independent hub, which materializes to its own
Source
for consuming the Sink
of that materialization.
If the original Sink
is failed, then the failure is immediately propagated to all of its materialized
Source
s (possibly jumping over already buffered elements). If the original Sink
is completed, then
all corresponding Source
s are completed. Both failure and normal completion is "remembered" and later
materializations of the Source
will see the same (failure or completion) state. Source
s that are
cancelled are simply removed from the dynamic set of consumers.
clazz
- Type of elements this hub emits and consumesbufferSize
- Buffer size used by the producer. Gives an upper bound on how "far" from each other two
concurrent consumers can be in terms of element. If the buffer is full, the producer
is backpressured. Must be a power of two and less than 4096.