Class MergeHub
Source
and a Sink
. The Source
streams the element to a consumer from
its merged inputs. Once the consumer has been materialized, the Source
returns a materialized value which is
the corresponding Sink
. This Sink
can then be materialized arbitrary many times, where each of the new
materializations will feed its consumed elements to the original Source
.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
A DrainingControl object is created during the materialization of a MergeHub and allows to initiate the draining and eventual completion of the Hub from the outside. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionCreates aSource
that emits elements merged from a dynamic set of producers.Creates aSource
that emits elements merged from a dynamic set of producers.static <T> Source<T,
Pair<Sink<T, NotUsed>, MergeHub.DrainingControl>> withDraining
(Class<T> clazz) Creates aSource
that emits elements merged from a dynamic set of producers.static <T> Source<T,
Pair<Sink<T, NotUsed>, MergeHub.DrainingControl>> withDraining
(Class<T> clazz, int perProducerBufferSize) Creates aSource
that emits elements merged from a dynamic set of producers.
-
Constructor Details
-
MergeHub
public MergeHub()
-
-
Method Details
-
of
Creates aSource
that emits elements merged from a dynamic set of producers. After theSource
returned by this method is materialized, it returns aSink
as a materialized value. ThisSink
can be materialized arbitrary many times and each of the materializations will feed the elements into the originalSource
.Every new materialization of the
Source
results in a new, independent hub, which materializes to its ownSink
for feeding that materialization.Completed or failed
Sink
s are simply removed. Once theSource
is cancelled, the Hub is considered closed and any new producers using theSink
will be cancelled.- Parameters:
clazz
- Type of elements this hub emits and consumesperProducerBufferSize
- Buffer space used per producer.
-
withDraining
public static <T> Source<T,Pair<Sink<T, withDrainingNotUsed>, MergeHub.DrainingControl>> (Class<T> clazz, int perProducerBufferSize) Creates aSource
that emits elements merged from a dynamic set of producers. After theSource
returned by this method is materialized, it returns aSink
as a materialized value. ThisSink
can be materialized arbitrarily many times and each of the materializations will feed the elements into the originalSource
.Every new materialization of the
Source
results in a new, independent hub, which materializes to its ownSink
for feeding that materialization.Completed or failed
Sink
s are simply removed. Once theSource
is cancelled, the Hub is considered closed and any new producers using theSink
will be cancelled.The materialized
MergeHub.DrainingControl
can be used to drain the Hub: any new produces using theSink
will be cancelled and the Hub will be closed completing theSource
as soon as all currently connected producers complete.- Parameters:
clazz
- Type of elements this hub emits and consumesperProducerBufferSize
- Buffer space used per producer. Default value is 16.
-
of
Creates aSource
that emits elements merged from a dynamic set of producers. After theSource
returned by this method is materialized, it returns aSink
as a materialized value. ThisSink
can be materialized arbitrary many times and each of the materializations will feed the elements into the originalSource
.Every new materialization of the
Source
results in a new, independent hub, which materializes to its ownSink
for feeding that materialization.Completed or failed
Sink
s are simply removed. Once theSource
is cancelled, the Hub is considered closed and any new producers using theSink
will be cancelled.- Parameters:
clazz
- Type of elements this hub emits and consumes
-
withDraining
public static <T> Source<T,Pair<Sink<T, withDrainingNotUsed>, MergeHub.DrainingControl>> (Class<T> clazz) Creates aSource
that emits elements merged from a dynamic set of producers. After theSource
returned by this method is materialized, it returns aSink
as a materialized value. ThisSink
can be materialized arbitrarily many times and each of the materializations will feed the elements into the originalSource
.Every new materialization of the
Source
results in a new, independent hub, which materializes to its ownSink
for feeding that materialization.Completed or failed
Sink
s are simply removed. Once theSource
is cancelled, the Hub is considered closed and any new producers using theSink
will be cancelled.The materialized
MergeHub.DrainingControl
can be used to drain the Hub: any new produces using theSink
will be cancelled and the Hub will be closed completing theSource
as soon as all currently connected producers complete.- Parameters:
clazz
- Type of elements this hub emits and consumes
-