Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Unified Diff: sync/notifier/non_blocking_invalidator.cc

Issue 10911084: Implement Invalidator::Acknowledge (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698