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

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: Rebase Created 7 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/sync_invalidation_listener.cc
diff --git a/sync/notifier/sync_invalidation_listener.cc b/sync/notifier/sync_invalidation_listener.cc
index ed07f2070b7fdc4398758deacd2565c5d69f27ad..1528be5b05b2a32af0341173b4a796ed3d86b3c7 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) {
tim (not reviewing) 2013/09/20 21:53:46 So is the contract with clients such that they dec
rlarocque 2013/09/23 18:38:19 No, I've rewritten the interface to the Invalidati
+ Invalidation inv = Invalidation::InitUnknownVersion(it->first);
+ inv.SetAckHandle(it->second);
+ invalidation_map.Insert(inv);
+ } else {
+ Invalidation inv = Invalidation::Init(it->first, version, payload);
+ inv.SetAckHandle(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));
+ Invalidation inv;
+ if (invalidation_state_map_[*it].version == kUnknownVersion) {
+ inv = Invalidation::InitUnknownVersion(*it);
+ inv.SetAckHandle(invalidation_state_map_[*it].expected);
+ } else {
+ inv = Invalidation::Init(
+ *it,
+ invalidation_state_map_[*it].version,
+ invalidation_state_map_[*it].payload);
+ inv.SetAckHandle(invalidation_state_map_[*it].expected);
+ }
+ invalidation_map.Insert(inv);
}
-
delegate_->OnInvalidate(invalidation_map);
}

Powered by Google App Engine
This is Rietveld 408576698