src/Pure/Tools/server.scala
changeset 67800 fd30e767d900
parent 67799 f801cb14a0b3
child 67801 8f5f5fbe291b
equal deleted inserted replaced
67799:f801cb14a0b3 67800:fd30e767d900
    30       "shutdown" -> { case (server, JSON.empty) => server.close(); JSON.empty })
    30       "shutdown" -> { case (server, JSON.empty) => server.close(); JSON.empty })
    31 
    31 
    32   object Reply extends Enumeration
    32   object Reply extends Enumeration
    33   {
    33   {
    34     val OK, ERROR = Value
    34     val OK, ERROR = Value
       
    35 
       
    36     def unapply(line: String): Option[(Reply.Value, JSON.T)] =
       
    37     {
       
    38       if (line == "") None
       
    39       else {
       
    40         val (reply, output) = split_line(line)
       
    41         try { Some((withName(reply), JSON.parse(output, strict = false))) }
       
    42         catch {
       
    43           case _: NoSuchElementException => None
       
    44           case Exn.ERROR(_) => None
       
    45         }
       
    46       }
       
    47     }
    35   }
    48   }
    36 
    49 
    37 
    50 
    38   /* socket connection */
    51   /* socket connection */
    39 
    52