13 case class Forked(forks: Int) extends Status |
13 case class Forked(forks: Int) extends Status |
14 case object Unprocessed extends Status |
14 case object Unprocessed extends Status |
15 case object Finished extends Status |
15 case object Finished extends Status |
16 case object Failed extends Status |
16 case object Failed extends Status |
17 |
17 |
18 def command_status(markup: List[Markup]): Status = |
18 def command_status(markup: XML.Body): Status = |
19 { |
19 { |
20 val forks = (0 /: markup) { |
20 val forks = (0 /: markup) { |
21 case (i, Markup(Markup.FORKED, _)) => i + 1 |
21 case (i, XML.Elem(Markup(Markup.FORKED, _), _)) => i + 1 |
22 case (i, Markup(Markup.JOINED, _)) => i - 1 |
22 case (i, XML.Elem(Markup(Markup.JOINED, _), _)) => i - 1 |
23 case (i, _) => i |
23 case (i, _) => i |
24 } |
24 } |
25 if (forks != 0) Forked(forks) |
25 if (forks != 0) Forked(forks) |
26 else if (markup.exists(_.name == Markup.FAILED)) Failed |
26 else if (markup.exists { case XML.Elem(Markup(Markup.FAILED, _), _) => true case _ => false }) |
27 else if (markup.exists(_.name == Markup.FINISHED)) Finished |
27 Failed |
|
28 else if (markup.exists { case XML.Elem(Markup(Markup.FINISHED, _), _) => true case _ => false }) |
|
29 Finished |
28 else Unprocessed |
30 else Unprocessed |
29 } |
31 } |
30 } |
32 } |
31 |
33 |