Advertisement
Guest User

Untitled

a guest
May 21st, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.43 KB | None | 0 0
  1. import akka.actor.{Actor,ActorRef,ActorSystem,Props}
  2. object MyWork{
  3.  
  4. case class Wykonaj( tekst:String )
  5.  
  6. }
  7.  
  8. object naszNadzorca{
  9.     case class Init(liczbaPracowników: Int)
  10.     case class Wynik(zlicz)
  11.     case class Zlecenie(tekst: List[String])
  12. }
  13.  
  14. class Nadzorca extends Actor {
  15.     import naszNadzorca._
  16.    
  17.     def receive(a)={
  18.         def createWork(ile: Int, acc :Set[ActorRef]):Set[ActorRef]{
  19.             ile match{
  20.                 case _ if ile <= 0 =>
  21.                      acc
  22.                 case _ =>
  23.                     val work = context.actorOf[Props[Pracownik]],s"pracownik0")
  24.                      createWork(ile-1,acc + work)
  25.             }
  26.         }
  27.         case Init(liczbaPracowników:Int)=>
  28.         val works =createWork(liczbaPracowników,Set())
  29.         context.become(getOrder(works))
  30.      }
  31.  
  32. def getOrder(works: Set[ActorRef]):Receive={
  33.     def sendOrders(tekst:Seq[String],works[ActorRef]): Unit=>{
  34.         (tekst,works) match {
  35.             (lista,Seq())=> lista
  36.             (t1:+tekst,w1:+ wTail)=>
  37.                 w1 ! MyWork.Wykonaj(t1)
  38.                 sendOrders(tTail,wTail)
  39.         }
  40.     }
  41.     case Zlecenie(tekst: List[String]) =>
  42. }
  43. object Wykonaj(tekst: List[String])
  44.  
  45. class Pracownik extends Actor{
  46.     import MyWork._
  47.     def receive:Receive ={
  48.         case Wykonaj(tekst:String)=>
  49.         val zlicz = tekst.split(" ").filter(_!="").size
  50.         sender() ! Wynik(zlicz)
  51.     }
  52.  
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement