package stage
- Alphabetic
- Public
- Protected
Type Members
- abstract class AbstractGraphStageWithMaterializedValue[+S <: Shape, M] extends GraphStageWithMaterializedValue[S, M]
Java API: A GraphStage represents a reusable graph stream processing operator.
Java API: A GraphStage represents a reusable graph stream processing operator.
Extend this
AbstractGraphStageWithMaterializedValue
if you want to provide a materialized value, represented by the type parameterM
. If your GraphStage does not need to provide a materialized value you can instead extend GraphStage which materializes a NotUsed value.A GraphStage consists of a Shape which describes its input and output ports and a factory function that creates a GraphStageLogic which implements the processing logic that ties the ports together.
See also GraphStageWithMaterializedValue for Scala DSL for this operator.
- abstract class AbstractInHandler extends InHandler
Java API: callbacks for an input port where termination logic is predefined (completing when upstream completes, failing when upstream fails).
- abstract class AbstractInOutHandler extends InHandler with OutHandler
Java API: callback combination for output and input ports where termination logic is predefined (completing when upstream completes, failing when upstream fails, completing when downstream cancels).
- abstract class AbstractOutHandler extends OutHandler
Java API: callbacks for an output port where termination logic is predefined (completing when downstream cancels).
- trait AsyncCallback[T] extends AnyRef
An asynchronous callback holder that is attached to a GraphStageLogic.
An asynchronous callback holder that is attached to a GraphStageLogic. Initializing AsyncCallback#invoke will eventually lead to the registered handler being called.
This holder has the same lifecycle as a stream and cannot be used before materialization is done.
Typical use cases are exchanging messages between stream and substreams or invoking from external world sending event to a stream
- abstract class GraphStage[S <: Shape] extends GraphStageWithMaterializedValue[S, NotUsed]
A GraphStage represents a reusable graph stream processing operator.
A GraphStage represents a reusable graph stream processing operator.
A GraphStage consists of a Shape which describes its input and output ports and a factory function that creates a GraphStageLogic which implements the processing logic that ties the ports together.
- abstract class GraphStageLogic extends AnyRef
Represents the processing logic behind a GraphStage.
Represents the processing logic behind a GraphStage. Roughly speaking, a subclass of GraphStageLogic is a collection of the following parts: * A set of InHandler and OutHandler instances and their assignments to the Inlets and Outlets of the enclosing GraphStage * Possible mutable state, accessible from the InHandler and OutHandler callbacks, but not from anywhere else (as such access would not be thread-safe) * The lifecycle hooks preStart and postStop * Methods for performing stream processing actions, like pulling or pushing elements
The operator logic is completed once all its input and output ports have been closed. This can be changed by setting
setKeepGoing
to true.The
postStop
lifecycle hook on the logic itself is called once all ports are closed. This is the only tear down callback that is guaranteed to happen, if the actor system or the materializer is terminated the handlers may never see any callbacks toonUpstreamFailure
,onUpstreamFinish
oronDownstreamFinish
. Therefore operator resource cleanup should always be done inpostStop
. - abstract class GraphStageLogicWithLogging extends GraphStageLogic with StageLogging
Java API: GraphStageLogic with StageLogging.
- abstract class GraphStageWithMaterializedValue[+S <: Shape, +M] extends Graph[S, M]
Scala API: A GraphStage represents a reusable graph stream processing operator.
Scala API: A GraphStage represents a reusable graph stream processing operator.
Extend this
GraphStageWithMaterializedValue
if you want to provide a materialized value, represented by the type parameterM
. If your GraphStage does not need to provide a materialized value you can instead extende GraphStage which materializes a NotUsed value.A GraphStage consists of a Shape which describes its input and output ports and a factory function that creates a GraphStageLogic which implements the processing logic that ties the ports together.
See also AbstractGraphStageWithMaterializedValue for Java DSL for this operator.
- trait InHandler extends AnyRef
Collection of callbacks for an input port of a GraphStage
- trait OutHandler extends AnyRef
Collection of callbacks for an output port of a GraphStage
- trait StageLogging extends AnyRef
Simple way to obtain a pekko.event.LoggingAdapter when used together with an pekko.stream.Materializer.
Simple way to obtain a pekko.event.LoggingAdapter when used together with an pekko.stream.Materializer. If used with a different materializer pekko.event.NoLogging will be returned.
Make sure to only access
log
from GraphStage callbacks (such aspull
,push
or the async-callback).Note, abiding to pekko.stream.ActorAttributes.logLevels has to be done manually, the logger itself is configured based on the logSource provided to it. Also, the
log
itself would not know if you're calling it from a "on element" context or not, which is why these decisions have to be handled by the operator itself. - abstract class TimerGraphStageLogic extends GraphStageLogic
Provides timer related facilities to a GraphStageLogic.
Provides timer related facilities to a GraphStageLogic.
To be thread safe the methods of this class must only be called from either the constructor of the graph operator during materialization or one of the methods invoked by the graph operator machinery, such as
onPush
andonPull
. - abstract class TimerGraphStageLogicWithLogging extends TimerGraphStageLogic with StageLogging
Java API: TimerGraphStageLogic with StageLogging.
Value Members
- object GraphStageLogic