Index: sync/internal_api/processor_entity_tracker.cc |
diff --git a/sync/internal_api/processor_entity_tracker.cc b/sync/internal_api/processor_entity_tracker.cc |
index 67853791c18af7f7ba1424c0ac11a499d52269a9..acf18c7c42026bbf143f67a257ffa40a42f4e3c0 100644 |
--- a/sync/internal_api/processor_entity_tracker.cc |
+++ b/sync/internal_api/processor_entity_tracker.cc |
@@ -15,6 +15,17 @@ |
namespace syncer_v2 { |
+namespace { |
+ |
+void HashSpecifics(const sync_pb::EntitySpecifics& specifics, |
+ std::string* hash) { |
+ std::string hash_input; |
+ specifics.AppendToString(&hash_input); |
skym
2016/03/28 22:35:38
Why not use SerializeAsString() inline?
maxbogue
2016/03/29 00:32:09
Because I was just copying from UpdateSpecificsHas
|
+ base::Base64Encode(base::SHA1HashString(hash_input), hash); |
+} |
+ |
+} // namespace |
+ |
scoped_ptr<ProcessorEntityTracker> ProcessorEntityTracker::CreateNew( |
const std::string& client_tag, |
const std::string& client_tag_hash, |
@@ -66,6 +77,17 @@ bool ProcessorEntityTracker::HasCommitData() const { |
return !commit_data_->client_tag_hash.empty(); |
} |
+bool ProcessorEntityTracker::MatchesSpecificsHash( |
+ const sync_pb::EntitySpecifics& specifics) const { |
+ if (specifics.ByteSize() > 0) { |
+ std::string hash; |
+ HashSpecifics(specifics, &hash); |
+ return hash == metadata_.specifics_hash(); |
+ } else { |
+ return !metadata_.has_specifics_hash(); |
skym
2016/03/28 22:35:38
What's the reason for this special logic? We don't
maxbogue
2016/03/29 00:32:09
Hmm... doesn't seem very important. It should be f
maxbogue
2016/03/29 01:02:05
Update: not below, apparently the logic doesn't re
|
+ } |
+} |
+ |
bool ProcessorEntityTracker::IsUnsynced() const { |
return metadata_.sequence_number() > metadata_.acked_sequence_number(); |
} |
@@ -203,10 +225,7 @@ void ProcessorEntityTracker::IncrementSequenceNumber() { |
void ProcessorEntityTracker::UpdateSpecificsHash( |
const sync_pb::EntitySpecifics& specifics) { |
if (specifics.ByteSize() > 0) { |
- std::string hash_input; |
- specifics.AppendToString(&hash_input); |
- base::Base64Encode(base::SHA1HashString(hash_input), |
- metadata_.mutable_specifics_hash()); |
+ HashSpecifics(specifics, metadata_.mutable_specifics_hash()); |
} else { |
metadata_.clear_specifics_hash(); |
} |