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

Side by Side Diff: sync/notifier/non_blocking_invalidator.cc

Issue 10916131: [Invalidations] Add GetInvalidatorState() to Invalidator{,Frontend} (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix android Created 8 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 "sync/notifier/non_blocking_invalidator.h" 5 #include "sync/notifier/non_blocking_invalidator.h"
6 6
7 #include <cstddef> 7 #include <cstddef>
8 8
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 24 matching lines...) Expand all
35 const WeakHandle<InvalidationStateTracker>& invalidation_state_tracker, 35 const WeakHandle<InvalidationStateTracker>& invalidation_state_tracker,
36 const std::string& client_info); 36 const std::string& client_info);
37 void Teardown(); 37 void Teardown();
38 void UpdateRegisteredIds(const ObjectIdSet& ids); 38 void UpdateRegisteredIds(const ObjectIdSet& ids);
39 void SetUniqueId(const std::string& unique_id); 39 void SetUniqueId(const std::string& unique_id);
40 void SetStateDeprecated(const std::string& state); 40 void SetStateDeprecated(const std::string& state);
41 void UpdateCredentials(const std::string& email, const std::string& token); 41 void UpdateCredentials(const std::string& email, const std::string& token);
42 42
43 // InvalidationHandler implementation (all called on I/O thread by 43 // InvalidationHandler implementation (all called on I/O thread by
44 // InvalidationNotifier). 44 // InvalidationNotifier).
45 virtual void OnNotificationsEnabled() OVERRIDE; 45 virtual void OnInvalidatorStateChange(InvalidatorState reason) OVERRIDE;
46 virtual void OnNotificationsDisabled( 46 virtual void OnIncomingInvalidation(
47 NotificationsDisabledReason reason) OVERRIDE;
48 virtual void OnIncomingNotification(
49 const ObjectIdStateMap& id_state_map, 47 const ObjectIdStateMap& id_state_map,
50 IncomingNotificationSource source) OVERRIDE; 48 IncomingInvalidationSource source) OVERRIDE;
51 49
52 private: 50 private:
53 friend class 51 friend class
54 base::RefCountedThreadSafe<NonBlockingInvalidator::Core>; 52 base::RefCountedThreadSafe<NonBlockingInvalidator::Core>;
55 // Called on parent or I/O thread. 53 // Called on parent or I/O thread.
56 ~Core(); 54 ~Core();
57 55
58 // The variables below should be used only on the I/O thread. 56 // The variables below should be used only on the I/O thread.
59 const WeakHandle<InvalidationHandler> delegate_observer_; 57 const WeakHandle<InvalidationHandler> delegate_observer_;
60 scoped_ptr<InvalidationNotifier> invalidation_notifier_; 58 scoped_ptr<InvalidationNotifier> invalidation_notifier_;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 DCHECK(network_task_runner_->BelongsToCurrentThread()); 114 DCHECK(network_task_runner_->BelongsToCurrentThread());
117 invalidation_notifier_->SetStateDeprecated(state); 115 invalidation_notifier_->SetStateDeprecated(state);
118 } 116 }
119 117
120 void NonBlockingInvalidator::Core::UpdateCredentials(const std::string& email, 118 void NonBlockingInvalidator::Core::UpdateCredentials(const std::string& email,
121 const std::string& token) { 119 const std::string& token) {
122 DCHECK(network_task_runner_->BelongsToCurrentThread()); 120 DCHECK(network_task_runner_->BelongsToCurrentThread());
123 invalidation_notifier_->UpdateCredentials(email, token); 121 invalidation_notifier_->UpdateCredentials(email, token);
124 } 122 }
125 123
126 void NonBlockingInvalidator::Core::OnNotificationsEnabled() { 124 void NonBlockingInvalidator::Core::OnInvalidatorStateChange(
125 InvalidatorState reason) {
126 DCHECK(network_task_runner_->BelongsToCurrentThread());
127 delegate_observer_.Call(
128 FROM_HERE, &InvalidationHandler::OnInvalidatorStateChange, reason);
129 }
130
131 void NonBlockingInvalidator::Core::OnIncomingInvalidation(
132 const ObjectIdStateMap& id_state_map, IncomingInvalidationSource source) {
127 DCHECK(network_task_runner_->BelongsToCurrentThread()); 133 DCHECK(network_task_runner_->BelongsToCurrentThread());
128 delegate_observer_.Call(FROM_HERE, 134 delegate_observer_.Call(FROM_HERE,
129 &InvalidationHandler::OnNotificationsEnabled); 135 &InvalidationHandler::OnIncomingInvalidation,
130 }
131
132 void NonBlockingInvalidator::Core::OnNotificationsDisabled(
133 NotificationsDisabledReason reason) {
134 DCHECK(network_task_runner_->BelongsToCurrentThread());
135 delegate_observer_.Call(
136 FROM_HERE, &InvalidationHandler::OnNotificationsDisabled, reason);
137 }
138
139 void NonBlockingInvalidator::Core::OnIncomingNotification(
140 const ObjectIdStateMap& id_state_map, IncomingNotificationSource source) {
141 DCHECK(network_task_runner_->BelongsToCurrentThread());
142 delegate_observer_.Call(FROM_HERE,
143 &InvalidationHandler::OnIncomingNotification,
144 id_state_map, 136 id_state_map,
145 source); 137 source);
146 } 138 }
147 139
148 NonBlockingInvalidator::NonBlockingInvalidator( 140 NonBlockingInvalidator::NonBlockingInvalidator(
149 const notifier::NotifierOptions& notifier_options, 141 const notifier::NotifierOptions& notifier_options,
150 const InvalidationVersionMap& initial_max_invalidation_versions, 142 const InvalidationVersionMap& initial_max_invalidation_versions,
151 const std::string& initial_invalidation_state, 143 const std::string& initial_invalidation_state,
152 const WeakHandle<InvalidationStateTracker>& 144 const WeakHandle<InvalidationStateTracker>&
153 invalidation_state_tracker, 145 invalidation_state_tracker,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 registrar_.GetAllRegisteredIds()))) { 192 registrar_.GetAllRegisteredIds()))) {
201 NOTREACHED(); 193 NOTREACHED();
202 } 194 }
203 } 195 }
204 196
205 void NonBlockingInvalidator::UnregisterHandler(InvalidationHandler* handler) { 197 void NonBlockingInvalidator::UnregisterHandler(InvalidationHandler* handler) {
206 DCHECK(parent_task_runner_->BelongsToCurrentThread()); 198 DCHECK(parent_task_runner_->BelongsToCurrentThread());
207 registrar_.UnregisterHandler(handler); 199 registrar_.UnregisterHandler(handler);
208 } 200 }
209 201
202 InvalidatorState NonBlockingInvalidator::GetInvalidatorState() const {
203 DCHECK(parent_task_runner_->BelongsToCurrentThread());
204 return registrar_.GetInvalidatorState();
205 }
206
210 void NonBlockingInvalidator::SetUniqueId(const std::string& unique_id) { 207 void NonBlockingInvalidator::SetUniqueId(const std::string& unique_id) {
211 DCHECK(parent_task_runner_->BelongsToCurrentThread()); 208 DCHECK(parent_task_runner_->BelongsToCurrentThread());
212 if (!network_task_runner_->PostTask( 209 if (!network_task_runner_->PostTask(
213 FROM_HERE, 210 FROM_HERE,
214 base::Bind(&NonBlockingInvalidator::Core::SetUniqueId, 211 base::Bind(&NonBlockingInvalidator::Core::SetUniqueId,
215 core_.get(), unique_id))) { 212 core_.get(), unique_id))) {
216 NOTREACHED(); 213 NOTREACHED();
217 } 214 }
218 } 215 }
219 216
(...skipping 12 matching lines...) Expand all
232 const std::string& token) { 229 const std::string& token) {
233 DCHECK(parent_task_runner_->BelongsToCurrentThread()); 230 DCHECK(parent_task_runner_->BelongsToCurrentThread());
234 if (!network_task_runner_->PostTask( 231 if (!network_task_runner_->PostTask(
235 FROM_HERE, 232 FROM_HERE,
236 base::Bind(&NonBlockingInvalidator::Core::UpdateCredentials, 233 base::Bind(&NonBlockingInvalidator::Core::UpdateCredentials,
237 core_.get(), email, token))) { 234 core_.get(), email, token))) {
238 NOTREACHED(); 235 NOTREACHED();
239 } 236 }
240 } 237 }
241 238
242 void NonBlockingInvalidator::SendNotification( 239 void NonBlockingInvalidator::SendInvalidation(
243 const ObjectIdStateMap& id_state_map) { 240 const ObjectIdStateMap& id_state_map) {
244 DCHECK(parent_task_runner_->BelongsToCurrentThread()); 241 DCHECK(parent_task_runner_->BelongsToCurrentThread());
245 // InvalidationClient doesn't implement SendNotification(), so no 242 // InvalidationClient doesn't implement SendInvalidation(), so no
246 // need to forward on the call. 243 // need to forward on the call.
247 } 244 }
248 245
249 void NonBlockingInvalidator::OnNotificationsEnabled() { 246 void NonBlockingInvalidator::OnInvalidatorStateChange(InvalidatorState state) {
250 DCHECK(parent_task_runner_->BelongsToCurrentThread()); 247 DCHECK(parent_task_runner_->BelongsToCurrentThread());
251 registrar_.EmitOnNotificationsEnabled(); 248 registrar_.UpdateInvalidatorState(state);
252 } 249 }
253 250
254 void NonBlockingInvalidator::OnNotificationsDisabled( 251 void NonBlockingInvalidator::OnIncomingInvalidation(
255 NotificationsDisabledReason reason) {
256 DCHECK(parent_task_runner_->BelongsToCurrentThread());
257 registrar_.EmitOnNotificationsDisabled(reason);
258 }
259
260 void NonBlockingInvalidator::OnIncomingNotification(
261 const ObjectIdStateMap& id_state_map, 252 const ObjectIdStateMap& id_state_map,
262 IncomingNotificationSource source) { 253 IncomingInvalidationSource source) {
263 DCHECK(parent_task_runner_->BelongsToCurrentThread()); 254 DCHECK(parent_task_runner_->BelongsToCurrentThread());
264 registrar_.DispatchInvalidationsToHandlers(id_state_map, source); 255 registrar_.DispatchInvalidationsToHandlers(id_state_map, source);
265 } 256 }
266 257
267 } // namespace syncer 258 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/notifier/non_blocking_invalidator.h ('k') | sync/notifier/non_blocking_invalidator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698