Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(239)

Side by Side Diff: services/preferences/public/cpp/pref_client_store.cc

Issue 2644893003: Unify Preferences Mojom Naming to PreferencesService (Closed)
Patch Set: / Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "services/preferences/public/cpp/pref_observer_store.h" 5 #include "services/preferences/public/cpp/pref_client_store.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "services/service_manager/public/cpp/connector.h" 9 #include "services/service_manager/public/cpp/connector.h"
10 10
11 namespace preferences { 11 namespace preferences {
12 12
13 PrefObserverStore::PrefObserverStore( 13 PrefClientStore::PrefClientStore(
14 prefs::mojom::PreferencesFactoryPtr pref_factory_ptr) 14 prefs::mojom::PreferencesServiceFactoryPtr pref_factory_ptr)
15 : prefs_binding_(this), 15 : prefs_binding_(this),
16 pref_factory_ptr_(std::move(pref_factory_ptr)), 16 pref_factory_ptr_(std::move(pref_factory_ptr)),
17 initialized_(false) { 17 initialized_(false) {
18 pref_factory_ptr_->Create(prefs_binding_.CreateInterfacePtrAndBind(), 18 pref_factory_ptr_->Create(prefs_binding_.CreateInterfacePtrAndBind(),
19 mojo::MakeRequest(&prefs_manager_ptr_)); 19 mojo::MakeRequest(&prefs_service_ptr_));
20 } 20 }
21 21
22 void PrefObserverStore::Subscribe(const std::set<std::string>& keys) { 22 void PrefClientStore::Subscribe(const std::set<std::string>& keys) {
23 keys_.insert(keys.begin(), keys.end()); 23 keys_.insert(keys.begin(), keys.end());
24 24
25 std::vector<std::string> pref_array; 25 std::vector<std::string> pref_array;
26 std::copy(keys_.begin(), keys_.end(), std::back_inserter(pref_array)); 26 std::copy(keys_.begin(), keys_.end(), std::back_inserter(pref_array));
27 prefs_manager_ptr_->Subscribe(pref_array); 27 prefs_service_ptr_->Subscribe(pref_array);
28 } 28 }
29 29
30 bool PrefObserverStore::GetValue(const std::string& key, 30 bool PrefClientStore::GetValue(const std::string& key,
31 const base::Value** value) const { 31 const base::Value** value) const {
32 DCHECK(initialized_); 32 DCHECK(initialized_);
33 DCHECK(keys_.find(key) != keys_.end()); 33 DCHECK(keys_.find(key) != keys_.end());
34 34
35 return ValueMapPrefStore::GetValue(key, value); 35 return ValueMapPrefStore::GetValue(key, value);
36 } 36 }
37 37
38 void PrefObserverStore::SetValue(const std::string& key, 38 void PrefClientStore::SetValue(const std::string& key,
39 std::unique_ptr<base::Value> value, 39 std::unique_ptr<base::Value> value,
40 uint32_t flags) { 40 uint32_t flags) {
41 DCHECK(keys_.find(key) != keys_.end()); 41 DCHECK(keys_.find(key) != keys_.end());
42 42
43 // TODO(jonross): only notify the server if the value changed. 43 // TODO(jonross): only notify the server if the value changed.
44 SetValueOnPreferenceManager(key, *value); 44 SetValueOnPreferenceManager(key, *value);
45 ValueMapPrefStore::SetValue(key, std::move(value), flags); 45 ValueMapPrefStore::SetValue(key, std::move(value), flags);
46 } 46 }
47 47
48 void PrefObserverStore::RemoveValue(const std::string& key, uint32_t flags) { 48 void PrefClientStore::RemoveValue(const std::string& key, uint32_t flags) {
49 // TODO(jonross): add preference removal to preferences.mojom 49 // TODO(jonross): add preference removal to preferences.mojom
50 NOTIMPLEMENTED(); 50 NOTIMPLEMENTED();
51 } 51 }
52 52
53 bool PrefObserverStore::GetMutableValue(const std::string& key, 53 bool PrefClientStore::GetMutableValue(const std::string& key,
54 base::Value** value) { 54 base::Value** value) {
55 DCHECK(initialized_); 55 DCHECK(initialized_);
56 DCHECK(keys_.find(key) != keys_.end()); 56 DCHECK(keys_.find(key) != keys_.end());
57 57
58 return ValueMapPrefStore::GetMutableValue(key, value); 58 return ValueMapPrefStore::GetMutableValue(key, value);
59 } 59 }
60 60
61 void PrefObserverStore::ReportValueChanged(const std::string& key, 61 void PrefClientStore::ReportValueChanged(const std::string& key,
62 uint32_t flags) { 62 uint32_t flags) {
63 DCHECK(keys_.find(key) != keys_.end()); 63 DCHECK(keys_.find(key) != keys_.end());
64 const base::Value* value = nullptr; 64 const base::Value* value = nullptr;
65 ValueMapPrefStore::GetValue(key, &value); 65 ValueMapPrefStore::GetValue(key, &value);
66 SetValueOnPreferenceManager(key, *value); 66 SetValueOnPreferenceManager(key, *value);
67 ValueMapPrefStore::ReportValueChanged(key, flags); 67 ValueMapPrefStore::ReportValueChanged(key, flags);
68 } 68 }
69 69
70 void PrefObserverStore::SetValueSilently(const std::string& key, 70 void PrefClientStore::SetValueSilently(const std::string& key,
71 std::unique_ptr<base::Value> value, 71 std::unique_ptr<base::Value> value,
72 uint32_t flags) { 72 uint32_t flags) {
73 SetValueOnPreferenceManager(key, *value); 73 SetValueOnPreferenceManager(key, *value);
74 ValueMapPrefStore::SetValueSilently(key, std::move(value), flags); 74 ValueMapPrefStore::SetValueSilently(key, std::move(value), flags);
75 } 75 }
76 76
77 PrefObserverStore::~PrefObserverStore() {} 77 PrefClientStore::~PrefClientStore() {}
78 78
79 void PrefObserverStore::SetValueOnPreferenceManager(const std::string& key, 79 void PrefClientStore::SetValueOnPreferenceManager(const std::string& key,
80 const base::Value& value) { 80 const base::Value& value) {
81 if (keys_.find(key) == keys_.end()) 81 if (keys_.find(key) == keys_.end())
82 return; 82 return;
83 83
84 auto prefs = base::MakeUnique<base::DictionaryValue>(); 84 auto prefs = base::MakeUnique<base::DictionaryValue>();
85 prefs->Set(key, value.CreateDeepCopy()); 85 prefs->Set(key, value.CreateDeepCopy());
86 prefs_manager_ptr_->SetPreferences(std::move(prefs)); 86 prefs_service_ptr_->SetPreferences(std::move(prefs));
87 } 87 }
88 88
89 void PrefObserverStore::OnPreferencesChanged( 89 void PrefClientStore::OnPreferencesChanged(
90 std::unique_ptr<base::DictionaryValue> preferences) { 90 std::unique_ptr<base::DictionaryValue> preferences) {
91 if (!initialized_) { 91 if (!initialized_) {
92 initialized_ = true; 92 initialized_ = true;
93 NotifyInitializationCompleted(); 93 NotifyInitializationCompleted();
94 } 94 }
95 95
96 for (base::DictionaryValue::Iterator it(*preferences); !it.IsAtEnd(); 96 for (base::DictionaryValue::Iterator it(*preferences); !it.IsAtEnd();
97 it.Advance()) { 97 it.Advance()) {
98 if (keys_.find(it.key()) == keys_.end()) 98 if (keys_.find(it.key()) == keys_.end())
99 continue; 99 continue;
100 ValueMapPrefStore::SetValue(it.key(), it.value().CreateDeepCopy(), 0); 100 ValueMapPrefStore::SetValue(it.key(), it.value().CreateDeepCopy(), 0);
101 } 101 }
102 } 102 }
103 103
104 } // namespace preferences 104 } // namespace preferences
OLDNEW
« no previous file with comments | « services/preferences/public/cpp/pref_client_store.h ('k') | services/preferences/public/cpp/pref_observer_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698