diff options
Diffstat (limited to 'docs/examples/actors/customer.scala')
-rw-r--r-- | docs/examples/actors/customer.scala | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/docs/examples/actors/customer.scala b/docs/examples/actors/customer.scala deleted file mode 100644 index 32787092d1..0000000000 --- a/docs/examples/actors/customer.scala +++ /dev/null @@ -1,56 +0,0 @@ -/** - * @author Philipp Haller <philipp.haller@epfl.ch> - * - * This shows "customer passing" for implementing - * recursive algorithms using actors. - */ - -package examples.actors - -import scala.actors.single.Actor - -case class Factorial(n: int, resTo: Actor[int]) - -class FactorialProcess extends Actor[Factorial] { - override def run: unit = { - receive { - case Factorial(n, resTo) => - if (n == 0) { - resTo ! 1 - } - else { - val m = new MultiplyActor(n, resTo) - m.start() - this ! Factorial(n-1, m) - } - run - } - } -} - -class MultiplyActor(factor: int, resTo: Actor[int]) extends Actor[int] { - override def run: unit = - receive { - case value: int => - resTo ! factor * value - } -} - -object CustomerPassing { - def main(args: Array[String]): unit = { - val fac = new FactorialProcess - fac.start() - - val c = new Actor[int] { - override def run: unit = { - fac ! Factorial(3, this) - - receive { - case value: int => - System.out.println("Result: " + value) - } - } - } - c.start() - } -} |