Package org.apache.pekko.stream.stage
Class GraphStageLogic.SubSourceOutlet<T>
java.lang.Object
org.apache.pekko.stream.stage.GraphStageLogic.SubSourceOutlet<T>
- Enclosing class:
- GraphStageLogic
INTERNAL API
This allows the dynamic creation of an Outlet for a GraphStage which is
connected to a Source that is available for materialization (e.g. using
the subFusingMaterializer). Completion, cancellation and failure of the
parent operator is automatically delegated to instances of SubSourceOutlet
to avoid resource leaks.
Even so it is good practice to use the timeout method to cancel this
Outlet in case the corresponding Source is not materialized within a
given time limit, see e.g. ActorMaterializerSettings.
To be thread safe this method 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 and onPull.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcomplete()Complete this output port.voidFail this output port.booleanReturnstrueif this output port can be pushed.booleanisClosed()Returnstrueif this output port is closed, but caution THIS WORKS DIFFERENTLY THAN THE NORMAL isClosed(out).voidPush to this output port.voidsetHandler(OutHandler handler) Set OutHandler for this dynamic output port; this needs to be done before the first substream callback can arrive.source()Get the Source for this dynamic output port.voidtimeout(scala.concurrent.duration.FiniteDuration d) Set the source into timed-out mode if it has not yet been materialized.toString()
-
Constructor Details
-
SubSourceOutlet
-
-
Method Details
-
complete
public void complete()Complete this output port. -
fail
Fail this output port. -
isAvailable
public boolean isAvailable()Returnstrueif this output port can be pushed. -
isClosed
public boolean isClosed()Returnstrueif this output port is closed, but caution THIS WORKS DIFFERENTLY THAN THE NORMAL isClosed(out). Due to possibly asynchronous shutdown it may not returntrueimmediately aftercomplete()orfail()have returned. -
push
Push to this output port. -
setHandler
Set OutHandler for this dynamic output port; this needs to be done before the first substream callback can arrive. -
source
Get the Source for this dynamic output port. -
timeout
public void timeout(scala.concurrent.duration.FiniteDuration d) Set the source into timed-out mode if it has not yet been materialized. -
toString
-