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 interfaceA 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 aSourcethat emits elements merged from a dynamic set of producers.Creates aSourcethat emits elements merged from a dynamic set of producers.static <T> Source<T,Pair<Sink<T, NotUsed>, MergeHub.DrainingControl>> withDraining(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(Class<T> clazz, int perProducerBufferSize) Creates aSourcethat emits elements merged from a dynamic set of producers.
-
Constructor Details
-
MergeHub
public MergeHub()
-
-
Method Details
-
of
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, withDrainingNotUsed>, MergeHub.DrainingControl>> (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
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, withDrainingNotUsed>, MergeHub.DrainingControl>> (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
-