1 scala code import scala.actors.Actor
3 scala code case object Ping
4 scala code case object Pong
5 scala code case object Stop
8 scala comment * Ping class
10 scala code class Ping(count: int, pong: Actor) extends Actor {
11 scala code def act() {
12 scala code var pingsLeft = count - 1
13 scala code pong ! Ping
14 scala code while (true) {
16 scala code case Pong =>
17 scala code if (pingsLeft % 1000 == 0)
18 scala code Console.println("Ping: pong")
19 scala code if (pingsLeft > 0) {
20 scala code pong ! Ping
21 scala code pingsLeft -= 1
23 scala code Console.println("Ping: stop")
24 scala code pong ! Stop
33 scala comment * Pong class
35 scala code class Pong extends Actor {
36 scala code def act() {
37 scala code var pongCount = 0
38 scala code while (true) {
40 scala comment //pong back the ping
41 scala code case Ping =>
42 scala code if (pongCount % 1000 == 0)
43 scala code Console.println("Pong: ping "+pongCount)
44 scala code sender ! Pong
45 scala code pongCount = pongCount + 1
46 scala comment //stop ping ponging
47 scala code case Stop =>
48 scala code Console.println("Pong: stop")
56 scala comment * And this is the main application, playing a game of ping pong
58 scala code object PingPong extends Application {
59 scala code val pong = new Pong
60 scala code val ping = new Ping(100000, pong)