system_settings_provider.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org// Copyright (c) 2012 The Chromium Authors. All rights reserved. 247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org// Use of this source code is governed by a BSD-style license that can be 347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org// found in the LICENSE file. 447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#ifndef CHROME_BROWSER_CHROMEOS_SETTINGS_SYSTEM_SETTINGS_PROVIDER_H_ 647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#define CHROME_BROWSER_CHROMEOS_SETTINGS_SYSTEM_SETTINGS_PROVIDER_H_ 747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include <string> 947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "base/callback.h" 1147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "base/memory/scoped_ptr.h" 1247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "chrome/browser/chromeos/settings/cros_settings_provider.h" 1347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "chrome/browser/chromeos/system/timezone_settings.h" 1447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "third_party/icu/public/i18n/unicode/timezone.h" 1547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgnamespace base { 1747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgclass StringValue; 1847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 1947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 2047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgnamespace chromeos { 2147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 2247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgclass SystemSettingsProvider : public CrosSettingsProvider, 2347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org public system::TimezoneSettings::Observer { 2447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org public: 2547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org explicit SystemSettingsProvider(const NotifyObserversCallback& notify_cb); 2647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org virtual ~SystemSettingsProvider(); 2747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 2847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // CrosSettingsProvider implementation. 2947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org virtual const base::Value* Get(const std::string& path) const OVERRIDE; 3047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org virtual TrustedStatus PrepareTrustedValues( 3147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org const base::Closure& callback) OVERRIDE; 3247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org virtual bool HandlesSetting(const std::string& path) const OVERRIDE; 3347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 3447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // TimezoneSettings::Observer implementation. 3547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org virtual void TimezoneChanged(const icu::TimeZone& timezone) OVERRIDE; 3647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 3747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org private: 3847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // CrosSettingsProvider implementation. 3947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org virtual void DoSet(const std::string& path, 4047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org const base::Value& in_value) OVERRIDE; 4147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 4247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org scoped_ptr<base::StringValue> timezone_value_; 4347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 4447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org DISALLOW_COPY_AND_ASSIGN(SystemSettingsProvider); 4547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org}; 4647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 4747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} // namespace chromeos 4847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 4947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#endif // CHROME_BROWSER_CHROMEOS_SETTINGS_SYSTEM_SETTINGS_PROVIDER_H_ 5047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org