• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 The Chromium Authors
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 "components/prefs/in_memory_pref_store.h"
6 
7 #include <memory>
8 #include <string>
9 #include <string_view>
10 #include <utility>
11 
12 #include "base/observer_list.h"
13 #include "base/values.h"
14 
15 InMemoryPrefStore::InMemoryPrefStore() = default;
16 
17 InMemoryPrefStore::~InMemoryPrefStore() = default;
18 
GetValue(std::string_view key,const base::Value ** value) const19 bool InMemoryPrefStore::GetValue(std::string_view key,
20                                  const base::Value** value) const {
21   return prefs_.GetValue(key, value);
22 }
23 
GetValues() const24 base::Value::Dict InMemoryPrefStore::GetValues() const {
25   return prefs_.AsDict();
26 }
27 
GetMutableValue(std::string_view key,base::Value ** value)28 bool InMemoryPrefStore::GetMutableValue(std::string_view key,
29                                         base::Value** value) {
30   return prefs_.GetValue(key, value);
31 }
32 
AddObserver(PrefStore::Observer * observer)33 void InMemoryPrefStore::AddObserver(PrefStore::Observer* observer) {
34   observers_.AddObserver(observer);
35 }
36 
RemoveObserver(PrefStore::Observer * observer)37 void InMemoryPrefStore::RemoveObserver(PrefStore::Observer* observer) {
38   observers_.RemoveObserver(observer);
39 }
40 
HasObservers() const41 bool InMemoryPrefStore::HasObservers() const {
42   return !observers_.empty();
43 }
44 
IsInitializationComplete() const45 bool InMemoryPrefStore::IsInitializationComplete() const {
46   return true;
47 }
48 
SetValue(std::string_view key,base::Value value,uint32_t flags)49 void InMemoryPrefStore::SetValue(std::string_view key,
50                                  base::Value value,
51                                  uint32_t flags) {
52   if (prefs_.SetValue(key, std::move(value)))
53     ReportValueChanged(key, flags);
54 }
55 
SetValueSilently(std::string_view key,base::Value value,uint32_t flags)56 void InMemoryPrefStore::SetValueSilently(std::string_view key,
57                                          base::Value value,
58                                          uint32_t flags) {
59   prefs_.SetValue(key, std::move(value));
60 }
61 
RemoveValue(std::string_view key,uint32_t flags)62 void InMemoryPrefStore::RemoveValue(std::string_view key, uint32_t flags) {
63   if (prefs_.RemoveValue(key))
64     ReportValueChanged(key, flags);
65 }
66 
RemoveValuesByPrefixSilently(std::string_view prefix)67 void InMemoryPrefStore::RemoveValuesByPrefixSilently(std::string_view prefix) {
68   prefs_.ClearWithPrefix(prefix);
69 }
70 
ReadOnly() const71 bool InMemoryPrefStore::ReadOnly() const {
72   return false;
73 }
74 
GetReadError() const75 PersistentPrefStore::PrefReadError InMemoryPrefStore::GetReadError() const {
76   return PersistentPrefStore::PREF_READ_ERROR_NONE;
77 }
78 
ReadPrefs()79 PersistentPrefStore::PrefReadError InMemoryPrefStore::ReadPrefs() {
80   return PersistentPrefStore::PREF_READ_ERROR_NONE;
81 }
82 
ReadPrefsAsync(ReadErrorDelegate * error_delegate)83 void InMemoryPrefStore::ReadPrefsAsync(ReadErrorDelegate* error_delegate) {
84   delete error_delegate;
85 }
86 
ReportValueChanged(std::string_view key,uint32_t flags)87 void InMemoryPrefStore::ReportValueChanged(std::string_view key,
88                                            uint32_t flags) {
89   for (Observer& observer : observers_)
90     observer.OnPrefValueChanged(key);
91 }
92 
IsInMemoryPrefStore() const93 bool InMemoryPrefStore::IsInMemoryPrefStore() const {
94   return true;
95 }
96 
HasReadErrorDelegate() const97 bool InMemoryPrefStore::HasReadErrorDelegate() const {
98   return false;
99 }
100