Class GraphStageLogic.SubSourceOutlet<T>

  • Enclosing class:
    GraphStageLogic

    public class GraphStageLogic.SubSourceOutlet<T>
    extends java.lang.Object
    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 
      Constructor Description
      SubSourceOutlet​(java.lang.String name)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void complete()
      Complete this output port.
      void fail​(java.lang.Throwable ex)
      Fail this output port.
      boolean isAvailable()
      Returns true if this output port can be pushed.
      boolean isClosed()
      Returns true if this output port is closed, but caution THIS WORKS DIFFERENTLY THAN THE NORMAL isClosed(out).
      void push​(T elem)
      Push to this output port.
      void setHandler​(OutHandler handler)
      Set OutHandler for this dynamic output port; this needs to be done before the first substream callback can arrive.
      Graph<SourceShape<T>,​NotUsed> source()
      Get the Source for this dynamic output port.
      void timeout​(scala.concurrent.duration.FiniteDuration d)
      Set the source into timed-out mode if it has not yet been materialized.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • SubSourceOutlet

        public SubSourceOutlet​(java.lang.String name)
    • Method Detail

      • complete

        public void complete()
        Complete this output port.
      • fail

        public void fail​(java.lang.Throwable ex)
        Fail this output port.
      • isAvailable

        public boolean isAvailable()
        Returns true if this output port can be pushed.
      • isClosed

        public boolean isClosed()
        Returns true if this output port is closed, but caution THIS WORKS DIFFERENTLY THAN THE NORMAL isClosed(out). Due to possibly asynchronous shutdown it may not return true immediately after complete() or fail() have returned.
      • push

        public void push​(T elem)
        Push to this output port.
      • setHandler

        public void setHandler​(OutHandler handler)
        Set OutHandler for this dynamic output port; this needs to be done before the first substream callback can arrive.
      • timeout

        public void timeout​(scala.concurrent.duration.FiniteDuration d)
        Set the source into timed-out mode if it has not yet been materialized.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object