src/Pure/Admin/build_status.scala
changeset 67003 49850a679c2c
parent 67002 e8d64340d58b
child 67738 1bbe618c4b24
equal deleted inserted replaced
67002:e8d64340d58b 67003:49850a679c2c
    77   sealed case class Session(
    77   sealed case class Session(
    78     name: String, threads: Int, entries: List[Entry], ml_statistics: ML_Statistics)
    78     name: String, threads: Int, entries: List[Entry], ml_statistics: ML_Statistics)
    79   {
    79   {
    80     require(entries.nonEmpty)
    80     require(entries.nonEmpty)
    81 
    81 
    82     def sort_entries: Session =
    82     lazy val sorted_entries: List[Entry] =
    83       copy(entries = entries.sortBy(entry => - entry.pull_date.unix_epoch))
    83       entries.sortBy(entry => - entry.pull_date.unix_epoch)
    84 
    84 
    85     def head: Entry = entries.head
    85     def head: Entry = sorted_entries.head
    86     def order: Long = - head.timing.elapsed.ms
    86     def order: Long = - head.timing.elapsed.ms
    87 
    87 
    88     def finished_entries: List[Entry] = entries.filter(_.finished)
    88     def finished_entries: List[Entry] = sorted_entries.filter(_.finished)
    89     def finished_entries_size: Int =
    89     def finished_entries_size: Int =
    90       finished_entries.map(entry => entry.pull_date.unix_epoch).toSet.size
    90       finished_entries.map(entry => entry.pull_date.unix_epoch).toSet.size
    91 
    91 
    92     def check_timing: Boolean = finished_entries_size >= 3
    92     def check_timing: Boolean = finished_entries_size >= 3
    93     def check_heap: Boolean =
    93     def check_heap: Boolean =
   261     })
   261     })
   262 
   262 
   263     val sorted_entries =
   263     val sorted_entries =
   264       (for {
   264       (for {
   265         (name, sessions) <- data_entries.toList
   265         (name, sessions) <- data_entries.toList
   266         sorted_sessions <- proper_list(sessions.toList.map(p => p._2.sort_entries).sortBy(_.order))
   266         sorted_sessions <- proper_list(sessions.toList.map(_._2).sortBy(_.order))
   267       }
   267       }
   268       yield {
   268       yield {
   269         val hosts = get_hosts(name).toList.sorted
   269         val hosts = get_hosts(name).toList.sorted
   270         val stretch = data_stretch(name)
   270         val stretch = data_stretch(name)
   271         Data_Entry(name, hosts, stretch, sorted_sessions)
   271         Data_Entry(name, hosts, stretch, sorted_sessions)