| // Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "power_manager/common/fake_prefs.h" |
| |
| #include "power_manager/common/prefs_observer.h" |
| |
| #include <base/check.h> |
| |
| namespace power_manager { |
| |
| FakePrefs::FakePrefs() {} |
| |
| FakePrefs::~FakePrefs() {} |
| |
| void FakePrefs::Unset(const std::string& name) { |
| int64_prefs_.erase(name); |
| double_prefs_.erase(name); |
| string_prefs_.erase(name); |
| } |
| |
| void FakePrefs::NotifyObservers(const std::string& name) { |
| for (PrefsObserver& observer : observers_) |
| observer.OnPrefChanged(name); |
| } |
| |
| void FakePrefs::AddObserver(PrefsObserver* observer) { |
| CHECK(observer); |
| observers_.AddObserver(observer); |
| } |
| |
| void FakePrefs::RemoveObserver(PrefsObserver* observer) { |
| CHECK(observer); |
| observers_.RemoveObserver(observer); |
| } |
| |
| bool FakePrefs::GetString(const std::string& name, std::string* value) { |
| if (!string_prefs_.count(name)) |
| return false; |
| *value = string_prefs_[name]; |
| return true; |
| } |
| |
| bool FakePrefs::GetInt64(const std::string& name, int64_t* value) { |
| if (!int64_prefs_.count(name)) |
| return false; |
| *value = int64_prefs_[name]; |
| return true; |
| } |
| |
| bool FakePrefs::GetDouble(const std::string& name, double* value) { |
| if (!double_prefs_.count(name)) |
| return false; |
| *value = double_prefs_[name]; |
| return true; |
| } |
| |
| bool FakePrefs::GetBool(const std::string& name, bool* value) { |
| int64_t int_value = 0; |
| if (!GetInt64(name, &int_value)) |
| return false; |
| *value = int_value != 0; |
| return true; |
| } |
| |
| void FakePrefs::SetString(const std::string& name, const std::string& value) { |
| Unset(name); |
| string_prefs_[name] = value; |
| } |
| |
| void FakePrefs::SetInt64(const std::string& name, int64_t value) { |
| Unset(name); |
| int64_prefs_[name] = value; |
| } |
| |
| void FakePrefs::SetDouble(const std::string& name, double value) { |
| Unset(name); |
| double_prefs_[name] = value; |
| } |
| |
| void FakePrefs::SetBool(const std::string& name, bool value) { |
| SetInt64(name, static_cast<int64_t>(value)); |
| } |
| |
| } // namespace power_manager |