default_pref_store.cc 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // Copyright (c) 2012 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. #include "components/prefs/default_pref_store.h"
  5. #include <utility>
  6. #include "base/check.h"
  7. #include "base/observer_list.h"
  8. using base::Value;
  9. DefaultPrefStore::DefaultPrefStore() {}
  10. bool DefaultPrefStore::GetValue(const std::string& key,
  11. const Value** result) const {
  12. return prefs_.GetValue(key, result);
  13. }
  14. base::Value::Dict DefaultPrefStore::GetValues() const {
  15. return prefs_.AsDict();
  16. }
  17. void DefaultPrefStore::AddObserver(PrefStore::Observer* observer) {
  18. observers_.AddObserver(observer);
  19. }
  20. void DefaultPrefStore::RemoveObserver(PrefStore::Observer* observer) {
  21. observers_.RemoveObserver(observer);
  22. }
  23. bool DefaultPrefStore::HasObservers() const {
  24. return !observers_.empty();
  25. }
  26. void DefaultPrefStore::SetDefaultValue(const std::string& key, Value value) {
  27. DCHECK(!GetValue(key, nullptr));
  28. prefs_.SetValue(key, std::move(value));
  29. }
  30. void DefaultPrefStore::ReplaceDefaultValue(const std::string& key,
  31. Value value) {
  32. DCHECK(GetValue(key, nullptr));
  33. bool notify = prefs_.SetValue(key, std::move(value));
  34. if (notify) {
  35. for (Observer& observer : observers_)
  36. observer.OnPrefValueChanged(key);
  37. }
  38. }
  39. DefaultPrefStore::const_iterator DefaultPrefStore::begin() const {
  40. return prefs_.begin();
  41. }
  42. DefaultPrefStore::const_iterator DefaultPrefStore::end() const {
  43. return prefs_.end();
  44. }
  45. DefaultPrefStore::~DefaultPrefStore() {}