1 // Copyright (c) 2011 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. 4 5 #ifndef CHROME_BROWSER_CHROMEOS_SYSTEM_STATISTICS_PROVIDER_H_ 6 #define CHROME_BROWSER_CHROMEOS_SYSTEM_STATISTICS_PROVIDER_H_ 7 8 #include <string> 9 10 namespace chromeos { 11 namespace system { 12 13 // Developer switch value. 14 extern const char kDevSwitchBootMode[]; 15 16 // HWID key. 17 extern const char kHardwareClass[]; 18 19 // Machine board key. 20 extern const char kMachineInfoBoard[]; 21 22 // OEM customization flag that permits exiting enterprise enrollment flow in 23 // OOBE when 'oem_enterprise_managed' flag is set. 24 extern const char kOemCanExitEnterpriseEnrollmentKey[]; 25 26 // OEM customization directive that specified intended device purpose. 27 extern const char kOemDeviceRequisitionKey[]; 28 29 // OEM customization flag that enforces enterprise enrollment flow in OOBE. 30 extern const char kOemIsEnterpriseManagedKey[]; 31 32 // OEM customization flag that specifies if OOBE flow should be enhanced for 33 // keyboard driven control. 34 extern const char kOemKeyboardDrivenOobeKey[]; 35 36 // Offer coupon code key. 37 extern const char kOffersCouponCodeKey[]; 38 39 // Offer group key. 40 extern const char kOffersGroupCodeKey[]; 41 42 // This interface provides access to Chrome OS statistics. 43 class StatisticsProvider { 44 public: 45 // Initializes the statistics provider. 46 virtual void Init() = 0; 47 48 // Starts loading the machine statistcs. 49 virtual void StartLoadingMachineStatistics() = 0; 50 51 // Retrieve the named machine statistic (e.g. "hardware_class"). 52 // This does not update the statistcs. If the |name| is not set, |result| 53 // preserves old value. 54 virtual bool GetMachineStatistic(const std::string& name, 55 std::string* result) = 0; 56 57 // Retrieve boolean value for named machine flag. 58 virtual bool GetMachineFlag(const std::string& name, 59 bool* result) = 0; 60 61 // Loads kiosk oem manifest file. 62 virtual void LoadOemManifest() = 0; 63 64 static StatisticsProvider* GetInstance(); 65 66 protected: 67 virtual ~StatisticsProvider() {} 68 }; 69 70 } // namespace system 71 } // namespace chromeos 72 73 #endif // CHROME_BROWSER_CHROMEOS_SYSTEM_STATISTICS_PROVIDER_H_ 74