OLD | NEW |
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/impl/non_blocking_invalidator.h" | 5 #include "components/invalidation/impl/non_blocking_invalidator.h" |
6 | 6 |
7 #include <cstddef> | 7 #include <cstddef> |
8 #include <memory> | 8 #include <memory> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 | 242 |
243 InitializeOptions initialize_options( | 243 InitializeOptions initialize_options( |
244 network_channel_creator, invalidator_client_id, saved_invalidations, | 244 network_channel_creator, invalidator_client_id, saved_invalidations, |
245 invalidation_bootstrap_data, weak_ptr_this, | 245 invalidation_bootstrap_data, weak_ptr_this, |
246 base::ThreadTaskRunnerHandle::Get(), client_info, request_context_getter); | 246 base::ThreadTaskRunnerHandle::Get(), client_info, request_context_getter); |
247 | 247 |
248 if (!network_task_runner_->PostTask( | 248 if (!network_task_runner_->PostTask( |
249 FROM_HERE, | 249 FROM_HERE, |
250 base::Bind( | 250 base::Bind( |
251 &NonBlockingInvalidator::Core::Initialize, | 251 &NonBlockingInvalidator::Core::Initialize, |
252 core_.get(), | 252 core_, |
253 initialize_options))) { | 253 initialize_options))) { |
254 NOTREACHED(); | 254 NOTREACHED(); |
255 } | 255 } |
256 } | 256 } |
257 | 257 |
258 NonBlockingInvalidator::~NonBlockingInvalidator() { | 258 NonBlockingInvalidator::~NonBlockingInvalidator() { |
259 DCHECK(parent_task_runner_->BelongsToCurrentThread()); | 259 DCHECK(parent_task_runner_->BelongsToCurrentThread()); |
260 if (!network_task_runner_->PostTask( | 260 if (!network_task_runner_->PostTask( |
261 FROM_HERE, | 261 FROM_HERE, |
262 base::Bind(&NonBlockingInvalidator::Core::Teardown, | 262 base::Bind(&NonBlockingInvalidator::Core::Teardown, |
263 core_.get()))) { | 263 core_))) { |
264 DVLOG(1) << "Network thread stopped before invalidator is destroyed."; | 264 DVLOG(1) << "Network thread stopped before invalidator is destroyed."; |
265 } | 265 } |
266 } | 266 } |
267 | 267 |
268 void NonBlockingInvalidator::RegisterHandler(InvalidationHandler* handler) { | 268 void NonBlockingInvalidator::RegisterHandler(InvalidationHandler* handler) { |
269 DCHECK(parent_task_runner_->BelongsToCurrentThread()); | 269 DCHECK(parent_task_runner_->BelongsToCurrentThread()); |
270 registrar_.RegisterHandler(handler); | 270 registrar_.RegisterHandler(handler); |
271 } | 271 } |
272 | 272 |
273 bool NonBlockingInvalidator::UpdateRegisteredIds(InvalidationHandler* handler, | 273 bool NonBlockingInvalidator::UpdateRegisteredIds(InvalidationHandler* handler, |
274 const ObjectIdSet& ids) { | 274 const ObjectIdSet& ids) { |
275 DCHECK(parent_task_runner_->BelongsToCurrentThread()); | 275 DCHECK(parent_task_runner_->BelongsToCurrentThread()); |
276 if (!registrar_.UpdateRegisteredIds(handler, ids)) | 276 if (!registrar_.UpdateRegisteredIds(handler, ids)) |
277 return false; | 277 return false; |
278 if (!network_task_runner_->PostTask( | 278 if (!network_task_runner_->PostTask( |
279 FROM_HERE, | 279 FROM_HERE, |
280 base::Bind( | 280 base::Bind( |
281 &NonBlockingInvalidator::Core::UpdateRegisteredIds, | 281 &NonBlockingInvalidator::Core::UpdateRegisteredIds, |
282 core_.get(), | 282 core_, |
283 registrar_.GetAllRegisteredIds()))) { | 283 registrar_.GetAllRegisteredIds()))) { |
284 NOTREACHED(); | 284 NOTREACHED(); |
285 } | 285 } |
286 return true; | 286 return true; |
287 } | 287 } |
288 | 288 |
289 void NonBlockingInvalidator::UnregisterHandler(InvalidationHandler* handler) { | 289 void NonBlockingInvalidator::UnregisterHandler(InvalidationHandler* handler) { |
290 DCHECK(parent_task_runner_->BelongsToCurrentThread()); | 290 DCHECK(parent_task_runner_->BelongsToCurrentThread()); |
291 registrar_.UnregisterHandler(handler); | 291 registrar_.UnregisterHandler(handler); |
292 } | 292 } |
293 | 293 |
294 InvalidatorState NonBlockingInvalidator::GetInvalidatorState() const { | 294 InvalidatorState NonBlockingInvalidator::GetInvalidatorState() const { |
295 DCHECK(parent_task_runner_->BelongsToCurrentThread()); | 295 DCHECK(parent_task_runner_->BelongsToCurrentThread()); |
296 return registrar_.GetInvalidatorState(); | 296 return registrar_.GetInvalidatorState(); |
297 } | 297 } |
298 | 298 |
299 void NonBlockingInvalidator::UpdateCredentials(const std::string& email, | 299 void NonBlockingInvalidator::UpdateCredentials(const std::string& email, |
300 const std::string& token) { | 300 const std::string& token) { |
301 DCHECK(parent_task_runner_->BelongsToCurrentThread()); | 301 DCHECK(parent_task_runner_->BelongsToCurrentThread()); |
302 if (!network_task_runner_->PostTask( | 302 if (!network_task_runner_->PostTask( |
303 FROM_HERE, | 303 FROM_HERE, |
304 base::Bind(&NonBlockingInvalidator::Core::UpdateCredentials, | 304 base::Bind(&NonBlockingInvalidator::Core::UpdateCredentials, |
305 core_.get(), email, token))) { | 305 core_, email, token))) { |
306 NOTREACHED(); | 306 NOTREACHED(); |
307 } | 307 } |
308 } | 308 } |
309 | 309 |
310 void NonBlockingInvalidator::RequestDetailedStatus( | 310 void NonBlockingInvalidator::RequestDetailedStatus( |
311 base::Callback<void(const base::DictionaryValue&)> callback) const { | 311 base::Callback<void(const base::DictionaryValue&)> callback) const { |
312 DCHECK(parent_task_runner_->BelongsToCurrentThread()); | 312 DCHECK(parent_task_runner_->BelongsToCurrentThread()); |
313 base::Callback<void(const base::DictionaryValue&)> proxy_callback = | 313 base::Callback<void(const base::DictionaryValue&)> proxy_callback = |
314 base::Bind(&CallbackProxy::Run, base::Owned(new CallbackProxy(callback))); | 314 base::Bind(&CallbackProxy::Run, base::Owned(new CallbackProxy(callback))); |
315 if (!network_task_runner_->PostTask( | 315 if (!network_task_runner_->PostTask( |
316 FROM_HERE, | 316 FROM_HERE, |
317 base::Bind(&NonBlockingInvalidator::Core::RequestDetailedStatus, | 317 base::Bind(&NonBlockingInvalidator::Core::RequestDetailedStatus, |
318 core_.get(), | 318 core_, |
319 proxy_callback))) { | 319 proxy_callback))) { |
320 NOTREACHED(); | 320 NOTREACHED(); |
321 } | 321 } |
322 } | 322 } |
323 | 323 |
324 NetworkChannelCreator | 324 NetworkChannelCreator |
325 NonBlockingInvalidator::MakePushClientChannelCreator( | 325 NonBlockingInvalidator::MakePushClientChannelCreator( |
326 const notifier::NotifierOptions& notifier_options) { | 326 const notifier::NotifierOptions& notifier_options) { |
327 return base::Bind(SyncNetworkChannel::CreatePushClientChannel, | 327 return base::Bind(SyncNetworkChannel::CreatePushClientChannel, |
328 notifier_options); | 328 notifier_options); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
379 | 379 |
380 void NonBlockingInvalidator::OnIncomingInvalidation( | 380 void NonBlockingInvalidator::OnIncomingInvalidation( |
381 const ObjectIdInvalidationMap& invalidation_map) { | 381 const ObjectIdInvalidationMap& invalidation_map) { |
382 DCHECK(parent_task_runner_->BelongsToCurrentThread()); | 382 DCHECK(parent_task_runner_->BelongsToCurrentThread()); |
383 registrar_.DispatchInvalidationsToHandlers(invalidation_map); | 383 registrar_.DispatchInvalidationsToHandlers(invalidation_map); |
384 } | 384 } |
385 | 385 |
386 std::string NonBlockingInvalidator::GetOwnerName() const { return "Sync"; } | 386 std::string NonBlockingInvalidator::GetOwnerName() const { return "Sync"; } |
387 | 387 |
388 } // namespace syncer | 388 } // namespace syncer |
OLD | NEW |