Class BroadcastHub
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 an arbitrary number
of times, where each of the new materializations will receive their elements from the original Sink
.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionCreates aSink
with default buffer size 256 that receives elements from its upstream producer and broadcasts them to a dynamic set of consumers.Creates aSink
that receives elements from its upstream producer and broadcasts them to a dynamic set of consumers.Creates aSink
that receives elements from its upstream producer and broadcasts them to a dynamic set of consumers.
-
Constructor Details
-
BroadcastHub
public BroadcastHub()
-
-
Method Details
-
of
Creates aSink
that receives elements from its upstream producer and broadcasts them to a dynamic set of consumers. After theSink
returned by this method is materialized, it returns aSource
as materialized value. ThisSource
can be materialized an arbitrary number of times and each materialization will receive the broadcast elements from the originalSink
.Every new materialization of the
Sink
results in a new, independent hub, which materializes to its ownSource
for consuming theSink
of that materialization.If the original
Sink
is failed, then the failure is immediately propagated to all of its materializedSource
s (possibly jumping over already buffered elements). If the originalSink
is completed, then all correspondingSource
s are completed. Both failure and normal completion is "remembered" and later materializations of theSource
will see the same (failure or completion) state.Source
s that are cancelled are simply removed from the dynamic set of consumers.- Parameters:
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.
-
of
public static <T> Sink<T,Source<T, ofNotUsed>> (Class<T> clazz, int startAfterNrOfConsumers, int bufferSize) Creates aSink
that receives elements from its upstream producer and broadcasts them to a dynamic set of consumers. After theSink
returned by this method is materialized, it returns aSource
as materialized value. ThisSource
can be materialized an arbitrary number of times and each materialization will receive the broadcast elements from the originalSink
.Every new materialization of the
Sink
results in a new, independent hub, which materializes to its ownSource
for consuming theSink
of that materialization.If the original
Sink
is failed, then the failure is immediately propagated to all of its materializedSource
s (possibly jumping over already buffered elements). If the originalSink
is completed, then all correspondingSource
s are completed. Both failure and normal completion is "remembered" and later materializations of theSource
will see the same (failure or completion) state.Source
s that are cancelled are simply removed from the dynamic set of consumers.- Parameters:
clazz
- Type of elements this hub emits and consumesstartAfterNrOfConsumers
- Elements are buffered until this number of consumers have been connected. This is only used initially when the operator is starting up, i.e. it is not honored when consumers have been removed (canceled).bufferSize
- 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.- Since:
- 1.1.0
-
of
Creates aSink
with default buffer size 256 that receives elements from its upstream producer and broadcasts them to a dynamic set of consumers. After theSink
returned by this method is materialized, it returns aSource
as materialized value. ThisSource
can be materialized an arbitrary number of times and each materialization will receive the broadcast elements from the originalSink
.Every new materialization of the
Sink
results in a new, independent hub, which materializes to its ownSource
for consuming theSink
of that materialization.If the original
Sink
is failed, then the failure is immediately propagated to all of its materializedSource
s (possibly jumping over already buffered elements). If the originalSink
is completed, then all correspondingSource
s are completed. Both failure and normal completion is "remembered" and later materializations of theSource
will see the same (failure or completion) state.Source
s that are cancelled are simply removed from the dynamic set of consumers.- Parameters:
clazz
- Type of elements this hub emits and consumes
-