[email protected] | d3b05ea | 2012-01-24 22:57:05 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | f2d1f61 | 2010-12-09 15:10:17 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
[email protected] | 03b9b4e | 2012-10-22 20:01:52 | [diff] [blame] | 5 | #include "base/prefs/value_map_pref_store.h" |
[email protected] | f2d1f61 | 2010-12-09 15:10:17 | [diff] [blame] | 6 | |
| 7 | #include <algorithm> |
| 8 | |
[email protected] | 7286e3fc | 2011-07-19 22:13:24 | [diff] [blame] | 9 | #include "base/stl_util.h" |
[email protected] | f2d1f61 | 2010-12-09 15:10:17 | [diff] [blame] | 10 | #include "base/values.h" |
| 11 | |
[email protected] | e4be2dd | 2010-12-14 00:44:39 | [diff] [blame] | 12 | ValueMapPrefStore::ValueMapPrefStore() {} |
| 13 | |
[email protected] | 892f1d6 | 2012-11-08 18:24:34 | [diff] [blame] | 14 | bool ValueMapPrefStore::GetValue(const std::string& key, |
[email protected] | a43a667b | 2013-06-14 17:56:08 | [diff] [blame] | 15 | const base::Value** value) const { |
[email protected] | 892f1d6 | 2012-11-08 18:24:34 | [diff] [blame] | 16 | return prefs_.GetValue(key, value); |
[email protected] | f2d1f61 | 2010-12-09 15:10:17 | [diff] [blame] | 17 | } |
| 18 | |
| 19 | void ValueMapPrefStore::AddObserver(PrefStore::Observer* observer) { |
| 20 | observers_.AddObserver(observer); |
| 21 | } |
| 22 | |
| 23 | void ValueMapPrefStore::RemoveObserver(PrefStore::Observer* observer) { |
| 24 | observers_.RemoveObserver(observer); |
| 25 | } |
| 26 | |
[email protected] | 14e0ec6 | 2013-08-26 22:01:39 | [diff] [blame] | 27 | bool ValueMapPrefStore::HasObservers() const { |
| 28 | return observers_.might_have_observers(); |
[email protected] | d3b05ea | 2012-01-24 22:57:05 | [diff] [blame] | 29 | } |
| 30 | |
[email protected] | a43a667b | 2013-06-14 17:56:08 | [diff] [blame] | 31 | void ValueMapPrefStore::SetValue(const std::string& key, base::Value* value) { |
[email protected] | 2dea5c0 | 2012-04-25 07:01:07 | [diff] [blame] | 32 | if (prefs_.SetValue(key, value)) |
| 33 | FOR_EACH_OBSERVER(Observer, observers_, OnPrefValueChanged(key)); |
| 34 | } |
| 35 | |
| 36 | void ValueMapPrefStore::RemoveValue(const std::string& key) { |
| 37 | if (prefs_.RemoveValue(key)) |
| 38 | FOR_EACH_OBSERVER(Observer, observers_, OnPrefValueChanged(key)); |
| 39 | } |
| 40 | |
[email protected] | 1b583766 | 2014-06-18 20:45:21 | [diff] [blame^] | 41 | bool ValueMapPrefStore::GetMutableValue(const std::string& key, |
| 42 | base::Value** value) { |
| 43 | return prefs_.GetValue(key, value); |
| 44 | } |
| 45 | |
| 46 | void ValueMapPrefStore::ReportValueChanged(const std::string& key) { |
| 47 | FOR_EACH_OBSERVER(Observer, observers_, OnPrefValueChanged(key)); |
| 48 | } |
| 49 | |
[email protected] | 7978ca6 | 2014-01-02 21:41:20 | [diff] [blame] | 50 | ValueMapPrefStore::~ValueMapPrefStore() {} |
| 51 | |
[email protected] | 2dea5c0 | 2012-04-25 07:01:07 | [diff] [blame] | 52 | void ValueMapPrefStore::NotifyInitializationCompleted() { |
| 53 | FOR_EACH_OBSERVER(Observer, observers_, OnInitializationCompleted(true)); |
| 54 | } |