Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import akka.actor.{Actor,ActorRef,ActorSystem,Props}
- object MyWork{
- case class Wykonaj( tekst:String )
- }
- object naszNadzorca{
- case class Init(liczbaPracowników: Int)
- case class Wynik(zlicz)
- case class Zlecenie(tekst: List[String])
- }
- class Nadzorca extends Actor {
- import naszNadzorca._
- def receive(a)={
- def createWork(ile: Int, acc :Set[ActorRef]):Set[ActorRef]{
- ile match{
- case _ if ile <= 0 =>
- acc
- case _ =>
- val work = context.actorOf[Props[Pracownik]],s"pracownik0")
- createWork(ile-1,acc + work)
- }
- }
- case Init(liczbaPracowników:Int)=>
- val works =createWork(liczbaPracowników,Set())
- context.become(getOrder(works))
- }
- def getOrder(works: Set[ActorRef]):Receive={
- def sendOrders(tekst:Seq[String],works[ActorRef]): Unit=>{
- (tekst,works) match {
- (lista,Seq())=> lista
- (t1:+tekst,w1:+ wTail)=>
- w1 ! MyWork.Wykonaj(t1)
- sendOrders(tTail,wTail)
- }
- }
- case Zlecenie(tekst: List[String]) =>
- }
- object Wykonaj(tekst: List[String])
- class Pracownik extends Actor{
- import MyWork._
- def receive:Receive ={
- case Wykonaj(tekst:String)=>
- val zlicz = tekst.split(" ").filter(_!="").size
- sender() ! Wynik(zlicz)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement