Home | History | Annotate | Download | only in settings
      1 // Copyright (c) 2012 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_SETTINGS_STUB_CROS_SETTINGS_PROVIDER_H_
      6 #define CHROME_BROWSER_CHROMEOS_SETTINGS_STUB_CROS_SETTINGS_PROVIDER_H_
      7 
      8 #include <string>
      9 
     10 #include "base/prefs/pref_value_map.h"
     11 #include "chrome/browser/chromeos/settings/cros_settings_provider.h"
     12 
     13 namespace chromeos {
     14 
     15 class CrosSettings;
     16 
     17 // CrosSettingsProvider implementation that stores settings in memory unsigned.
     18 class StubCrosSettingsProvider : public CrosSettingsProvider {
     19  public:
     20   explicit StubCrosSettingsProvider(const NotifyObserversCallback& notify_cb);
     21   StubCrosSettingsProvider();
     22   virtual ~StubCrosSettingsProvider();
     23 
     24   // CrosSettingsProvider implementation.
     25   virtual const base::Value* Get(const std::string& path) const OVERRIDE;
     26   virtual TrustedStatus PrepareTrustedValues(
     27       const base::Closure& callback) OVERRIDE;
     28   virtual bool HandlesSetting(const std::string& path) const OVERRIDE;
     29 
     30  private:
     31   // CrosSettingsProvider implementation:
     32   virtual void DoSet(const std::string& path,
     33                      const base::Value& value) OVERRIDE;
     34 
     35   // Initializes settings to their defaults.
     36   void SetDefaults();
     37 
     38   // In-memory settings storage.
     39   PrefValueMap values_;
     40 
     41   CrosSettings* cros_settings_;
     42 
     43   DISALLOW_COPY_AND_ASSIGN(StubCrosSettingsProvider);
     44 };
     45 
     46 }  // namespace chromeos
     47 
     48 #endif  // CHROME_BROWSER_CHROMEOS_SETTINGS_STUB_CROS_SETTINGS_PROVIDER_H_
     49