Advertisement
Guest User

Untitled

a guest
Jul 7th, 2014
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.74 KB | None | 0 0
  1. import akka.actor.{ ActorRef, ActorSystem, Props, Actor, Inbox }
  2. import scala.concurrent.Future
  3. import scala.concurrent.ExecutionContext.Implicits.global
  4.  
  5. case class TestRange(candidate: Long, start: Long, stop: Long)
  6. case class FinishedNoneFound(start: Long, stop: Long)
  7. case class Found(divisor: Long)
  8.  
  9. class TesterWorker extends Actor {
  10.   def receive = {
  11.     case TestRange(candidate, start, stop) => {
  12.       println(s"testing range ${start} to ${stop}")
  13.       val originalSender = sender
  14.       val futResult = Future { (start to stop) find (d => (candidate % d) == 0) }
  15.  
  16.       futResult map {
  17.         case None => originalSender ! FinishedNoneFound(start, stop)
  18.         case Some(d) => originalSender ! Found(d)
  19.       }
  20.     }
  21.   }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement