1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROMEOS_SYSTEM_STATISTICS_PROVIDER_H_
6 #define CHROMEOS_SYSTEM_STATISTICS_PROVIDER_H_
10 #include "base/memory/ref_counted.h"
11 #include "chromeos/chromeos_export.h"
20 // Developer switch value.
21 CHROMEOS_EXPORT
extern const char kDevSwitchBootMode
[];
24 CHROMEOS_EXPORT
extern const char kHardwareClassKey
[];
26 // OEM customization flag that permits exiting enterprise enrollment flow in
27 // OOBE when 'oem_enterprise_managed' flag is set.
28 CHROMEOS_EXPORT
extern const char kOemCanExitEnterpriseEnrollmentKey
[];
30 // OEM customization directive that specified intended device purpose.
31 CHROMEOS_EXPORT
extern const char kOemDeviceRequisitionKey
[];
33 // OEM customization flag that enforces enterprise enrollment flow in OOBE.
34 CHROMEOS_EXPORT
extern const char kOemIsEnterpriseManagedKey
[];
36 // OEM customization flag that specifies if OOBE flow should be enhanced for
37 // keyboard driven control.
38 CHROMEOS_EXPORT
extern const char kOemKeyboardDrivenOobeKey
[];
40 // Offer coupon code key.
41 CHROMEOS_EXPORT
extern const char kOffersCouponCodeKey
[];
44 CHROMEOS_EXPORT
extern const char kOffersGroupCodeKey
[];
46 // This interface provides access to Chrome OS statistics.
47 class CHROMEOS_EXPORT StatisticsProvider
{
49 // Starts loading the machine statistics. File operations are performed on
50 // |file_task_runner|.
51 virtual void StartLoadingMachineStatistics(
52 const scoped_refptr
<base::TaskRunner
>& file_task_runner
,
53 bool load_oem_manifest
) = 0;
55 // Retrieves the named machine statistic (e.g. "hardware_class"). If |name|
56 // is found, sets |result| and returns true. Safe to call from any thread
57 // except the task runner passed to Initialize() (e.g. FILE). This may block
58 // if called early before the statistics are loaded from disk.
59 // StartLoadingMachineStatistics() must be called before this.
60 virtual bool GetMachineStatistic(const std::string
& name
,
61 std::string
* result
) = 0;
63 // Similar to GetMachineStatistic for boolean flags.
64 virtual bool GetMachineFlag(const std::string
& name
, bool* result
) = 0;
66 // Cancels any pending file operations.
67 virtual void Shutdown() = 0;
69 // Get the Singleton instance.
70 static StatisticsProvider
* GetInstance();
72 // Set the instance returned by GetInstance() for testing.
73 static void SetTestProvider(StatisticsProvider
* test_provider
);
76 virtual ~StatisticsProvider() {}
80 } // namespace chromeos
82 #endif // CHROMEOS_SYSTEM_STATISTICS_PROVIDER_H_