Package akka.stream.scaladsl
Class Balance<T>
- java.lang.Object
-
- akka.stream.stage.GraphStageWithMaterializedValue<S,NotUsed>
-
- akka.stream.stage.GraphStage<UniformFanOutShape<T,T>>
-
- akka.stream.scaladsl.Balance<T>
-
- All Implemented Interfaces:
Graph<UniformFanOutShape<T,T>,NotUsed>
public final class Balance<T> extends GraphStage<UniformFanOutShape<T,T>>
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
Balancehas oneinport and 2 or moreoutports.'''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 akka.stream.Graph
Graph.GraphMapMatVal<S extends Shape,M>
-
-
Constructor Summary
Constructors Constructor Description Balance(int outputPorts, boolean waitForAllDownstreams, boolean eagerCancel)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <T> Balance<T>apply(int outputPorts, boolean waitForAllDownstreams)Create a newBalancewith the specified number of output ports.static <T> booleanapply$default$2()GraphStageLogiccreateLogic(Attributes inheritedAttributes)booleaneagerCancel()Inlet<T>in()AttributesinitialAttributes()scala.collection.immutable.IndexedSeq<Outlet<T>>out()intoutputPorts()UniformFanOutShape<T,T>shape()The shape of a graph is all that is externally visible: its inlets and outlets.java.lang.StringtoString()booleanwaitForAllDownstreams()-
Methods inherited from class akka.stream.stage.GraphStage
createLogicAndMaterializedValue
-
Methods inherited from class akka.stream.stage.GraphStageWithMaterializedValue
withAttributes
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface akka.stream.Graph
addAttributes, async, async, async, getAttributes, named
-
-
-
-
Method Detail
-
apply
public static <T> Balance<T> apply(int outputPorts, boolean waitForAllDownstreams)
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()
-
initialAttributes
public Attributes initialAttributes()
- Overrides:
initialAttributesin classGraphStageWithMaterializedValue<UniformFanOutShape<T,T>,NotUsed>
-
shape
public UniformFanOutShape<T,T> shape()
Description copied from interface:GraphThe shape of a graph is all that is externally visible: its inlets and outlets.
-
createLogic
public GraphStageLogic createLogic(Attributes inheritedAttributes)
- Specified by:
createLogicin classGraphStage<UniformFanOutShape<T,T>>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-