| Index: sync/notifier/non_blocking_invalidation_notifier.cc
|
| diff --git a/sync/notifier/non_blocking_invalidation_notifier.cc b/sync/notifier/non_blocking_invalidation_notifier.cc
|
| index ac0f76a2cb37fcaec0419add599e046f6adab1e3..615c745b32c80337672c7f3044ba2898e220be24 100644
|
| --- a/sync/notifier/non_blocking_invalidation_notifier.cc
|
| +++ b/sync/notifier/non_blocking_invalidation_notifier.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "sync/notifier/non_blocking_invalidation_notifier.h"
|
|
|
| +#include <cstddef>
|
| +
|
| #include "base/location.h"
|
| #include "base/logging.h"
|
| #include "base/memory/scoped_ptr.h"
|
| @@ -15,6 +17,12 @@
|
|
|
| namespace syncer {
|
|
|
| +namespace {
|
| +
|
| +const char kHandlerName[] = "NonBlockingInvalidationHandler";
|
| +
|
| +} // namespace
|
| +
|
| class NonBlockingInvalidationNotifier::Core
|
| : public base::RefCountedThreadSafe<NonBlockingInvalidationNotifier::Core>,
|
| // SyncNotifierObserver to observe the InvalidationNotifier we create.
|
| @@ -89,12 +97,12 @@ void NonBlockingInvalidationNotifier::Core::Initialize(
|
| initial_invalidation_state,
|
| invalidation_state_tracker,
|
| client_info));
|
| + invalidation_notifier_->SetHandler(kHandlerName, this);
|
| }
|
|
|
| -
|
| void NonBlockingInvalidationNotifier::Core::Teardown() {
|
| DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| - invalidation_notifier_->UpdateRegisteredIds(this, ObjectIdSet());
|
| + invalidation_notifier_->SetHandler(kHandlerName, NULL);
|
| invalidation_notifier_.reset();
|
| network_task_runner_ = NULL;
|
| }
|
| @@ -102,7 +110,7 @@ void NonBlockingInvalidationNotifier::Core::Teardown() {
|
| void NonBlockingInvalidationNotifier::Core::UpdateRegisteredIds(
|
| const ObjectIdSet& ids) {
|
| DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| - invalidation_notifier_->UpdateRegisteredIds(this, ids);
|
| + invalidation_notifier_->UpdateRegisteredIds(kHandlerName, ids);
|
| }
|
|
|
| void NonBlockingInvalidationNotifier::Core::SetUniqueId(
|
| @@ -183,11 +191,18 @@ NonBlockingInvalidationNotifier::~NonBlockingInvalidationNotifier() {
|
| }
|
| }
|
|
|
| +void NonBlockingInvalidationNotifier::SetHandler(
|
| + const std::string& handler_name,
|
| + SyncNotifierObserver* handler) {
|
| + DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| + helper_.SetHandler(handler_name, handler);
|
| +}
|
| +
|
| void NonBlockingInvalidationNotifier::UpdateRegisteredIds(
|
| - SyncNotifierObserver* handler, const ObjectIdSet& ids) {
|
| + const std::string& handler_name, const ObjectIdSet& ids) {
|
| DCHECK(parent_task_runner_->BelongsToCurrentThread());
|
| - const ObjectIdSet& all_registered_ids =
|
| - helper_.UpdateRegisteredIds(handler, ids);
|
| + helper_.UpdateRegisteredIds(handler_name, ids);
|
| + const ObjectIdSet& all_registered_ids = helper_.GetAllRegisteredIds();
|
| if (!network_task_runner_->PostTask(
|
| FROM_HERE,
|
| base::Bind(
|
|
|