Составление поведения трейта в Scala в методе приема Akka

Рассмотрим эти две черты:

trait Poked extends Actor {
  override def receive = {
    case Poke(port, x) => ReceivePoke(port, x)
  }

  def ReceivePoke(port: String, x: Any)
}

trait Peeked extends Actor {
  override def receive = {
    case Peek(port) => ReceivePeek(port)
  }

  def ReceivePeek(port: String)
}

Теперь представьте, что я могу создать нового Актера, реализующего обе черты:

val peekedpoked = actorRef(new Actor extends Poked with Peeked)

Как мне составить обработчики приема? т.е. получатель должен быть чем-то вроде следующего кода, хотя и «сгенерированным автоматически» (т.е. все признаки должны составлять):

def receive = (Poked.receive: Receive) orElse (Peeked.receive: Receive) orElse ...
20
задан Seth Tisue 1 February 2015 в 23:47
поделиться