Class MergeHub
- java.lang.Object
-
- akka.stream.javadsl.MergeHub
-
public class MergeHub extends java.lang.ObjectA MergeHub is a special streaming hub that is able to collect streamed elements from a dynamic set of producers. It consists of two parts, aSourceand aSink. TheSourcestreams the element to a consumer from its merged inputs. Once the consumer has been materialized, theSourcereturns a materialized value which is the correspondingSink. ThisSinkcan then be materialized arbitrary many times, where each of the new materializations will feed its consumed elements to the originalSource.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceMergeHub.DrainingControlA 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 Constructor Description MergeHub()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> Source<T,Sink<T,NotUsed>>of(java.lang.Class<T> clazz)Creates aSourcethat emits elements merged from a dynamic set of producers.static <T> Source<T,Sink<T,NotUsed>>of(java.lang.Class<T> clazz, int perProducerBufferSize)Creates aSourcethat emits elements merged from a dynamic set of producers.static <T> Source<T,Pair<Sink<T,NotUsed>,MergeHub.DrainingControl>>withDraining(java.lang.Class<T> clazz)Creates aSourcethat emits elements merged from a dynamic set of producers.static <T> Source<T,Pair<Sink<T,NotUsed>,MergeHub.DrainingControl>>withDraining(java.lang.Class<T> clazz, int perProducerBufferSize)Creates aSourcethat emits elements merged from a dynamic set of producers.
-
-
-
Method Detail
-
of
public static <T> Source<T,Sink<T,NotUsed>> of(java.lang.Class<T> clazz, int perProducerBufferSize)
Creates aSourcethat emits elements merged from a dynamic set of producers. After theSourcereturned by this method is materialized, it returns aSinkas a materialized value. ThisSinkcan be materialized arbitrary many times and each of the materializations will feed the elements into the originalSource.Every new materialization of the
Sourceresults in a new, independent hub, which materializes to its ownSinkfor feeding that materialization.Completed or failed
Sinks are simply removed. Once theSourceis cancelled, the Hub is considered closed and any new producers using theSinkwill 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,NotUsed>,MergeHub.DrainingControl>> withDraining(java.lang.Class<T> clazz, int perProducerBufferSize)
Creates aSourcethat emits elements merged from a dynamic set of producers. After theSourcereturned by this method is materialized, it returns aSinkas a materialized value. ThisSinkcan be materialized arbitrarily many times and each of the materializations will feed the elements into the originalSource.Every new materialization of the
Sourceresults in a new, independent hub, which materializes to its ownSinkfor feeding that materialization.Completed or failed
Sinks are simply removed. Once theSourceis cancelled, the Hub is considered closed and any new producers using theSinkwill be cancelled.The materialized
MergeHub.DrainingControlcan be used to drain the Hub: any new produces using theSinkwill be cancelled and the Hub will be closed completing theSourceas 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 static <T> Source<T,Sink<T,NotUsed>> of(java.lang.Class<T> clazz)
Creates aSourcethat emits elements merged from a dynamic set of producers. After theSourcereturned by this method is materialized, it returns aSinkas a materialized value. ThisSinkcan be materialized arbitrary many times and each of the materializations will feed the elements into the originalSource.Every new materialization of the
Sourceresults in a new, independent hub, which materializes to its ownSinkfor feeding that materialization.Completed or failed
Sinks are simply removed. Once theSourceis cancelled, the Hub is considered closed and any new producers using theSinkwill be cancelled.- Parameters:
clazz- Type of elements this hub emits and consumes
-
withDraining
public static <T> Source<T,Pair<Sink<T,NotUsed>,MergeHub.DrainingControl>> withDraining(java.lang.Class<T> clazz)
Creates aSourcethat emits elements merged from a dynamic set of producers. After theSourcereturned by this method is materialized, it returns aSinkas a materialized value. ThisSinkcan be materialized arbitrarily many times and each of the materializations will feed the elements into the originalSource.Every new materialization of the
Sourceresults in a new, independent hub, which materializes to its ownSinkfor feeding that materialization.Completed or failed
Sinks are simply removed. Once theSourceis cancelled, the Hub is considered closed and any new producers using theSinkwill be cancelled.The materialized
MergeHub.DrainingControlcan be used to drain the Hub: any new produces using theSinkwill be cancelled and the Hub will be closed completing theSourceas soon as all currently connected producers complete.- Parameters:
clazz- Type of elements this hub emits and consumes
-
-