Example #1
0
 public function fetchAll(Query $query)
 {
     Benchmark::measure('Sending Livestatus Query');
     $data = $this->doFetch((string) $query);
     Benchmark::measure('Got Livestatus Data');
     if ($query->hasColumns()) {
         $headers = $query->getColumnAliases();
     } else {
         $headers = array_shift($data);
     }
     $result = array();
     foreach ($data as $row) {
         $result_row =& $result[];
         $result_row = (object) array();
         foreach ($row as $key => $val) {
             $result_row->{$headers[$key]} = $val;
         }
     }
     if ($query->hasOrder()) {
         usort($result, array($query, 'compare'));
     }
     if ($query->hasLimit()) {
         $result = array_slice($result, $query->getOffset(), $query->getLimit());
     }
     Benchmark::measure('Data sorted, limits applied');
     return $result;
 }