text: // Copyright 2018 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #ifndef CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_AUTO_UPDATE_TIME_RESTRICTIONS_UTILS_H_
  #define CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_AUTO_UPDATE_TIME_RESTRICTIONS_UTILS_H_
  
  #include <vector>
  
  #include "base/optional.h"
  
  namespace base {
  class Clock;
  }
  namespace policy {
  
  class WeeklyTimeInterval;
  
  // Places the intervals for DeviceAutoUpdateTimeRestrictions according to
  // CrosSettings into |intervals_out|. Note that the intervals are specified in
  // a timezone-agnostic format by the policy, so this function converts them to
  // the local timezone. It is thus not advisable to store the returned intervals
  // for extended periods (because the local timezone could change). Returns false
  // if there are no intervals set or if the conversion to the local timezone was
  // unsuccessful.
  bool GetDeviceAutoUpdateTimeRestrictionsIntervalsInLocalTimezone(
      base::Clock* clock,
      std::vector<WeeklyTimeInterval>* intervals_out);
  
  }  // namespace policy
  
  #endif  // CHROME_BROWSER_CHROMEOS_POLICY_DEVICE_AUTO_UPDATE_TIME_RESTRICTIONS_UTILS_H_
  