Index: sync/notifier/non_blocking_invalidator.cc |
diff --git a/sync/notifier/non_blocking_invalidator.cc b/sync/notifier/non_blocking_invalidator.cc |
index 7472902b7f0e7a794bf0e30585e640c1608d9c6e..f3acc26b7ad3ce74ceded8d6133b470ebb59f76e 100644 |
--- a/sync/notifier/non_blocking_invalidator.cc |
+++ b/sync/notifier/non_blocking_invalidator.cc |
@@ -30,12 +30,14 @@ class NonBlockingInvalidator::Core |
// Helpers called on I/O thread. |
void Initialize( |
const notifier::NotifierOptions& notifier_options, |
- const InvalidationVersionMap& initial_max_invalidation_versions, |
+ const InvalidationStateMap& initial_invalidation_state_map, |
const std::string& invalidation_bootstrap_data, |
const WeakHandle<InvalidationStateTracker>& invalidation_state_tracker, |
const std::string& client_info); |
void Teardown(); |
void UpdateRegisteredIds(const ObjectIdSet& ids); |
+ void Acknowledge(const invalidation::ObjectId& id, |
+ const AckHandle& ack_handle); |
void SetUniqueId(const std::string& unique_id); |
void SetStateDeprecated(const std::string& state); |
void UpdateCredentials(const std::string& email, const std::string& token); |
@@ -72,7 +74,7 @@ NonBlockingInvalidator::Core::~Core() { |
void NonBlockingInvalidator::Core::Initialize( |
const notifier::NotifierOptions& notifier_options, |
- const InvalidationVersionMap& initial_max_invalidation_versions, |
+ const InvalidationStateMap& initial_invalidation_state_map, |
const std::string& invalidation_bootstrap_data, |
const WeakHandle<InvalidationStateTracker>& invalidation_state_tracker, |
const std::string& client_info) { |
@@ -85,7 +87,7 @@ void NonBlockingInvalidator::Core::Initialize( |
invalidation_notifier_.reset( |
new InvalidationNotifier( |
notifier::PushClient::CreateDefaultOnIOThread(notifier_options), |
- initial_max_invalidation_versions, |
+ initial_invalidation_state_map, |
invalidation_bootstrap_data, |
invalidation_state_tracker, |
client_info)); |
@@ -104,6 +106,12 @@ void NonBlockingInvalidator::Core::UpdateRegisteredIds(const ObjectIdSet& ids) { |
invalidation_notifier_->UpdateRegisteredIds(this, ids); |
} |
+void NonBlockingInvalidator::Core::Acknowledge(const invalidation::ObjectId& id, |
+ const AckHandle& ack_handle) { |
+ DCHECK(network_task_runner_->BelongsToCurrentThread()); |
+ invalidation_notifier_->Acknowledge(id, ack_handle); |
+} |
+ |
void NonBlockingInvalidator::Core::SetUniqueId(const std::string& unique_id) { |
DCHECK(network_task_runner_->BelongsToCurrentThread()); |
invalidation_notifier_->SetUniqueId(unique_id); |
@@ -140,7 +148,7 @@ void NonBlockingInvalidator::Core::OnIncomingInvalidation( |
NonBlockingInvalidator::NonBlockingInvalidator( |
const notifier::NotifierOptions& notifier_options, |
- const InvalidationVersionMap& initial_max_invalidation_versions, |
+ const InvalidationStateMap& initial_invalidation_state_map, |
const std::string& invalidation_bootstrap_data, |
const WeakHandle<InvalidationStateTracker>& |
invalidation_state_tracker, |
@@ -158,7 +166,7 @@ NonBlockingInvalidator::NonBlockingInvalidator( |
&NonBlockingInvalidator::Core::Initialize, |
core_.get(), |
notifier_options, |
- initial_max_invalidation_versions, |
+ initial_invalidation_state_map, |
invalidation_bootstrap_data, |
invalidation_state_tracker, |
client_info))) { |
@@ -200,6 +208,20 @@ void NonBlockingInvalidator::UnregisterHandler(InvalidationHandler* handler) { |
registrar_.UnregisterHandler(handler); |
} |
+void NonBlockingInvalidator::Acknowledge(const invalidation::ObjectId& id, |
+ const AckHandle& ack_handle) { |
+ DCHECK(parent_task_runner_->BelongsToCurrentThread()); |
+ if (!network_task_runner_->PostTask( |
+ FROM_HERE, |
+ base::Bind( |
+ &NonBlockingInvalidator::Core::Acknowledge, |
+ core_.get(), |
+ id, |
+ ack_handle))) { |
+ NOTREACHED(); |
+ } |
+} |
+ |
InvalidatorState NonBlockingInvalidator::GetInvalidatorState() const { |
DCHECK(parent_task_runner_->BelongsToCurrentThread()); |
return registrar_.GetInvalidatorState(); |