Package org.apache.pekko.stream.scaladsl
Class Balance<T>
java.lang.Object
org.apache.pekko.stream.stage.GraphStageWithMaterializedValue<S,NotUsed>
org.apache.pekko.stream.stage.GraphStage<UniformFanOutShape<T,T>>
org.apache.pekko.stream.scaladsl.Balance<T>
- All Implemented Interfaces:
Graph<UniformFanOutShape<T,T>, NotUsed>
Fan-out the stream to several streams. Each upstream element is emitted to the first available downstream consumer.
It will not shut down until the subscriptions
for at least two downstream subscribers have been established.
A Balance has one in port and 2 or more out ports.
'''Emits when''' any of the outputs stops backpressuring; emits the element to the first available output
'''Backpressures when''' all of the outputs backpressure
'''Completes when''' upstream completes
'''Cancels when''' If eagerCancel is enabled: when any downstream cancels; otherwise: when all downstreams cancel
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.pekko.stream.Graph
Graph.GraphMapMatVal<S extends Shape,M> -
Constructor Summary
ConstructorsConstructorDescriptionBalance(int outputPorts, boolean waitForAllDownstreams, boolean eagerCancel) -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> Balance<T>apply(int outputPorts, boolean waitForAllDownstreams) Create a newBalancewith the specified number of output ports.static <T> booleancreateLogic(Attributes inheritedAttributes) booleanin()out()intshape()The shape of a graph is all that is externally visible: its inlets and outlets.toString()booleanMethods inherited from class org.apache.pekko.stream.stage.GraphStage
createLogicAndMaterializedValueMethods inherited from class org.apache.pekko.stream.stage.GraphStageWithMaterializedValue
withAttributesMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.pekko.stream.Graph
addAttributes, async, async, async, getAttributes, named
-
Constructor Details
-
Balance
public Balance(int outputPorts, boolean waitForAllDownstreams, boolean eagerCancel)
-
-
Method Details
-
apply
Create a newBalancewith the specified number of output ports. This method setseagerCanceltofalse. To specify a different value for theeagerCancelparameter, then instantiate Balance using the constructor.If
eagerCancelis true, balance cancels upstream if any of its downstreams cancel, if false, when all have cancelled.- Parameters:
outputPorts- number of output portswaitForAllDownstreams- if you usewaitForAllDownstreams = trueit will not start emitting elements to downstream outputs until all of them have requested at least one element, default value isfalse
-
apply$default$2
public static <T> boolean apply$default$2() -
outputPorts
public int outputPorts() -
waitForAllDownstreams
public boolean waitForAllDownstreams() -
eagerCancel
public boolean eagerCancel() -
in
-
out
-
initialAttributes
- Overrides:
initialAttributesin classGraphStageWithMaterializedValue<UniformFanOutShape<T,T>, NotUsed>
-
shape
Description copied from interface:GraphThe shape of a graph is all that is externally visible: its inlets and outlets. -
createLogic
- Specified by:
createLogicin classGraphStage<UniformFanOutShape<T,T>>
-
toString
-