| 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 |