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

Unified Diff: sync/notifier/sync_invalidation_listener.cc

Issue 23441042: Refactor common invalidation framework types (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move DEPS rule Created 7 years, 2 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/sync_invalidation_listener.cc
diff --git a/sync/notifier/sync_invalidation_listener.cc b/sync/notifier/sync_invalidation_listener.cc
index ed07f2070b7fdc4398758deacd2565c5d69f27ad..71be3ecad69b21f6ab265f1e88c3349995483a14 100644
--- a/sync/notifier/sync_invalidation_listener.cc
+++ b/sync/notifier/sync_invalidation_listener.cc
@@ -22,6 +22,8 @@ namespace {
const char kApplicationName[] = "chrome-sync";
+static const int64 kUnknownVersion = -1;
+
} // namespace
namespace syncer {
@@ -220,7 +222,7 @@ void SyncInvalidationListener::InvalidateUnknownVersion(
ids.insert(object_id);
PrepareInvalidation(
ids,
- Invalidation::kUnknownVersion,
+ kUnknownVersion,
std::string(),
client,
ack_handle);
@@ -237,7 +239,7 @@ void SyncInvalidationListener::InvalidateAll(
PrepareInvalidation(
registered_ids_,
- Invalidation::kUnknownVersion,
+ kUnknownVersion,
std::string(),
client,
ack_handle);
@@ -275,13 +277,22 @@ void SyncInvalidationListener::EmitInvalidation(
const invalidation::AckHandle& ack_handle,
const AckHandleMap& local_ack_handles) {
DCHECK(CalledOnValidThread());
- ObjectIdInvalidationMap invalidation_map =
- ObjectIdSetToInvalidationMap(ids, version, payload);
+
+ ObjectIdInvalidationMap invalidation_map;
for (AckHandleMap::const_iterator it = local_ack_handles.begin();
it != local_ack_handles.end(); ++it) {
// Update in-memory copy of the invalidation state.
invalidation_state_map_[it->first].expected = it->second;
- invalidation_map[it->first].ack_handle = it->second;
+
+ if (version == kUnknownVersion) {
+ Invalidation inv = Invalidation::InitUnknownVersion(it->first);
+ inv.set_ack_handle(it->second);
+ invalidation_map.Insert(inv);
+ } else {
+ Invalidation inv = Invalidation::Init(it->first, version, payload);
+ inv.set_ack_handle(it->second);
+ invalidation_map.Insert(inv);
+ }
}
ack_tracker_.Track(ids);
delegate_->OnInvalidate(invalidation_map);
@@ -291,13 +302,19 @@ void SyncInvalidationListener::EmitInvalidation(
void SyncInvalidationListener::OnTimeout(const ObjectIdSet& ids) {
ObjectIdInvalidationMap invalidation_map;
for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
- Invalidation invalidation;
- invalidation.ack_handle = invalidation_state_map_[*it].expected;
- invalidation.version = invalidation_state_map_[*it].version;
- invalidation.payload = invalidation_state_map_[*it].payload;
- invalidation_map.insert(std::make_pair(*it, invalidation));
+ if (invalidation_state_map_[*it].version == kUnknownVersion) {
+ Invalidation inv = Invalidation::InitUnknownVersion(*it);
+ inv.set_ack_handle(invalidation_state_map_[*it].expected);
+ invalidation_map.Insert(inv);
+ } else {
+ Invalidation inv = Invalidation::Init(
+ *it,
+ invalidation_state_map_[*it].version,
+ invalidation_state_map_[*it].payload);
+ inv.set_ack_handle(invalidation_state_map_[*it].expected);
+ invalidation_map.Insert(inv);
+ }
}
-
delegate_->OnInvalidate(invalidation_map);
}
« no previous file with comments | « sync/notifier/single_object_invalidation_set_unittest.cc ('k') | sync/notifier/sync_invalidation_listener_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698