chromium/chrome/browser/ash/settings/hardware_data_usage_controller.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_ASH_SETTINGS_HARDWARE_DATA_USAGE_CONTROLLER_H_
#define CHROME_BROWSER_ASH_SETTINGS_HARDWARE_DATA_USAGE_CONTROLLER_H_

#include "chrome/browser/ash/settings/owner_pending_setting_controller.h"

class PrefRegistrySimple;
class PrefService;

namespace ash {

// Class to control setting of cros.reven.enable_hw_data_usage device preference
// before ownership is taken.
class HWDataUsageController : public OwnerPendingSettingController {
 public:
  // Manage singleton instance.
  static void Initialize(PrefService* local_state);
  static bool IsInitialized();
  static void Shutdown();
  static HWDataUsageController* Get();

  HWDataUsageController(const HWDataUsageController&) = delete;
  HWDataUsageController& operator=(const HWDataUsageController&) = delete;

  static void RegisterLocalStatePrefs(PrefRegistrySimple* registry);

 private:
  explicit HWDataUsageController(PrefService* local_state);
  ~HWDataUsageController() override;
};

}  // namespace ash

#endif  // CHROME_BROWSER_ASH_SETTINGS_HARDWARE_DATA_USAGE_CONTROLLER_H_