//Beispielprogramm 4 fuer das Informatikseminar im WS 09/10 der fhwedel //Scala: Nebenlaeufigkeit und paralleles Rechnen //Einfache Demonstration von verschachteltem react //von Henning Reimer import scala.actors.Actor._ import scala.actors.Actor case class SimpleMsg() case class FirstMsg(msg : String) case class SecondMsg(msg : String) class NestedMsgAct extends Actor { def act(){ loop { react { case simpleMsg : SimpleMsg => println("Einfache Nachricht erhalten") Thread.sleep(1000) case firstMsg : FirstMsg => println("Ersten Teil der Nachricht erhalten") Thread.sleep(1000) react { case secondMsg : SecondMsg => println("Geschachtelte Nachrichten erhalten: " + firstMsg.msg + " ; " + secondMsg.msg) exit() } } } } } object bsp4 { def main(args : Array[String]) { val nestedMsgAct = new NestedMsgAct() nestedMsgAct.start() nestedMsgAct ! SimpleMsg() nestedMsgAct ! FirstMsg("Ich bin die erste Nachricht") nestedMsgAct ! SecondMsg("Ich bin die zweite Nachricht") } }