equal
deleted
inserted
replaced
209 timer.schedule(new TimerTask { def run = flush }, message_delay.ms, message_delay.ms) |
209 timer.schedule(new TimerTask { def run = flush }, message_delay.ms, message_delay.ms) |
210 |
210 |
211 def cancel() { timer.cancel() } |
211 def cancel() { timer.cancel() } |
212 } |
212 } |
213 |
213 |
214 var prover: Option[Isabelle_Process with Isabelle_Document] = None |
214 var prover: Option[Isabelle_Process with Protocol] = None |
215 |
215 |
216 |
216 |
217 /* delayed command changes */ |
217 /* delayed command changes */ |
218 |
218 |
219 object commands_changed_delay |
219 object commands_changed_delay |
363 catch { |
363 catch { |
364 case _: Document.State.Fail => bad_result(result) |
364 case _: Document.State.Fail => bad_result(result) |
365 } |
365 } |
366 case Isabelle_Markup.Assign_Execs if result.is_raw => |
366 case Isabelle_Markup.Assign_Execs if result.is_raw => |
367 XML.content(result.body).mkString match { |
367 XML.content(result.body).mkString match { |
368 case Isabelle_Document.Assign(id, assign) => |
368 case Protocol.Assign(id, assign) => |
369 try { handle_assign(id, assign) } |
369 try { handle_assign(id, assign) } |
370 catch { case _: Document.State.Fail => bad_result(result) } |
370 catch { case _: Document.State.Fail => bad_result(result) } |
371 case _ => bad_result(result) |
371 case _ => bad_result(result) |
372 } |
372 } |
373 // FIXME separate timeout event/message!? |
373 // FIXME separate timeout event/message!? |
376 if (!old_versions.isEmpty) prover.get.remove_versions(old_versions) |
376 if (!old_versions.isEmpty) prover.get.remove_versions(old_versions) |
377 prune_next = System.currentTimeMillis() + prune_delay.ms |
377 prune_next = System.currentTimeMillis() + prune_delay.ms |
378 } |
378 } |
379 case Isabelle_Markup.Removed_Versions if result.is_raw => |
379 case Isabelle_Markup.Removed_Versions if result.is_raw => |
380 XML.content(result.body).mkString match { |
380 XML.content(result.body).mkString match { |
381 case Isabelle_Document.Removed(removed) => |
381 case Protocol.Removed(removed) => |
382 try { handle_removed(removed) } |
382 try { handle_removed(removed) } |
383 catch { case _: Document.State.Fail => bad_result(result) } |
383 catch { case _: Document.State.Fail => bad_result(result) } |
384 case _ => bad_result(result) |
384 case _ => bad_result(result) |
385 } |
385 } |
386 case Isabelle_Markup.Invoke_Scala(name, id) if result.is_raw => |
386 case Isabelle_Markup.Invoke_Scala(name, id) if result.is_raw => |
427 case TIMEOUT => commands_changed_delay.flush() |
427 case TIMEOUT => commands_changed_delay.flush() |
428 |
428 |
429 case Start(timeout, args) if prover.isEmpty => |
429 case Start(timeout, args) if prover.isEmpty => |
430 if (phase == Session.Inactive || phase == Session.Failed) { |
430 if (phase == Session.Inactive || phase == Session.Failed) { |
431 phase = Session.Startup |
431 phase = Session.Startup |
432 prover = |
432 prover = Some(new Isabelle_Process(timeout, receiver.invoke _, args) with Protocol) |
433 Some(new Isabelle_Process(timeout, receiver.invoke _, args) with Isabelle_Document) |
|
434 } |
433 } |
435 |
434 |
436 case Stop => |
435 case Stop => |
437 if (phase == Session.Ready) { |
436 if (phase == Session.Ready) { |
438 global_state.change(_ => Document.State.init) // FIXME event bus!? |
437 global_state.change(_ => Document.State.init) // FIXME event bus!? |