org.querki.requester

RequesterImplicits

Related Doc: package requester

trait RequesterImplicits extends AnyRef

Implicit that hooks into *other* Actors, to provide the nice request() syntax to send messages to them. These implicits are available to any Actor that mixes in Requester, but RequesterImplicits should also be mixed into any other class that wants access to this capability. Those other classes must have access to a Requester -- usually, they should be functional classes owned *by* a Requester.

This trait gives you the functions that you actually call directly -- request(), requestFor() and requestFuture(). But those calls mostly create RequestM objects, and the actual work gets done by the associated Requester.

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. RequesterImplicits
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. implicit class RequestableActorRef extends AnyRef

    Hook to add the request() methods to a third-party Actor.

Abstract Value Members

  1. abstract def requester: Requester

    The actual Requester that is going to send the requests and process the responses.

    The actual Requester that is going to send the requests and process the responses. If you mix RequesterImplicits into a non-Requester, this must point to that Actor, which does all the real work. (If you are using this from within Requester, it's already set.)

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  13. final def notify(): Unit

    Definition Classes
    AnyRef
  14. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  15. def requestFuture[R](reqFunc: (Promise[R]) ⇒ Any)(implicit tag: ClassTag[R]): Future[R]

    This is a wrapper, intended to surround a request clause whose value you want to return as a Future.

    This is a wrapper, intended to surround a request clause whose value you want to return as a Future. There is no magic here -- it is simply syntactic sugar to make this pattern easier. You should use it along these lines:

    requestFuture[TargetType] { implicit promise =>
      for {
        v1 <- someActor.request(MyMessage)
        v2 <- anotherActor.request(AnotherMessage(v1))
      }
        promise.success(v2)
    }

    That is, requestFuture expects a block that takes a Promise of the type you want to return. This block should declare that Promise as implicit -- that implicit Promise gets sucked into the requests, and is used if an exception is thrown.

    reqFunc

    An arbitrarily-complex request clause, which eventually calls promise.success() when it gets the desired answer.

  16. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  17. def toString(): String

    Definition Classes
    AnyRef → Any
  18. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped