src/Pure/Tools/build_job.scala
changeset 77475 3bc611c80346
parent 77474 5ecaf881b563
child 77477 f376aebca9c1
equal deleted inserted replaced
77474:5ecaf881b563 77475:3bc611c80346
    11 import scala.util.matching.Regex
    11 import scala.util.matching.Regex
    12 
    12 
    13 
    13 
    14 trait Build_Job {
    14 trait Build_Job {
    15   def job_name: String
    15   def job_name: String
    16   def node_info: Build_Job.Node_Info
    16   def node_info: Host.Node_Info
    17   def terminate(): Unit = ()
    17   def terminate(): Unit = ()
    18   def is_finished: Boolean = false
    18   def is_finished: Boolean = false
    19   def finish: (Process_Result, SHA1.Shasum) = (Process_Result.undefined, SHA1.no_shasum)
    19   def finish: (Process_Result, SHA1.Shasum) = (Process_Result.undefined, SHA1.no_shasum)
    20   def make_abstract: Build_Job.Abstract = Build_Job.Abstract(job_name, node_info)
    20   def make_abstract: Build_Job.Abstract = Build_Job.Abstract(job_name, node_info)
    21 }
    21 }
    22 
    22 
    23 object Build_Job {
    23 object Build_Job {
    24   object Node_Info { def none: Node_Info = Node_Info("", None) }
    24   sealed case class Result(node_info: Host.Node_Info, process_result: Process_Result) {
    25   sealed case class Node_Info(hostname: String, numa_node: Option[Int])
       
    26 
       
    27   sealed case class Result(node_info: Node_Info, process_result: Process_Result) {
       
    28     def ok: Boolean = process_result.ok
    25     def ok: Boolean = process_result.ok
    29   }
    26   }
    30 
    27 
    31   sealed case class Abstract(
    28   sealed case class Abstract(
    32     override val job_name: String,
    29     override val job_name: String,
    33     override val node_info: Node_Info
    30     override val node_info: Host.Node_Info
    34   ) extends Build_Job {
    31   ) extends Build_Job {
    35     override def make_abstract: Abstract = this
    32     override def make_abstract: Abstract = this
    36   }
    33   }
    37 
    34 
    38 
    35 
    42 
    39 
    43   def start_session(
    40   def start_session(
    44     build_context: Build_Process.Context,
    41     build_context: Build_Process.Context,
    45     session_background: Sessions.Background,
    42     session_background: Sessions.Background,
    46     input_shasum: SHA1.Shasum,
    43     input_shasum: SHA1.Shasum,
    47     node_info: Node_Info
    44     node_info: Host.Node_Info
    48   ): Session_Job = new Session_Job(build_context, session_background, input_shasum, node_info)
    45   ): Session_Job = new Session_Job(build_context, session_background, input_shasum, node_info)
    49 
    46 
    50   object Session_Context {
    47   object Session_Context {
    51     def load(
    48     def load(
    52       name: String,
    49       name: String,
   103 
   100 
   104   class Session_Job private[Build_Job](
   101   class Session_Job private[Build_Job](
   105     build_context: Build_Process.Context,
   102     build_context: Build_Process.Context,
   106     session_background: Sessions.Background,
   103     session_background: Sessions.Background,
   107     input_shasum: SHA1.Shasum,
   104     input_shasum: SHA1.Shasum,
   108     override val node_info: Node_Info
   105     override val node_info: Host.Node_Info
   109   ) extends Build_Job {
   106   ) extends Build_Job {
   110     private val store = build_context.store
   107     private val store = build_context.store
   111     private val progress = build_context.progress
   108     private val progress = build_context.progress
   112     private val verbose = build_context.verbose
   109     private val verbose = build_context.verbose
   113 
   110