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

Side by Side Diff: sync/engine/entity_tracker.cc

Issue 1285443002: move V2 classes in chrome/engine to syncer_v2 namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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 unified diff | Download patch
« no previous file with comments | « sync/engine/entity_tracker.h ('k') | sync/engine/entity_tracker_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "sync/engine/entity_tracker.h" 5 #include "sync/engine/entity_tracker.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "sync/internal_api/public/base/model_type.h" 8 #include "sync/internal_api/public/base/model_type.h"
9 #include "sync/internal_api/public/non_blocking_sync_common.h" 9 #include "sync/internal_api/public/non_blocking_sync_common.h"
10 #include "sync/syncable/syncable_util.h" 10 #include "sync/syncable/syncable_util.h"
11 #include "sync/util/time.h" 11 #include "sync/util/time.h"
12 12
13 namespace syncer { 13 namespace syncer_v2 {
14 14
15 scoped_ptr<EntityTracker> EntityTracker::FromServerUpdate( 15 scoped_ptr<EntityTracker> EntityTracker::FromServerUpdate(
16 const std::string& id_string, 16 const std::string& id_string,
17 const std::string& client_tag_hash, 17 const std::string& client_tag_hash,
18 int64 received_version) { 18 int64 received_version) {
19 return make_scoped_ptr( 19 return make_scoped_ptr(
20 new EntityTracker(id_string, client_tag_hash, 0, received_version)); 20 new EntityTracker(id_string, client_tag_hash, 0, received_version));
21 } 21 }
22 22
23 scoped_ptr<EntityTracker> EntityTracker::FromCommitRequest( 23 scoped_ptr<EntityTracker> EntityTracker::FromCommitRequest(
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 } 80 }
81 81
82 bool EntityTracker::IsCommitPending() const { 82 bool EntityTracker::IsCommitPending() const {
83 return is_commit_pending_; 83 return is_commit_pending_;
84 } 84 }
85 85
86 void EntityTracker::PrepareCommitProto(sync_pb::SyncEntity* commit_entity, 86 void EntityTracker::PrepareCommitProto(sync_pb::SyncEntity* commit_entity,
87 int64* sequence_number) const { 87 int64* sequence_number) const {
88 // Set ID if we have a server-assigned ID. Otherwise, it will be up to 88 // Set ID if we have a server-assigned ID. Otherwise, it will be up to
89 // our caller to assign a client-unique initial ID. 89 // our caller to assign a client-unique initial ID.
90 if (base_version_ != syncer_v2::kUncommittedVersion) { 90 if (base_version_ != kUncommittedVersion) {
91 commit_entity->set_id_string(id_); 91 commit_entity->set_id_string(id_);
92 } 92 }
93 93
94 commit_entity->set_client_defined_unique_tag(client_tag_hash_); 94 commit_entity->set_client_defined_unique_tag(client_tag_hash_);
95 commit_entity->set_version(base_version_); 95 commit_entity->set_version(base_version_);
96 commit_entity->set_deleted(deleted_); 96 commit_entity->set_deleted(deleted_);
97 commit_entity->set_folder(false); 97 commit_entity->set_folder(false);
98 commit_entity->set_name(non_unique_name_); 98 commit_entity->set_name(non_unique_name_);
99 if (!deleted_) { 99 if (!deleted_) {
100 commit_entity->set_ctime(TimeToProtoTime(ctime_)); 100 commit_entity->set_ctime(syncer::TimeToProtoTime(ctime_));
101 commit_entity->set_mtime(TimeToProtoTime(mtime_)); 101 commit_entity->set_mtime(syncer::TimeToProtoTime(mtime_));
102 commit_entity->mutable_specifics()->CopyFrom(specifics_); 102 commit_entity->mutable_specifics()->CopyFrom(specifics_);
103 } 103 }
104 104
105 *sequence_number = sequence_number_; 105 *sequence_number = sequence_number_;
106 } 106 }
107 107
108 void EntityTracker::RequestCommit(const std::string& id, 108 void EntityTracker::RequestCommit(const std::string& id,
109 const std::string& client_tag_hash, 109 const std::string& client_tag_hash,
110 int64 sequence_number, 110 int64 sequence_number,
111 int64 base_version, 111 int64 base_version,
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 // to discard the old pending update, if there was one. 194 // to discard the old pending update, if there was one.
195 ClearPendingUpdate(); 195 ClearPendingUpdate();
196 196
197 if (IsInConflict()) { 197 if (IsInConflict()) {
198 // Incoming update clobbers the pending commit on the sync thread. 198 // Incoming update clobbers the pending commit on the sync thread.
199 // The model thread can re-request this commit later if it wants to. 199 // The model thread can re-request this commit later if it wants to.
200 ClearPendingCommit(); 200 ClearPendingCommit();
201 } 201 }
202 } 202 }
203 203
204 bool EntityTracker::ReceivePendingUpdate( 204 bool EntityTracker::ReceivePendingUpdate(const UpdateResponseData& data) {
205 const syncer_v2::UpdateResponseData& data) {
206 if (data.response_version < highest_gu_response_version_) 205 if (data.response_version < highest_gu_response_version_)
207 return false; 206 return false;
208 207
209 highest_gu_response_version_ = data.response_version; 208 highest_gu_response_version_ = data.response_version;
210 pending_update_.reset(new syncer_v2::UpdateResponseData(data)); 209 pending_update_.reset(new UpdateResponseData(data));
211 ClearPendingCommit(); 210 ClearPendingCommit();
212 return true; 211 return true;
213 } 212 }
214 213
215 bool EntityTracker::HasPendingUpdate() const { 214 bool EntityTracker::HasPendingUpdate() const {
216 return !!pending_update_; 215 return !!pending_update_;
217 } 216 }
218 217
219 syncer_v2::UpdateResponseData EntityTracker::GetPendingUpdate() const { 218 UpdateResponseData EntityTracker::GetPendingUpdate() const {
220 return *pending_update_; 219 return *pending_update_;
221 } 220 }
222 221
223 void EntityTracker::ClearPendingUpdate() { 222 void EntityTracker::ClearPendingUpdate() {
224 pending_update_.reset(); 223 pending_update_.reset();
225 } 224 }
226 225
227 bool EntityTracker::IsInConflict() const { 226 bool EntityTracker::IsInConflict() const {
228 if (!is_commit_pending_) 227 if (!is_commit_pending_)
229 return false; 228 return false;
(...skipping 11 matching lines...) Expand all
241 // commit request? 240 // commit request?
242 if (base_version_ >= highest_gu_response_version_) { 241 if (base_version_ >= highest_gu_response_version_) {
243 return false; // Yes. 242 return false; // Yes.
244 } else { 243 } else {
245 return true; // No. 244 return true; // No.
246 } 245 }
247 } 246 }
248 } 247 }
249 248
250 bool EntityTracker::IsServerKnown() const { 249 bool EntityTracker::IsServerKnown() const {
251 return base_version_ != syncer_v2::kUncommittedVersion; 250 return base_version_ != kUncommittedVersion;
252 } 251 }
253 252
254 void EntityTracker::ClearPendingCommit() { 253 void EntityTracker::ClearPendingCommit() {
255 is_commit_pending_ = false; 254 is_commit_pending_ = false;
256 255
257 // Clearing the specifics might free up some memory. It can't hurt to try. 256 // Clearing the specifics might free up some memory. It can't hurt to try.
258 specifics_.Clear(); 257 specifics_.Clear();
259 } 258 }
260 259
261 } // namespace syncer 260 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/engine/entity_tracker.h ('k') | sync/engine/entity_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698