Packages

final case class ReceiveMessage[Message]() extends Keyword[ReceiveMessage[Message], Message] with Product with Serializable

A keyword to receive next message of an Akka actor.

Installation

This ReceiveMessage keyword supports !-notation, which requires BangNotation and ResetEverywhere compiler plugins along with this receivemessage library. For sbt, add the following settings to your build.sbt:

addCompilerPlugin("com.thoughtworks.dsl" %% "compilerplugins-bangnotation" % "latest.release")
addCompilerPlugin("com.thoughtworks.dsl" %% "compilerplugins-reseteverywhere" % "latest.release")
libraryDependencies += "com.yang-bo.dsl.keywords.akka.actor" %% "receivemessage" % "latest.release"

Author:

杨博 (Yang Bo)

Message

The type of message being received, which must be Any for akka.actor.Actor, and must be the same type of T for akka.actor.typed.Behavior.

Source
ReceiveMessage.scala
Example:
  1. This ReceiveMessage keyword can be used in the akka.actor.Actor.Receive domain, to receive the next message. The above code creates an actor to echo any messages.

    import akka.actor._
    def echoActor = new Actor {
      def receive: Receive = {
        while (true) {
          val lastMessage = !ReceiveMessage[Any]
          sender() ! lastMessage
        }
        throw new Exception("Unreachable code!")
      }
    }
    
    val pinger = system.actorOf(Props(echoActor))
    pinger ! "hello world"
    expectMsg("hello world")
See also

domains.akka.actor.typed.typedReceiveMessageDsl for usage in the typed actor domains.

Linear Supertypes
Serializable, Product, Equals, Keyword[ReceiveMessage[Message], Message], AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ReceiveMessage
  2. Serializable
  3. Product
  4. Equals
  5. Keyword
  6. AnyRef
  7. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new ReceiveMessage()

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from ReceiveMessage[Message] toany2stringadd[ReceiveMessage[Message]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (ReceiveMessage[Message], B)
    Implicit
    This member is added by an implicit conversion from ReceiveMessage[Message] toArrowAssoc[ReceiveMessage[Message]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def apply[Domain](handler: (Message) => Domain)(implicit dsl: Dsl[ReceiveMessage[Message], Domain, Message]): Domain
    Definition Classes
    Keyword
    Annotations
    @inline()
  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  9. final def cpsApply[Domain](handler: (Message) => Domain)(implicit dsl: Dsl[ReceiveMessage[Message], Domain, Message]): Domain
    Definition Classes
    Keyword
    Annotations
    @inline()
  10. def ensuring(cond: (ReceiveMessage[Message]) => Boolean, msg: => Any): ReceiveMessage[Message]
    Implicit
    This member is added by an implicit conversion from ReceiveMessage[Message] toEnsuring[ReceiveMessage[Message]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: (ReceiveMessage[Message]) => Boolean): ReceiveMessage[Message]
    Implicit
    This member is added by an implicit conversion from ReceiveMessage[Message] toEnsuring[ReceiveMessage[Message]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: Boolean, msg: => Any): ReceiveMessage[Message]
    Implicit
    This member is added by an implicit conversion from ReceiveMessage[Message] toEnsuring[ReceiveMessage[Message]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: Boolean): ReceiveMessage[Message]
    Implicit
    This member is added by an implicit conversion from ReceiveMessage[Message] toEnsuring[ReceiveMessage[Message]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from ReceiveMessage[Message] toStringFormat[ReceiveMessage[Message]] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  16. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  17. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  18. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  20. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  21. def productElementNames: Iterator[String]
    Definition Classes
    Product
  22. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  23. final def unary_!: Message
    Definition Classes
    Keyword
    Annotations
    @shift() @compileTimeOnly("This method requires the compiler plugin: `addCompilerPlugin(\"com.thoughtworks.dsl\" %% \"compilerplugins-bangnotation\" % \"latest.release\")` and must only be called inside a code block annotated as `@reset`.")
  24. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  25. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  26. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @deprecated
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

  2. def [B](y: B): (ReceiveMessage[Message], B)
    Implicit
    This member is added by an implicit conversion from ReceiveMessage[Message] toArrowAssoc[ReceiveMessage[Message]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from Keyword[ReceiveMessage[Message], Message]

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromReceiveMessage[Message] to any2stringadd[ReceiveMessage[Message]]

Inherited by implicit conversion StringFormat fromReceiveMessage[Message] to StringFormat[ReceiveMessage[Message]]

Inherited by implicit conversion Ensuring fromReceiveMessage[Message] to Ensuring[ReceiveMessage[Message]]

Inherited by implicit conversion ArrowAssoc fromReceiveMessage[Message] to ArrowAssoc[ReceiveMessage[Message]]

Ungrouped