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_SYSTEM_SETTINGS_PROVIDER_H_
      6 #define CHROME_BROWSER_CHROMEOS_SETTINGS_SYSTEM_SETTINGS_PROVIDER_H_
      7 
      8 #include <string>
      9 
     10 #include "base/callback.h"
     11 #include "base/memory/scoped_ptr.h"
     12 #include "chromeos/settings/cros_settings_provider.h"
     13 #include "chromeos/settings/timezone_settings.h"
     14 #include "third_party/icu/source/i18n/unicode/timezone.h"
     15 
     16 namespace base {
     17 class StringValue;
     18 }
     19 
     20 namespace chromeos {
     21 
     22 class SystemSettingsProvider : public CrosSettingsProvider,
     23                                public system::TimezoneSettings::Observer {
     24  public:
     25   explicit SystemSettingsProvider(const NotifyObserversCallback& notify_cb);
     26   virtual ~SystemSettingsProvider();
     27 
     28   // CrosSettingsProvider implementation.
     29   virtual const base::Value* Get(const std::string& path) const OVERRIDE;
     30   virtual TrustedStatus PrepareTrustedValues(
     31       const base::Closure& callback) OVERRIDE;
     32   virtual bool HandlesSetting(const std::string& path) const OVERRIDE;
     33 
     34   // TimezoneSettings::Observer implementation.
     35   virtual void TimezoneChanged(const icu::TimeZone& timezone) OVERRIDE;
     36 
     37  private:
     38   // CrosSettingsProvider implementation.
     39   virtual void DoSet(const std::string& path,
     40                      const base::Value& in_value) OVERRIDE;
     41 
     42   scoped_ptr<base::StringValue> timezone_value_;
     43 
     44   DISALLOW_COPY_AND_ASSIGN(SystemSettingsProvider);
     45 };
     46 
     47 }  // namespace chromeos
     48 
     49 #endif  // CHROME_BROWSER_CHROMEOS_SETTINGS_SYSTEM_SETTINGS_PROVIDER_H_
     50