/**
  * Get from the database a list of the ranges of online users
  * @return array
  */
 public static function getRanges()
 {
     if (OnlineRange::$ranges_cache) {
         return OnlineRange::$ranges_cache;
     }
     $startTime = microtime(true);
     $rows = OnlineRange::fetchAllRows();
     OnlineRange::$users_cache = User::getAll();
     $result = OnlineRange::$ranges_cache = OnlineRange::buildRanges($rows);
     $endTime = microtime(true);
     Logger::log("    OnlineRange::getRanges() -> ", $endTime - $startTime);
     $startTime = microtime(true);
     OnlineRange::saveRanges($result);
     $endTime = microtime(true);
     Logger::log("    OnlineRange::saveRanges() -> ", $endTime - $startTime);
     return $result;
 }