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
Balance
has onein
port and 2 or moreout
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 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 newBalance
with the specified number of output ports.static <T> boolean
apply$default$2()
GraphStageLogic
createLogic(Attributes inheritedAttributes)
boolean
eagerCancel()
Inlet<T>
in()
Attributes
initialAttributes()
scala.collection.immutable.IndexedSeq<Outlet<T>>
out()
int
outputPorts()
UniformFanOutShape<T,T>
shape()
The shape of a graph is all that is externally visible: its inlets and outlets.java.lang.String
toString()
boolean
waitForAllDownstreams()
-
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 newBalance
with the specified number of output ports. This method setseagerCancel
tofalse
. To specify a different value for theeagerCancel
parameter, then instantiate Balance using the constructor.If
eagerCancel
is 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 = true
it 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:
initialAttributes
in classGraphStageWithMaterializedValue<UniformFanOutShape<T,T>,NotUsed>
-
shape
public UniformFanOutShape<T,T> shape()
Description copied from interface:Graph
The shape of a graph is all that is externally visible: its inlets and outlets.
-
createLogic
public GraphStageLogic createLogic(Attributes inheritedAttributes)
- Specified by:
createLogic
in classGraphStage<UniformFanOutShape<T,T>>
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-