blob: c31d7c771cc9358db4879386d37a53427e286363 [file] [log] [blame]
[email protected]d3b05ea2012-01-24 22:57:051// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]f2d1f612010-12-09 15:10:172// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
brettwf00b9b42016-02-01 22:11:385#include "components/prefs/value_map_pref_store.h"
[email protected]f2d1f612010-12-09 15:10:176
7#include <algorithm>
danakj0c8d4aa2015-11-25 05:29:588#include <utility>
[email protected]f2d1f612010-12-09 15:10:179
[email protected]7286e3fc2011-07-19 22:13:2410#include "base/stl_util.h"
[email protected]f2d1f612010-12-09 15:10:1711#include "base/values.h"
12
[email protected]e4be2dd2010-12-14 00:44:3913ValueMapPrefStore::ValueMapPrefStore() {}
14
[email protected]892f1d62012-11-08 18:24:3415bool ValueMapPrefStore::GetValue(const std::string& key,
[email protected]a43a667b2013-06-14 17:56:0816 const base::Value** value) const {
[email protected]892f1d62012-11-08 18:24:3417 return prefs_.GetValue(key, value);
[email protected]f2d1f612010-12-09 15:10:1718}
19
tibelle23659b42017-02-23 01:44:1320std::unique_ptr<base::DictionaryValue> ValueMapPrefStore::GetValues() const {
21 return prefs_.AsDictionaryValue();
22}
23
[email protected]f2d1f612010-12-09 15:10:1724void ValueMapPrefStore::AddObserver(PrefStore::Observer* observer) {
25 observers_.AddObserver(observer);
26}
27
28void ValueMapPrefStore::RemoveObserver(PrefStore::Observer* observer) {
29 observers_.RemoveObserver(observer);
30}
31
[email protected]14e0ec62013-08-26 22:01:3932bool ValueMapPrefStore::HasObservers() const {
33 return observers_.might_have_observers();
[email protected]d3b05ea2012-01-24 22:57:0534}
35
raymes76de1af2015-05-06 03:22:2136void ValueMapPrefStore::SetValue(const std::string& key,
dcheng5f043bc2016-04-22 19:09:0637 std::unique_ptr<base::Value> value,
avi9ef8bb02015-12-24 05:29:3638 uint32_t flags) {
ericwilligers42b92c12016-10-24 20:21:1339 if (prefs_.SetValue(key, std::move(value))) {
40 for (Observer& observer : observers_)
41 observer.OnPrefValueChanged(key);
42 }
[email protected]2dea5c02012-04-25 07:01:0743}
44
avi9ef8bb02015-12-24 05:29:3645void ValueMapPrefStore::RemoveValue(const std::string& key, uint32_t flags) {
ericwilligers42b92c12016-10-24 20:21:1346 if (prefs_.RemoveValue(key)) {
47 for (Observer& observer : observers_)
48 observer.OnPrefValueChanged(key);
49 }
[email protected]2dea5c02012-04-25 07:01:0750}
51
[email protected]1b5837662014-06-18 20:45:2152bool ValueMapPrefStore::GetMutableValue(const std::string& key,
53 base::Value** value) {
54 return prefs_.GetValue(key, value);
55}
56
raymes76de1af2015-05-06 03:22:2157void ValueMapPrefStore::ReportValueChanged(const std::string& key,
avi9ef8bb02015-12-24 05:29:3658 uint32_t flags) {
ericwilligers42b92c12016-10-24 20:21:1359 for (Observer& observer : observers_)
60 observer.OnPrefValueChanged(key);
[email protected]1b5837662014-06-18 20:45:2161}
62
[email protected]023f5bb2014-07-14 17:28:1463void ValueMapPrefStore::SetValueSilently(const std::string& key,
dcheng5f043bc2016-04-22 19:09:0664 std::unique_ptr<base::Value> value,
avi9ef8bb02015-12-24 05:29:3665 uint32_t flags) {
danakj0c8d4aa2015-11-25 05:29:5866 prefs_.SetValue(key, std::move(value));
[email protected]023f5bb2014-07-14 17:28:1467}
68
[email protected]7978ca62014-01-02 21:41:2069ValueMapPrefStore::~ValueMapPrefStore() {}
70
[email protected]2dea5c02012-04-25 07:01:0771void ValueMapPrefStore::NotifyInitializationCompleted() {
ericwilligers42b92c12016-10-24 20:21:1372 for (Observer& observer : observers_)
73 observer.OnInitializationCompleted(true);
[email protected]2dea5c02012-04-25 07:01:0774}