Skip to content

Instantly share code, notes, and snippets.

@orangy
Created December 26, 2014 15:57
Show Gist options
  • Save orangy/84a83d4eea393f0d6ffd to your computer and use it in GitHub Desktop.
Save orangy/84a83d4eea393f0d6ffd to your computer and use it in GitHub Desktop.
Primitive Akka request-response code
package org.jetbrains.akkatest
import akka.actor.*
import akka.routing.*
class Request
class Response
class Handler : UntypedActor() {
override fun onReceive(message: Any): Unit = when (message) {
is Request -> {
println("Got request")
getSender().tell(Response(), getSelf())
}
else -> unhandled(message)
}
}
class Requester : UntypedActor() {
val handler = getContext().actorOf(Props.create(javaClass<Handler>()))
override fun preStart() {
super.preStart()
handler.tell(Request(), getSelf())
}
override fun onReceive(message: Any?): Unit = when (message) {
is Response -> {
println("Got response")
}
else -> unhandled(message)
}
}
fun main(args: Array<String>) {
ActorSystem.create().actorOf(Props.create(javaClass<Requester>()))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment