Akka
Packages
== Commonly Used Patterns With Akka ==
== Commonly Used Patterns With Akka ==
This package is used as a collection point for usage patterns which involve actors, futures, etc. but are loosely enough coupled to (multiple of) them to present them separately from the core implementation. Currently supported are:
-
ask: create a temporary one-off actor for receiving a reply to a message and complete a scala.concurrent.Future with it; returns said Future.
-
pipeTo: feed eventually computed value of a future to an akka.actor.ActorRef as a message.
-
pipeToSelection: feed eventually computed value of a future to an akka.actor.ActorSelection as a message.
In Scala the recommended usage is to import the pattern from the package object:
import akka.pattern.ask
ask(actor, message) // use it directly
actor ask message // use it by implicit conversion
For Java the patterns are available as static methods of the akka.pattern.Patterns class:
import static akka.pattern.Patterns.ask;
ask(actor, message);
== Extended Versions Of Akka Patterns ==
== Extended Versions Of Akka Patterns ==
This subpackage contains extended versions of Akka patterns.
Currently supported are:
- ask: create a temporary one-off actor for receiving a reply to a message and complete a scala.concurrent.Future with it; returns said Future. a message.
In Scala the recommended usage is to import the pattern from the package object:
import akka.pattern.extended.ask
ask(actor, askSender => Request(askSender)) // use it directly
actor ask (Request(_)) // use it by implicit conversion
For Java the patterns are available as static methods of the akka.pattern.Patterns class:
import static akka.pattern.Patterns.ask;
ask(actor, new akka.japi.Function<ActorRef, Object> {
Object apply(ActorRef askSender) {
return new Request(askSender);
}
});
INTERNAL API
INTERNAL API
Based on https://github.com/scala/scala-collection-compat/blob/master/compat/src/main/scala-2.13/scala/collection/compat/package.scala but reproduced here so we don't need to add a dependency on this library. It contains much more than we need right now, and is not promising binary compatibility yet at the time of writing.