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

Side by Side Diff: components/invalidation/p2p_invalidator.cc

Issue 1146533005: [Sync] InvalidationService shouldn't CHECK when registering ObjectId for more than one handler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments from Bartosz. Created 5 years, 7 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/invalidation/p2p_invalidator.h" 5 #include "components/invalidation/p2p_invalidator.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <iterator> 8 #include <iterator>
9 9
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 P2PInvalidator::~P2PInvalidator() { 152 P2PInvalidator::~P2PInvalidator() {
153 DCHECK(thread_checker_.CalledOnValidThread()); 153 DCHECK(thread_checker_.CalledOnValidThread());
154 push_client_->RemoveObserver(this); 154 push_client_->RemoveObserver(this);
155 } 155 }
156 156
157 void P2PInvalidator::RegisterHandler(InvalidationHandler* handler) { 157 void P2PInvalidator::RegisterHandler(InvalidationHandler* handler) {
158 DCHECK(thread_checker_.CalledOnValidThread()); 158 DCHECK(thread_checker_.CalledOnValidThread());
159 registrar_.RegisterHandler(handler); 159 registrar_.RegisterHandler(handler);
160 } 160 }
161 161
162 void P2PInvalidator::UpdateRegisteredIds(InvalidationHandler* handler, 162 bool P2PInvalidator::UpdateRegisteredIds(InvalidationHandler* handler,
163 const ObjectIdSet& ids) { 163 const ObjectIdSet& ids) {
164 DCHECK(thread_checker_.CalledOnValidThread()); 164 DCHECK(thread_checker_.CalledOnValidThread());
165 ObjectIdSet new_ids; 165 ObjectIdSet new_ids;
166 const ObjectIdSet& old_ids = registrar_.GetRegisteredIds(handler); 166 const ObjectIdSet& old_ids = registrar_.GetRegisteredIds(handler);
167 std::set_difference(ids.begin(), ids.end(), 167 std::set_difference(ids.begin(), ids.end(),
168 old_ids.begin(), old_ids.end(), 168 old_ids.begin(), old_ids.end(),
169 std::inserter(new_ids, new_ids.end()), 169 std::inserter(new_ids, new_ids.end()),
170 ObjectIdLessThan()); 170 ObjectIdLessThan());
171 registrar_.UpdateRegisteredIds(handler, ids); 171 if (!registrar_.UpdateRegisteredIds(handler, ids))
172 return false;
172 const P2PNotificationData notification_data( 173 const P2PNotificationData notification_data(
173 invalidator_client_id_, 174 invalidator_client_id_,
174 send_notification_target_, 175 send_notification_target_,
175 ObjectIdInvalidationMap::InvalidateAll(ids)); 176 ObjectIdInvalidationMap::InvalidateAll(ids));
176 SendNotificationData(notification_data); 177 SendNotificationData(notification_data);
178 return true;
177 } 179 }
178 180
179 void P2PInvalidator::UnregisterHandler(InvalidationHandler* handler) { 181 void P2PInvalidator::UnregisterHandler(InvalidationHandler* handler) {
180 DCHECK(thread_checker_.CalledOnValidThread()); 182 DCHECK(thread_checker_.CalledOnValidThread());
181 registrar_.UnregisterHandler(handler); 183 registrar_.UnregisterHandler(handler);
182 } 184 }
183 185
184 InvalidatorState P2PInvalidator::GetInvalidatorState() const { 186 InvalidatorState P2PInvalidator::GetInvalidatorState() const {
185 DCHECK(thread_checker_.CalledOnValidThread()); 187 DCHECK(thread_checker_.CalledOnValidThread());
186 return registrar_.GetInvalidatorState(); 188 return registrar_.GetInvalidatorState();
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 return; 293 return;
292 } 294 }
293 notifier::Notification notification; 295 notifier::Notification notification;
294 notification.channel = kSyncP2PNotificationChannel; 296 notification.channel = kSyncP2PNotificationChannel;
295 notification.data = notification_data.ToString(); 297 notification.data = notification_data.ToString();
296 DVLOG(1) << "Sending XMPP notification: " << notification.ToString(); 298 DVLOG(1) << "Sending XMPP notification: " << notification.ToString();
297 push_client_->SendNotification(notification); 299 push_client_->SendNotification(notification);
298 } 300 }
299 301
300 } // namespace syncer 302 } // namespace syncer
OLDNEW
« no previous file with comments | « components/invalidation/p2p_invalidator.h ('k') | components/invalidation/ticl_invalidation_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698