Class MergeHub$
- java.lang.Object
-
- org.apache.pekko.stream.javadsl.MergeHub$
-
public class MergeHub$ extends java.lang.Object
A MergeHub is a special streaming hub that is able to collect streamed elements from a dynamic set of producers. It consists of two parts, aSource
and aSink
. TheSource
streams the element to a consumer from its merged inputs. Once the consumer has been materialized, theSource
returns a materialized value which is the correspondingSink
. ThisSink
can then be materialized arbitrary many times, where each of the new materializations will feed its consumed elements to the originalSource
.
-
-
Constructor Summary
Constructors Constructor Description MergeHub$()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> Source<T,Sink<T,NotUsed>>
of(java.lang.Class<T> clazz)
Creates aSource
that emits elements merged from a dynamic set of producers.<T> Source<T,Sink<T,NotUsed>>
of(java.lang.Class<T> clazz, int perProducerBufferSize)
Creates aSource
that emits elements merged from a dynamic set of producers.<T> Source<T,Pair<Sink<T,NotUsed>,MergeHub.DrainingControl>>
withDraining(java.lang.Class<T> clazz)
Creates aSource
that emits elements merged from a dynamic set of producers.<T> Source<T,Pair<Sink<T,NotUsed>,MergeHub.DrainingControl>>
withDraining(java.lang.Class<T> clazz, int perProducerBufferSize)
Creates aSource
that emits elements merged from a dynamic set of producers.
-
-
-
Field Detail
-
MODULE$
public static final MergeHub$ MODULE$
Static reference to the singleton instance of this Scala object.
-
-
Method Detail
-
of
public <T> Source<T,Sink<T,NotUsed>> of(java.lang.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 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 <T> Source<T,Pair<Sink<T,NotUsed>,MergeHub.DrainingControl>> withDraining(java.lang.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
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
public <T> Source<T,Sink<T,NotUsed>> of(java.lang.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 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 <T> Source<T,Pair<Sink<T,NotUsed>,MergeHub.DrainingControl>> withDraining(java.lang.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
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
-
-