Interface EntityRef<M>

  • All Superinterfaces:
    RecipientRef<M>
    All Known Implementing Classes:
    EntityRefImpl

    public interface EntityRef<M>
    extends RecipientRef<M>
    Send a message to the entity referenced by this EntityRef using *at-most-once* messaging semantics.

    Example usage:

    
     val target: EntityRef[String] = ...
     target.tell("Hello")
     
    • Method Detail

      • $bang

        void $bang​(M msg)
        Send a message to the entity referenced by this EntityRef using *at-most-once* messaging semantics.

        Example usage:

        
         val target: EntityRef[String] = ...
         target ! "Hello"
         
        Parameters:
        msg - (undocumented)
      • $qmark

        <Res> scala.concurrent.Future<Res> $qmark​(scala.Function1<ActorRef<Res>,​M> message,
                                                  Timeout timeout)
        Allows to "ask" the EntityRef for a reply. See AskPattern for a complete write-up of this pattern

        Note that if you are inside of an actor you should prefer akka.actor.typed.scaladsl.ActorContext.ask as that provides better safety.

        Example usage:

        
         case class Request(msg: String, replyTo: ActorRef[Reply])
         case class Reply(msg: String)
        
         implicit val timeout = Timeout(3.seconds)
         val target: EntityRef[Request] = ...
         val f: Future[Reply] = target ? (replyTo => Request("hello", replyTo))
         

        Please note that an implicit Timeout must be available to use this pattern.

        Note: it is preferrable to use the non-symbolic ask method as it easier allows for wildcards for the replyTo: ActorRef.

        Parameters:
        message - (undocumented)
        timeout - (undocumented)
        Returns:
        (undocumented)
      • ask

        <Res> scala.concurrent.Future<Res> ask​(scala.Function1<ActorRef<Res>,​M> f,
                                               Timeout timeout)
        Allows to "ask" the EntityRef for a reply. See AskPattern for a complete write-up of this pattern

        Note that if you are inside of an actor you should prefer akka.actor.typed.scaladsl.ActorContext.ask as that provides better safety.

        Example usage:

        
         case class Request(msg: String, replyTo: ActorRef[Reply])
         case class Reply(msg: String)
        
         implicit val timeout = Timeout(3.seconds)
         val target: EntityRef[Request] = ...
         val f: Future[Reply] = target.ask(Request("hello", _))
         

        Please note that an implicit Timeout must be available to use this pattern.

        Parameters:
        f - (undocumented)
        timeout - (undocumented)
        Returns:
        (undocumented)
      • tell

        void tell​(M msg)
        Send a message to the entity referenced by this EntityRef using *at-most-once* messaging semantics.

        Example usage:

        
         val target: EntityRef[String] = ...
         target.tell("Hello")
         
        Specified by:
        tell in interface RecipientRef<M>
        Parameters:
        msg - (undocumented)