예제 #1
0
파일: Record.php 프로젝트: thezawad/vakuum
 public static function recordExecute($info)
 {
     $newCase = $info;
     unset($newCase['record_id']);
     $record_meta = new MDL_Record_Meta($info['record_id']);
     if ($record_meta->getVar('status') == self::STATUS_STOPPED) {
         return;
     }
     if (isset($record_meta->result)) {
         $result = $record_meta->result;
         $result = BFL_XML::XML2Array($result);
     } else {
         $result = array();
     }
     if (isset($result['execute']['case'])) {
         if (!isset($result['execute']['case'][0])) {
             $result['execute']['case'] = array($result['execute']['case']);
         }
         $result['execute']['case'][] = $newCase;
     } else {
         $result['execute']['case'] = $newCase;
     }
     $result = BFL_XML::Array2XML($result);
     $record_meta->setVar('result', $result);
     $record_meta->setVar('result_text', $info['case_id']);
     $record_meta->setVar('status', self::STATUS_RUNNING);
 }
예제 #2
0
파일: Process.php 프로젝트: thezawad/vakuum
 public static function getTask()
 {
     //find records whose record_judger_id = 0
     $db = BFL_Database::getInstance();
     $stmt = $db->factory('select `record_id`,`record_prob_id` from ' . DB_TABLE_RECORD . ' where `record_judger_id` = 0 order by `record_id` asc');
     $stmt->execute();
     $task = $stmt->fetch();
     if (!$task) {
         return array();
     }
     $record_meta = new MDL_Record_Meta($task['record_id']);
     $task['language'] = $record_meta->getVar('lang');
     $task['source'] = $record_meta->getVar('source');
     $submit_time = $record_meta->getVar('submit_time');
     $task['task_name'] = 'vkm_' . $task['record_id'];
     $prob_names = MDL_Problem_Show::getProblemName($task['record_prob_id']);
     $task['prob_name'] = $prob_names['prob_name'];
     unset($task['record_prob_id']);
     return $task;
 }