Package org.apache.pekko.stream.scaladsl
Class Broadcast<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.Broadcast<T>
- All Implemented Interfaces:
Graph<UniformFanOutShape<T,,T>, NotUsed> TypePreservingFanOut
public final class Broadcast<T>
extends GraphStage<UniformFanOutShape<T,T>>
implements TypePreservingFanOut
Fan-out the stream to several streams emitting each incoming upstream element to all downstream consumers.
It will not shut down until the subscriptions for at least two downstream subscribers have been established.
'''Emits when''' all of the outputs stops backpressuring and there is an input element available
'''Backpressures when''' any 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> Broadcast<T>apply(int outputPorts, boolean eagerCancel) Create a newBroadcastwith the specified number of output ports.static <T> Broadcast<T>apply(int outputPorts, boolean eagerCancel, scala.collection.immutable.Set<Object> nonEagerCancelOutputs) Create a newBroadcastwith the specified number of output ports and per-output cancellation behavior.static <T> booleancreateLogic(Attributes inheritedAttributes) booleanin()scala.collection.immutable.Set<Object>Set of output port indices whose cancellation should not trigger upstream cancellation.out()intshape()The shape of a graph is all that is externally visible: its inlets and outlets.toString()Methods 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
-
Broadcast
public Broadcast(int outputPorts, boolean eagerCancel) -
Broadcast
public Broadcast(int outputPorts, boolean eagerCancel, scala.collection.immutable.Set<Object> nonEagerCancelOutputs) Create a newBroadcastwith per-output cancellation behavior.- Parameters:
nonEagerCancelOutputs- set of output port indices whose cancellation should not trigger upstream cancellation wheneagerCancelistrue. These outputs are silently removed from the broadcast when they cancel, and elements continue flowing to the remaining outputs. Must be empty wheneagerCancelisfalse(where the parameter would be meaningless).- Since:
- 2.0.0
-
-
Method Details
-
apply
Create a newBroadcastwith the specified number of output ports.- Parameters:
outputPorts- number of output portseagerCancel- if true, broadcast cancels upstream if any of its downstreams cancel.
-
apply
public static <T> Broadcast<T> apply(int outputPorts, boolean eagerCancel, scala.collection.immutable.Set<Object> nonEagerCancelOutputs) Create a newBroadcastwith the specified number of output ports and per-output cancellation behavior.- Parameters:
outputPorts- number of output portseagerCancel- if true, broadcast cancels upstream if any of its downstreams cancel (except those listed innonEagerCancelOutputs).nonEagerCancelOutputs- set of output port indices whose cancellation should not trigger upstream cancellation. These outputs are silently removed from the broadcast when they cancel, and elements continue flowing to the remaining outputs.- Since:
- 2.0.0
-
apply$default$2
public static <T> boolean apply$default$2() -
outputPorts
public int outputPorts() -
eagerCancel
public boolean eagerCancel() -
nonEagerCancelOutputs
Set of output port indices whose cancellation should not trigger upstream cancellation. Only meaningful wheneagerCancelistrue; these outputs are silently removed from the broadcast when they cancel, and elements continue flowing to the remaining outputs.- Since:
- 2.0.0
-
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
-