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