Index: sync/notifier/non_blocking_invalidator.cc |
diff --git a/sync/notifier/non_blocking_invalidator.cc b/sync/notifier/non_blocking_invalidator.cc |
index 05744152e391c7dca8e89f580c7ede44f40f9c25..b513a5dc531f514f4e32aab12c9193d2ac08465d 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& initial_invalidation_state, |
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& initial_invalidation_state, |
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, |
initial_invalidation_state, |
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); |
@@ -139,7 +147,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& initial_invalidation_state, |
const WeakHandle<InvalidationStateTracker>& |
invalidation_state_tracker, |
@@ -157,7 +165,7 @@ NonBlockingInvalidator::NonBlockingInvalidator( |
&NonBlockingInvalidator::Core::Initialize, |
core_.get(), |
notifier_options, |
- initial_max_invalidation_versions, |
+ initial_invalidation_state_map, |
initial_invalidation_state, |
invalidation_state_tracker, |
client_info))) { |
@@ -199,6 +207,20 @@ void NonBlockingInvalidator::UnregisterHandler(InvalidationHandler* handler) { |
registrar_.UnregisterHandler(handler); |
} |
Pete Williamson
2012/09/14 18:28:22
This travels through a lot of levels. What does a
dcheng
2012/09/14 19:08:49
It would be easier to explain this in person rathe
|
+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(); |