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

Side by Side Diff: chrome/browser/sync/engine/syncer.cc

Issue 8638001: [Sync] Made some sync session member functions const (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Constify a few more, sync to head Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/sync/engine/syncer.h" 5 #include "chrome/browser/sync/engine/syncer.h"
6 6
7 #include "base/location.h" 7 #include "base/location.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "chrome/browser/sync/engine/apply_updates_command.h" 10 #include "chrome/browser/sync/engine/apply_updates_command.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 49
50 namespace browser_sync { 50 namespace browser_sync {
51 51
52 using sessions::ScopedSessionContextConflictResolver; 52 using sessions::ScopedSessionContextConflictResolver;
53 using sessions::StatusController; 53 using sessions::StatusController;
54 using sessions::SyncSession; 54 using sessions::SyncSession;
55 using sessions::ConflictProgress; 55 using sessions::ConflictProgress;
56 56
57 Syncer::ScopedSyncStartStopTracker::ScopedSyncStartStopTracker( 57 Syncer::ScopedSyncStartStopTracker::ScopedSyncStartStopTracker(
58 sessions::SyncSession* session) : session_(session) { 58 sessions::SyncSession* session) : session_(session) {
59 session_->status_controller()->SetSyncInProgressAndUpdateStartTime(true); 59 session_->mutable_status_controller()->
60 SetSyncInProgressAndUpdateStartTime(true);
60 } 61 }
61 62
62 Syncer::ScopedSyncStartStopTracker::~ScopedSyncStartStopTracker() { 63 Syncer::ScopedSyncStartStopTracker::~ScopedSyncStartStopTracker() {
63 session_->status_controller()->SetSyncInProgressAndUpdateStartTime(false); 64 session_->mutable_status_controller()->
65 SetSyncInProgressAndUpdateStartTime(false);
64 } 66 }
65 67
66 Syncer::Syncer() 68 Syncer::Syncer()
67 : early_exit_requested_(false), 69 : early_exit_requested_(false),
68 pre_conflict_resolution_closure_(NULL) { 70 pre_conflict_resolution_closure_(NULL) {
69 } 71 }
70 72
71 Syncer::~Syncer() {} 73 Syncer::~Syncer() {}
72 74
73 bool Syncer::ExitRequested() { 75 bool Syncer::ExitRequested() {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 process_updates.Execute(session); 149 process_updates.Execute(session);
148 next_step = STORE_TIMESTAMPS; 150 next_step = STORE_TIMESTAMPS;
149 break; 151 break;
150 } 152 }
151 case STORE_TIMESTAMPS: { 153 case STORE_TIMESTAMPS: {
152 VLOG(1) << "Storing timestamps"; 154 VLOG(1) << "Storing timestamps";
153 StoreTimestampsCommand store_timestamps; 155 StoreTimestampsCommand store_timestamps;
154 store_timestamps.Execute(session); 156 store_timestamps.Execute(session);
155 // We should download all of the updates before attempting to process 157 // We should download all of the updates before attempting to process
156 // them. 158 // them.
157 if (session->status_controller()->ServerSaysNothingMoreToDownload() || 159 if (session->status_controller().ServerSaysNothingMoreToDownload() ||
158 !session->status_controller()->download_updates_succeeded()) { 160 !session->status_controller().download_updates_succeeded()) {
159 next_step = APPLY_UPDATES; 161 next_step = APPLY_UPDATES;
160 } else { 162 } else {
161 next_step = DOWNLOAD_UPDATES; 163 next_step = DOWNLOAD_UPDATES;
162 } 164 }
163 break; 165 break;
164 } 166 }
165 case APPLY_UPDATES: { 167 case APPLY_UPDATES: {
166 VLOG(1) << "Applying Updates"; 168 VLOG(1) << "Applying Updates";
167 ApplyUpdatesCommand apply_updates; 169 ApplyUpdatesCommand apply_updates;
168 apply_updates.Execute(session); 170 apply_updates.Execute(session);
(...skipping 18 matching lines...) Expand all
187 return; 189 return;
188 } 190 }
189 WriteTransaction trans(FROM_HERE, SYNCER, dir); 191 WriteTransaction trans(FROM_HERE, SYNCER, dir);
190 sessions::ScopedSetSessionWriteTransaction set_trans(session, &trans); 192 sessions::ScopedSetSessionWriteTransaction set_trans(session, &trans);
191 193
192 VLOG(1) << "Getting the Commit IDs"; 194 VLOG(1) << "Getting the Commit IDs";
193 GetCommitIdsCommand get_commit_ids_command( 195 GetCommitIdsCommand get_commit_ids_command(
194 session->context()->max_commit_batch_size()); 196 session->context()->max_commit_batch_size());
195 get_commit_ids_command.Execute(session); 197 get_commit_ids_command.Execute(session);
196 198
197 if (!session->status_controller()->commit_ids().empty()) { 199 if (!session->status_controller().commit_ids().empty()) {
198 VLOG(1) << "Building a commit message"; 200 VLOG(1) << "Building a commit message";
199 BuildCommitCommand build_commit_command; 201 BuildCommitCommand build_commit_command;
200 build_commit_command.Execute(session); 202 build_commit_command.Execute(session);
201 203
202 next_step = POST_COMMIT_MESSAGE; 204 next_step = POST_COMMIT_MESSAGE;
203 } else { 205 } else {
204 next_step = BUILD_AND_PROCESS_CONFLICT_SETS; 206 next_step = BUILD_AND_PROCESS_CONFLICT_SETS;
205 } 207 }
206 208
207 break; 209 break;
208 } 210 }
209 case POST_COMMIT_MESSAGE: { 211 case POST_COMMIT_MESSAGE: {
210 VLOG(1) << "Posting a commit request"; 212 VLOG(1) << "Posting a commit request";
211 PostCommitMessageCommand post_commit_command; 213 PostCommitMessageCommand post_commit_command;
212 post_commit_command.Execute(session); 214 post_commit_command.Execute(session);
213 next_step = PROCESS_COMMIT_RESPONSE; 215 next_step = PROCESS_COMMIT_RESPONSE;
214 break; 216 break;
215 } 217 }
216 case PROCESS_COMMIT_RESPONSE: { 218 case PROCESS_COMMIT_RESPONSE: {
217 VLOG(1) << "Processing the commit response"; 219 VLOG(1) << "Processing the commit response";
218 session->status_controller()->reset_num_conflicting_commits(); 220 session->mutable_status_controller()->reset_num_conflicting_commits();
219 ProcessCommitResponseCommand process_response_command; 221 ProcessCommitResponseCommand process_response_command;
220 process_response_command.Execute(session); 222 process_response_command.Execute(session);
221 next_step = BUILD_AND_PROCESS_CONFLICT_SETS; 223 next_step = BUILD_AND_PROCESS_CONFLICT_SETS;
222 break; 224 break;
223 } 225 }
224 case BUILD_AND_PROCESS_CONFLICT_SETS: { 226 case BUILD_AND_PROCESS_CONFLICT_SETS: {
225 VLOG(1) << "Building and Processing Conflict Sets"; 227 VLOG(1) << "Building and Processing Conflict Sets";
226 BuildAndProcessConflictSetsCommand build_process_conflict_sets; 228 BuildAndProcessConflictSetsCommand build_process_conflict_sets;
227 build_process_conflict_sets.Execute(session); 229 build_process_conflict_sets.Execute(session);
228 if (session->status_controller()->conflict_sets_built()) 230 if (session->status_controller().conflict_sets_built())
229 next_step = SYNCER_END; 231 next_step = SYNCER_END;
230 else 232 else
231 next_step = RESOLVE_CONFLICTS; 233 next_step = RESOLVE_CONFLICTS;
232 break; 234 break;
233 } 235 }
234 case RESOLVE_CONFLICTS: { 236 case RESOLVE_CONFLICTS: {
235 VLOG(1) << "Resolving Conflicts"; 237 VLOG(1) << "Resolving Conflicts";
236 238
237 // Trigger the pre_conflict_resolution_closure_, which is a testing 239 // Trigger the pre_conflict_resolution_closure_, which is a testing
238 // hook for the unit tests, if it is non-NULL. 240 // hook for the unit tests, if it is non-NULL.
239 if (pre_conflict_resolution_closure_) { 241 if (pre_conflict_resolution_closure_) {
240 pre_conflict_resolution_closure_->Run(); 242 pre_conflict_resolution_closure_->Run();
241 } 243 }
242 244
243 StatusController* status = session->status_controller(); 245 StatusController* status = session->mutable_status_controller();
244 status->reset_conflicts_resolved(); 246 status->reset_conflicts_resolved();
245 ResolveConflictsCommand resolve_conflicts_command; 247 ResolveConflictsCommand resolve_conflicts_command;
246 resolve_conflicts_command.Execute(session); 248 resolve_conflicts_command.Execute(session);
247 249
248 // Has ConflictingUpdates includes both blocking and non-blocking 250 // Has ConflictingUpdates includes both blocking and non-blocking
249 // conflicts. If we have either, we want to attempt to reapply. 251 // conflicts. If we have either, we want to attempt to reapply.
250 if (status->HasConflictingUpdates()) 252 if (status->HasConflictingUpdates())
251 next_step = APPLY_UPDATES_TO_RESOLVE_CONFLICTS; 253 next_step = APPLY_UPDATES_TO_RESOLVE_CONFLICTS;
252 else 254 else
253 next_step = SYNCER_END; 255 next_step = SYNCER_END;
254 break; 256 break;
255 } 257 }
256 case APPLY_UPDATES_TO_RESOLVE_CONFLICTS: { 258 case APPLY_UPDATES_TO_RESOLVE_CONFLICTS: {
257 StatusController* status = session->status_controller(); 259 StatusController* status = session->mutable_status_controller();
258 VLOG(1) << "Applying updates to resolve conflicts"; 260 VLOG(1) << "Applying updates to resolve conflicts";
259 ApplyUpdatesCommand apply_updates; 261 ApplyUpdatesCommand apply_updates;
260 262
261 // We only care to resolve conflicts again if we made progress on the 263 // We only care to resolve conflicts again if we made progress on the
262 // blocking conflicts. Whether or not we made progress on the 264 // blocking conflicts. Whether or not we made progress on the
263 // non-blocking doesn't matter. 265 // non-blocking doesn't matter.
264 int before_blocking_conflicting_updates = 266 int before_blocking_conflicting_updates =
265 status->TotalNumBlockingConflictingItems(); 267 status->TotalNumBlockingConflictingItems();
266 apply_updates.Execute(session); 268 apply_updates.Execute(session);
267 int after_blocking_conflicting_updates = 269 int after_blocking_conflicting_updates =
(...skipping 28 matching lines...) Expand all
296 << next_step << ", snapshot: " 298 << next_step << ", snapshot: "
297 << session->TakeSnapshot().ToString(); 299 << session->TakeSnapshot().ToString();
298 if (last_step == current_step) 300 if (last_step == current_step)
299 break; 301 break;
300 current_step = next_step; 302 current_step = next_step;
301 } 303 }
302 } 304 }
303 305
304 void Syncer::ProcessClientCommand(sessions::SyncSession* session) { 306 void Syncer::ProcessClientCommand(sessions::SyncSession* session) {
305 const ClientToServerResponse& response = 307 const ClientToServerResponse& response =
306 session->status_controller()->updates_response(); 308 session->status_controller().updates_response();
307 if (!response.has_client_command()) 309 if (!response.has_client_command())
308 return; 310 return;
309 const ClientCommand& command = response.client_command(); 311 const ClientCommand& command = response.client_command();
310 312
311 // The server limits the number of items a client can commit in one batch. 313 // The server limits the number of items a client can commit in one batch.
312 if (command.has_max_commit_batch_size()) { 314 if (command.has_max_commit_batch_size()) {
313 session->context()->set_max_commit_batch_size( 315 session->context()->set_max_commit_batch_size(
314 command.max_commit_batch_size()); 316 command.max_commit_batch_size());
315 } 317 }
316 if (command.has_set_sync_long_poll_interval()) { 318 if (command.has_set_sync_long_poll_interval()) {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 entry->Put(SERVER_CTIME, Time()); 350 entry->Put(SERVER_CTIME, Time());
349 entry->Put(SERVER_VERSION, 0); 351 entry->Put(SERVER_VERSION, 0);
350 entry->Put(SERVER_IS_DIR, false); 352 entry->Put(SERVER_IS_DIR, false);
351 entry->Put(SERVER_IS_DEL, false); 353 entry->Put(SERVER_IS_DEL, false);
352 entry->Put(IS_UNAPPLIED_UPDATE, false); 354 entry->Put(IS_UNAPPLIED_UPDATE, false);
353 entry->Put(SERVER_SPECIFICS, sync_pb::EntitySpecifics::default_instance()); 355 entry->Put(SERVER_SPECIFICS, sync_pb::EntitySpecifics::default_instance());
354 entry->Put(SERVER_POSITION_IN_PARENT, 0); 356 entry->Put(SERVER_POSITION_IN_PARENT, 0);
355 } 357 }
356 358
357 } // namespace browser_sync 359 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698