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

Unified Diff: sync/internal_api/public/base/invalidation.cc

Issue 19381005: Add version field to syncer::Invalidation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 5 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
« no previous file with comments | « sync/internal_api/public/base/invalidation.h ('k') | sync/notifier/object_id_invalidation_map.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/internal_api/public/base/invalidation.cc
diff --git a/sync/internal_api/public/base/invalidation.cc b/sync/internal_api/public/base/invalidation.cc
index 472fad2c3c3f2c1d78f0f1a1d348dbfa6bc60aba..b503d07c4afa99905a688d70eeb85c8d6d80a425 100644
--- a/sync/internal_api/public/base/invalidation.cc
+++ b/sync/internal_api/public/base/invalidation.cc
@@ -64,19 +64,23 @@ AckHandle::AckHandle(const std::string& state, base::Time timestamp)
AckHandle::~AckHandle() {
}
+const int64 Invalidation::kUnknownVersion = -1;
+
Invalidation::Invalidation()
- : ack_handle(AckHandle::InvalidAckHandle()) {
+ : version(kUnknownVersion), ack_handle(AckHandle::InvalidAckHandle()) {
}
Invalidation::~Invalidation() {
}
bool Invalidation::Equals(const Invalidation& other) const {
- return (payload == other.payload) && ack_handle.Equals(other.ack_handle);
+ return (version == other.version) && (payload == other.payload) &&
+ ack_handle.Equals(other.ack_handle);
}
scoped_ptr<base::DictionaryValue> Invalidation::ToValue() const {
scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue());
+ value->SetString("version", base::Int64ToString(version));
value->SetString("payload", payload);
value->Set("ackHandle", ack_handle.ToValue().release());
return value.Pass();
@@ -84,6 +88,13 @@ scoped_ptr<base::DictionaryValue> Invalidation::ToValue() const {
bool Invalidation::ResetFromValue(const base::DictionaryValue& value) {
const base::DictionaryValue* ack_handle_value = NULL;
+ std::string version_as_string;
+ if (value.GetString("version", &version_as_string)) {
+ if (!base::StringToInt64(version_as_string, &version))
+ return false;
+ } else {
+ version = kUnknownVersion;
+ }
return
value.GetString("payload", &payload) &&
value.GetDictionary("ackHandle", &ack_handle_value) &&
« no previous file with comments | « sync/internal_api/public/base/invalidation.h ('k') | sync/notifier/object_id_invalidation_map.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698