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

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

Issue 72403003: sync: Per-type update application (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase + fix typo Created 7 years 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
« no previous file with comments | « sync/engine/sync_engine_event.h ('k') | sync/engine/syncer.h » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/sync_scheduler_impl.h" 5 #include "sync/engine/sync_scheduler_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstring> 8 #include <cstring>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 mode_ == NORMAL_MODE && 235 mode_ == NORMAL_MODE &&
236 nudge_tracker_.IsSyncRequired() && 236 nudge_tracker_.IsSyncRequired() &&
237 CanRunNudgeJobNow(NORMAL_PRIORITY)) { 237 CanRunNudgeJobNow(NORMAL_PRIORITY)) {
238 // We just got back to normal mode. Let's try to run the work that was 238 // We just got back to normal mode. Let's try to run the work that was
239 // queued up while we were configuring. 239 // queued up while we were configuring.
240 TrySyncSessionJob(NORMAL_PRIORITY); 240 TrySyncSessionJob(NORMAL_PRIORITY);
241 } 241 }
242 } 242 }
243 243
244 ModelTypeSet SyncSchedulerImpl::GetEnabledAndUnthrottledTypes() { 244 ModelTypeSet SyncSchedulerImpl::GetEnabledAndUnthrottledTypes() {
245 ModelTypeSet enabled_types = 245 ModelTypeSet enabled_types = session_context_->enabled_types();
246 GetRoutingInfoTypes(session_context_->routing_info()); 246 ModelTypeSet throttled_types = nudge_tracker_.GetThrottledTypes();
247 ModelTypeSet throttled_types =
248 nudge_tracker_.GetThrottledTypes();
249 return Difference(enabled_types, throttled_types); 247 return Difference(enabled_types, throttled_types);
250 } 248 }
251 249
252 void SyncSchedulerImpl::SendInitialSnapshot() { 250 void SyncSchedulerImpl::SendInitialSnapshot() {
253 DCHECK(CalledOnValidThread()); 251 DCHECK(CalledOnValidThread());
254 scoped_ptr<SyncSession> dummy(SyncSession::Build(session_context_, this)); 252 scoped_ptr<SyncSession> dummy(SyncSession::Build(session_context_, this));
255 SyncEngineEvent event(SyncEngineEvent::STATUS_CHANGED); 253 SyncEngineEvent event(SyncEngineEvent::STATUS_CHANGED);
256 event.snapshot = dummy->TakeSnapshot(); 254 event.snapshot = dummy->TakeSnapshot();
257 session_context_->NotifyListeners(event); 255 session_context_->NotifyListeners(event);
258 } 256 }
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 } 327 }
330 328
331 bool SyncSchedulerImpl::CanRunNudgeJobNow(JobPriority priority) { 329 bool SyncSchedulerImpl::CanRunNudgeJobNow(JobPriority priority) {
332 DCHECK(CalledOnValidThread()); 330 DCHECK(CalledOnValidThread());
333 331
334 if (!CanRunJobNow(priority)) { 332 if (!CanRunJobNow(priority)) {
335 SDVLOG(1) << "Unable to run a nudge job right now"; 333 SDVLOG(1) << "Unable to run a nudge job right now";
336 return false; 334 return false;
337 } 335 }
338 336
339 const ModelTypeSet enabled_types = 337 const ModelTypeSet enabled_types = session_context_->enabled_types();
340 GetRoutingInfoTypes(session_context_->routing_info());
341 if (nudge_tracker_.GetThrottledTypes().HasAll(enabled_types)) { 338 if (nudge_tracker_.GetThrottledTypes().HasAll(enabled_types)) {
342 SDVLOG(1) << "Not running a nudge because we're fully type throttled."; 339 SDVLOG(1) << "Not running a nudge because we're fully type throttled.";
343 return false; 340 return false;
344 } 341 }
345 342
346 if (mode_ == CONFIGURATION_MODE) { 343 if (mode_ == CONFIGURATION_MODE) {
347 SDVLOG(1) << "Not running nudge because we're in configuration mode."; 344 SDVLOG(1) << "Not running nudge because we're in configuration mode.";
348 return false; 345 return false;
349 } 346 }
350 347
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 ENUM_CASE(CONFIGURATION_MODE); 449 ENUM_CASE(CONFIGURATION_MODE);
453 ENUM_CASE(NORMAL_MODE); 450 ENUM_CASE(NORMAL_MODE);
454 } 451 }
455 return ""; 452 return "";
456 } 453 }
457 454
458 void SyncSchedulerImpl::DoNudgeSyncSessionJob(JobPriority priority) { 455 void SyncSchedulerImpl::DoNudgeSyncSessionJob(JobPriority priority) {
459 DCHECK(CalledOnValidThread()); 456 DCHECK(CalledOnValidThread());
460 DCHECK(CanRunNudgeJobNow(priority)); 457 DCHECK(CanRunNudgeJobNow(priority));
461 458
462 DVLOG(2) << "Will run normal mode sync cycle with routing info " 459 DVLOG(2) << "Will run normal mode sync cycle with types "
463 << ModelSafeRoutingInfoToString(session_context_->routing_info()); 460 << ModelTypeSetToString(session_context_->enabled_types());
464 scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this)); 461 scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this));
465 bool premature_exit = !syncer_->NormalSyncShare( 462 bool premature_exit = !syncer_->NormalSyncShare(
466 GetEnabledAndUnthrottledTypes(), 463 GetEnabledAndUnthrottledTypes(),
467 nudge_tracker_, 464 nudge_tracker_,
468 session.get()); 465 session.get());
469 AdjustPolling(FORCE_RESET); 466 AdjustPolling(FORCE_RESET);
470 // Don't run poll job till the next time poll timer fires. 467 // Don't run poll job till the next time poll timer fires.
471 do_poll_after_credentials_updated_ = false; 468 do_poll_after_credentials_updated_ = false;
472 469
473 bool success = !premature_exit 470 bool success = !premature_exit
(...skipping 22 matching lines...) Expand all
496 493
497 if (!CanRunJobNow(priority)) { 494 if (!CanRunJobNow(priority)) {
498 SDVLOG(2) << "Unable to run configure job right now."; 495 SDVLOG(2) << "Unable to run configure job right now.";
499 if (!pending_configure_params_->retry_task.is_null()) { 496 if (!pending_configure_params_->retry_task.is_null()) {
500 pending_configure_params_->retry_task.Run(); 497 pending_configure_params_->retry_task.Run();
501 pending_configure_params_->retry_task.Reset(); 498 pending_configure_params_->retry_task.Reset();
502 } 499 }
503 return; 500 return;
504 } 501 }
505 502
506 SDVLOG(2) << "Will run configure SyncShare with routes " 503 SDVLOG(2) << "Will run configure SyncShare with types "
507 << ModelSafeRoutingInfoToString(session_context_->routing_info()); 504 << ModelTypeSetToString(session_context_->enabled_types());
508 scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this)); 505 scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this));
509 bool premature_exit = !syncer_->ConfigureSyncShare( 506 bool premature_exit = !syncer_->ConfigureSyncShare(
510 GetRoutingInfoTypes(session_context_->routing_info()), 507 session_context_->enabled_types(),
511 pending_configure_params_->source, 508 pending_configure_params_->source,
512 session.get()); 509 session.get());
513 AdjustPolling(FORCE_RESET); 510 AdjustPolling(FORCE_RESET);
514 // Don't run poll job till the next time poll timer fires. 511 // Don't run poll job till the next time poll timer fires.
515 do_poll_after_credentials_updated_ = false; 512 do_poll_after_credentials_updated_ = false;
516 513
517 bool success = !premature_exit 514 bool success = !premature_exit
518 && !sessions::HasSyncerError( 515 && !sessions::HasSyncerError(
519 session->status_controller().model_neutral_state()); 516 session->status_controller().model_neutral_state());
520 517
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 if (!CanRunJobNow(NORMAL_PRIORITY)) { 557 if (!CanRunJobNow(NORMAL_PRIORITY)) {
561 SDVLOG(2) << "Unable to run a poll job right now."; 558 SDVLOG(2) << "Unable to run a poll job right now.";
562 return; 559 return;
563 } 560 }
564 561
565 if (mode_ != NORMAL_MODE) { 562 if (mode_ != NORMAL_MODE) {
566 SDVLOG(2) << "Not running poll job in configure mode."; 563 SDVLOG(2) << "Not running poll job in configure mode.";
567 return; 564 return;
568 } 565 }
569 566
570 SDVLOG(2) << "Polling with routes " 567 SDVLOG(2) << "Polling with types "
571 << ModelSafeRoutingInfoToString(session_context_->routing_info()); 568 << ModelTypeSetToString(session_context_->enabled_types());
572 scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this)); 569 scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this));
573 syncer_->PollSyncShare( 570 syncer_->PollSyncShare(
574 GetEnabledAndUnthrottledTypes(), 571 GetEnabledAndUnthrottledTypes(),
575 session.get()); 572 session.get());
576 573
577 AdjustPolling(FORCE_RESET); 574 AdjustPolling(FORCE_RESET);
578 575
579 if (IsCurrentlyThrottled()) { 576 if (IsCurrentlyThrottled()) {
580 SDVLOG(2) << "Poll request got us throttled."; 577 SDVLOG(2) << "Poll request got us throttled.";
581 // The OnSilencedUntil() call set up the WaitInterval for us. All we need 578 // The OnSilencedUntil() call set up the WaitInterval for us. All we need
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 895
899 #undef SDVLOG_LOC 896 #undef SDVLOG_LOC
900 897
901 #undef SDVLOG 898 #undef SDVLOG
902 899
903 #undef SLOG 900 #undef SLOG
904 901
905 #undef ENUM_CASE 902 #undef ENUM_CASE
906 903
907 } // namespace syncer 904 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/engine/sync_engine_event.h ('k') | sync/engine/syncer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698