1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/prefs/value_map_pref_store.h" 6 7 #include <algorithm> 8 9 #include "base/stl_util-inl.h" 10 #include "base/values.h" 11 12 ValueMapPrefStore::ValueMapPrefStore() {} 13 14 ValueMapPrefStore::~ValueMapPrefStore() {} 15 16 PrefStore::ReadResult ValueMapPrefStore::GetValue(const std::string& key, 17 const Value** value) const { 18 return prefs_.GetValue(key, value) ? READ_OK : READ_NO_VALUE; 19 } 20 21 void ValueMapPrefStore::AddObserver(PrefStore::Observer* observer) { 22 observers_.AddObserver(observer); 23 } 24 25 void ValueMapPrefStore::RemoveObserver(PrefStore::Observer* observer) { 26 observers_.RemoveObserver(observer); 27 } 28 29 void ValueMapPrefStore::SetValue(const std::string& key, Value* value) { 30 if (prefs_.SetValue(key, value)) 31 FOR_EACH_OBSERVER(Observer, observers_, OnPrefValueChanged(key)); 32 } 33 34 void ValueMapPrefStore::RemoveValue(const std::string& key) { 35 if (prefs_.RemoveValue(key)) 36 FOR_EACH_OBSERVER(Observer, observers_, OnPrefValueChanged(key)); 37 } 38 39 void ValueMapPrefStore::NotifyInitializationCompleted() { 40 FOR_EACH_OBSERVER(Observer, observers_, OnInitializationCompleted()); 41 } 42 43 ValueMapPrefStore::iterator ValueMapPrefStore::begin() { 44 return prefs_.begin(); 45 } 46 47 ValueMapPrefStore::iterator ValueMapPrefStore::end() { 48 return prefs_.end(); 49 } 50 51 ValueMapPrefStore::const_iterator ValueMapPrefStore::begin() const { 52 return prefs_.begin(); 53 } 54 55 ValueMapPrefStore::const_iterator ValueMapPrefStore::end() const { 56 return prefs_.end(); 57 } 58