Class ActorSink


  • public class ActorSink
    extends java.lang.Object
    Collection of Sinks aimed at integrating with typed Actors.
    • Constructor Summary

      Constructors 
      Constructor Description
      ActorSink()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <T> Sink<T,​NotUsed> actorRef​(ActorRef<T> ref, T onCompleteMessage, scala.Function1<java.lang.Throwable,​T> onFailureMessage)
      Sends the elements of the stream to the given ActorRef.
      static <T,​M,​A>
      Sink<T,​NotUsed>
      actorRefWithBackpressure​(ActorRef<M> ref, scala.Function2<ActorRef<A>,​T,​M> messageAdapter, scala.Function1<ActorRef<A>,​M> onInitMessage, A ackMessage, M onCompleteMessage, scala.Function1<java.lang.Throwable,​M> onFailureMessage)
      Sends the elements of the stream to the given ActorRef that sends back back-pressure signals.
      static <T,​M,​A>
      Sink<T,​NotUsed>
      actorRefWithBackpressure​(ActorRef<M> ref, scala.Function2<ActorRef<A>,​T,​M> messageAdapter, scala.Function1<ActorRef<A>,​M> onInitMessage, M onCompleteMessage, scala.Function1<java.lang.Throwable,​M> onFailureMessage)
      Sends the elements of the stream to the given ActorRef that sends back back-pressure signals.
      • Methods inherited from class java.lang.Object

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

      • ActorSink

        public ActorSink()
    • Method Detail

      • actorRef

        public static <T> Sink<T,​NotUsed> actorRef​(ActorRef<T> ref,
                                                         T onCompleteMessage,
                                                         scala.Function1<java.lang.Throwable,​T> onFailureMessage)
        Sends the elements of the stream to the given ActorRef. If the target actor terminates the stream will be canceled. When the stream is completed successfully the given onCompleteMessage will be sent to the destination actor. When the stream is completed with failure a the throwable that was signaled to the stream is adapted to the Actors protocol using onFailureMessage and then then sent to the destination actor.

        It will request at most maxInputBufferSize number of elements from upstream, but there is no back-pressure signal from the destination actor, i.e. if the actor is not consuming the messages fast enough the mailbox of the actor will grow. For potentially slow consumer actors it is recommended to use a bounded mailbox with zero mailbox-push-timeout-time or use a rate limiting stage in front of this Sink.

      • actorRefWithBackpressure

        public static <T,​M,​A> Sink<T,​NotUsed> actorRefWithBackpressure​(ActorRef<M> ref,
                                                                                         scala.Function2<ActorRef<A>,​T,​M> messageAdapter,
                                                                                         scala.Function1<ActorRef<A>,​M> onInitMessage,
                                                                                         A ackMessage,
                                                                                         M onCompleteMessage,
                                                                                         scala.Function1<java.lang.Throwable,​M> onFailureMessage)
        Sends the elements of the stream to the given ActorRef that sends back back-pressure signals. The first element is always onInitMessage, then stream is waiting for acknowledgement message ackMessage from the given actor which means that it is ready to process elements. It also requires ackMessage message after each stream element to make backpressure work.

        If the target actor terminates the stream will be canceled. When the stream is completed successfully the given onCompleteMessage will be sent to the destination actor. When the stream is completed with failure - result of onFailureMessage(throwable) function will be sent to the destination actor.

        Parameters:
        ref - the receiving actor as ActorRef[T] (where T must include the control messages below)
        messageAdapter - a function that wraps the stream elements to be sent to the actor together with an ActorRef[A] which accepts the ack message
        onInitMessage - a function that wraps an ActorRef[A] into a messages to couple the receiving actor to the sink
        ackMessage - a fixed message that is expected after every element sent to the receiving actor
        onCompleteMessage - the message to be sent to the actor when the stream completes
        onFailureMessage - a function that creates a message to be sent to the actor in case the stream fails from a Throwable
      • actorRefWithBackpressure

        public static <T,​M,​A> Sink<T,​NotUsed> actorRefWithBackpressure​(ActorRef<M> ref,
                                                                                         scala.Function2<ActorRef<A>,​T,​M> messageAdapter,
                                                                                         scala.Function1<ActorRef<A>,​M> onInitMessage,
                                                                                         M onCompleteMessage,
                                                                                         scala.Function1<java.lang.Throwable,​M> onFailureMessage)
        Sends the elements of the stream to the given ActorRef that sends back back-pressure signals. The first element is always onInitMessage, then stream is waiting for acknowledgement message from the given actor which means that it is ready to process elements. It also requires an ack message after each stream element to make backpressure work. This variant will consider any message as ack message.

        If the target actor terminates the stream will be canceled. When the stream is completed successfully the given onCompleteMessage will be sent to the destination actor. When the stream is completed with failure - result of onFailureMessage(throwable) function will be sent to the destination actor.

        Parameters:
        ref - the receiving actor as ActorRef[T] (where T must include the control messages below)
        messageAdapter - a function that wraps the stream elements to be sent to the actor together with an ActorRef[A] which accepts the ack message
        onInitMessage - a function that wraps an ActorRef[A] into a messages to couple the receiving actor to the sink
        onCompleteMessage - the message to be sent to the actor when the stream completes
        onFailureMessage - a function that creates a message to be sent to the actor in case the stream fails from a Throwable