summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2006-07-14 12:44:35 +0000
committerPhilipp Haller <hallerp@gmail.com>2006-07-14 12:44:35 +0000
commit9d95c090f440956f856468dc59bdfd0ff560314b (patch)
tree82321355c0bef6f2c495fa30caa1b73331673d88 /docs
parent56c803d9c5b784d41e4d14b41d18d361e5830b31 (diff)
downloadscala-9d95c090f440956f856468dc59bdfd0ff560314b.tar.gz
scala-9d95c090f440956f856468dc59bdfd0ff560314b.tar.bz2
scala-9d95c090f440956f856468dc59bdfd0ff560314b.zip
Updated actor examples.
Diffstat (limited to 'docs')
-rw-r--r--docs/examples/actors/counter.scala12
-rw-r--r--docs/examples/actors/customer.scala34
2 files changed, 16 insertions, 30 deletions
diff --git a/docs/examples/actors/counter.scala b/docs/examples/actors/counter.scala
index 1224853432..e768a8f9ef 100644
--- a/docs/examples/actors/counter.scala
+++ b/docs/examples/actors/counter.scala
@@ -1,17 +1,15 @@
/**
* @author Philipp Haller <philipp.haller@epfl.ch>
- *
*/
package examples.actors
-import scala.actors.multi.Pid
+import scala.actors.Process
import scala.actors.distributed.{RemoteActor,TCP,TcpNode,TcpService}
-abstract class CounterMessage
-case class Incr() extends CounterMessage
-case class Value(p: Pid) extends CounterMessage
-case class Result(v: int) extends CounterMessage
+case class Incr()
+case class Value(p: Process)
+case class Result(v: int)
class Counter extends RemoteActor {
override def run(): unit =
@@ -39,7 +37,7 @@ class CounterUser extends RemoteActor {
spawn(TcpNode(host, 9090), classOf[Counter].getName())
receive {
- case p: Pid =>
+ case p: Process =>
// communicate with counter
Console.println("" + node + ": Sending Incr() to remote Counter (" + p + ")...")
p ! Incr()
diff --git a/docs/examples/actors/customer.scala b/docs/examples/actors/customer.scala
index 80c2664130..58ba55b014 100644
--- a/docs/examples/actors/customer.scala
+++ b/docs/examples/actors/customer.scala
@@ -7,31 +7,21 @@
package examples.actors
-import scala.actors._
-import scala.actors.single._
+import scala.actors.single.Actor
-abstract class FactorialMessage
-case class Factorial(n: int, resTo: Actor) extends FactorialMessage
-case class Value(n: int) extends FactorialMessage
+case class Factorial(n: int, resTo: Actor)
class FactorialProcess extends Actor {
override def run: unit = {
receive {
case Factorial(n, resTo) =>
if (n == 0) {
- Debug.info("Sending Value(1) to " + resTo)
- resTo send Value(1)
+ resTo ! 1
}
else {
- // spawn process that multiplies
- /*val m = spawnReceive({
- case Value(value) => resTo send Value(n * value)
- });*/
-
val m = new MultiplyActor(n, resTo)
- m.start
- Debug.info("Sending Factorial(" + (n-1) + ", " + m + ") to " + this)
- this send Factorial(n-1, m)
+ m.start()
+ this ! Factorial(n-1, m)
}
run
}
@@ -41,28 +31,26 @@ class FactorialProcess extends Actor {
class MultiplyActor(factor: int, resTo: Actor) extends Actor {
override def run: unit =
receive {
- case Value(value) =>
- Debug.info("Sending Value(" + factor * value + ") to " + resTo)
- resTo send Value(factor * value)
- Debug.info("Done sending.")
+ case value: int =>
+ resTo ! factor * value
}
}
object CustomerPassing {
def main(args: Array[String]): unit = {
val fac = new FactorialProcess
- fac.start
+ fac.start()
val c = new Actor {
override def run: unit = {
- fac send Factorial(3, this)
+ fac ! Factorial(3, this)
receive {
- case Value(value) =>
+ case value: int =>
System.out.println("Result: " + value)
}
}
}
- c.start
+ c.start()
}
}