summaryrefslogtreecommitdiff
path: root/docs/examples/actors/customer.scala
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/actors/customer.scala')
-rw-r--r--docs/examples/actors/customer.scala56
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()
- }
-}