diff options
Diffstat (limited to 'docs/examples/actors/PingPong.scala')
-rw-r--r-- | docs/examples/actors/PingPong.scala | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/docs/examples/actors/PingPong.scala b/docs/examples/actors/PingPong.scala deleted file mode 100644 index dbc35e36a4..0000000000 --- a/docs/examples/actors/PingPong.scala +++ /dev/null @@ -1,83 +0,0 @@ -package examples.actors - -import scala.actors.Actor -import scala.actors.Actor._ - -abstract class PingMessage -case class MsgStart() extends PingMessage -case class MsgPingInit(count: int, pong: Pong) extends PingMessage -case class MsgSendPing extends PingMessage -case class MsgPong(sender: Pong) extends PingMessage - -abstract class PongMessage -case class MsgPing(sender: Ping) extends PongMessage -case class MsgStop() extends PongMessage - -object PingPong { - def main(args : Array[String]): Unit = { - val ping = new Ping - ping.start - val pong = new Pong - pong.start - ping ! MsgPingInit(100000, pong) - ping ! MsgStart - } -} - - -class Ping extends Actor { - def act(): unit = { - loop(0, null) - } - def loop(pingsLeft: int, pong: Pong): unit = { - react { - case MsgPingInit(count, pong) => { - System.out.println("Ping: Initializing with count:"+count+":"+pong) - loop(count, pong) - } - case MsgStart() => { - System.out.println("Ping: starting.") - pong ! MsgPing(this) - loop(pingsLeft-1, pong) - } - case MsgSendPing() => { - pong ! MsgPing(this) - loop(pingsLeft-1, pong) - } - case MsgPong(pidS) => { - if (pingsLeft % 100 == 0) { - System.out.println("Ping: pong from: "+pidS) - } - if (pingsLeft > 0) - this ! MsgSendPing() - else { - System.out.println("Ping: Stop.") - pong ! MsgStop() - } - loop(pingsLeft, pong) - } - } - } -} - -class Pong extends Actor { - def act(): unit = { - loop(0) - } - - def loop(pongCount: int): unit = { - react { - case MsgPing(pidPing) => { - if (pongCount % 100 == 0) { - System.out.println("Pong: ping:"+pongCount+" from: "+pidPing) - } - pidPing ! MsgPong(this) - loop(pongCount+1) - } - case MsgStop() => { - System.out.println("Pong: Stop.") - System.exit(0) - } - } - } -} |