blob: 3851f56343a75140503cbeb0c864f5240f822e46 [file] [log] [blame]
// 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;
}
} // namespace power_manager