Chromium Code Reviews| 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> |
|
msw
2012/08/03 23:30:46
ditto nit/question for basictypes.h
akalin
2012/08/07 07:25:19
ditto
|
| + |
| #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( |