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

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

Issue 1866243002: Convert //sync from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
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 #include <utility> 9 #include <utility>
10 10
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 ModelTypeSet SyncSchedulerImpl::GetEnabledAndUnthrottledTypes() { 272 ModelTypeSet SyncSchedulerImpl::GetEnabledAndUnthrottledTypes() {
273 ModelTypeSet enabled_types = session_context_->GetEnabledTypes(); 273 ModelTypeSet enabled_types = session_context_->GetEnabledTypes();
274 ModelTypeSet enabled_protocol_types = 274 ModelTypeSet enabled_protocol_types =
275 Intersection(ProtocolTypes(), enabled_types); 275 Intersection(ProtocolTypes(), enabled_types);
276 ModelTypeSet throttled_types = nudge_tracker_.GetThrottledTypes(); 276 ModelTypeSet throttled_types = nudge_tracker_.GetThrottledTypes();
277 return Difference(enabled_protocol_types, throttled_types); 277 return Difference(enabled_protocol_types, throttled_types);
278 } 278 }
279 279
280 void SyncSchedulerImpl::SendInitialSnapshot() { 280 void SyncSchedulerImpl::SendInitialSnapshot() {
281 DCHECK(CalledOnValidThread()); 281 DCHECK(CalledOnValidThread());
282 scoped_ptr<SyncSession> dummy(SyncSession::Build(session_context_, this)); 282 std::unique_ptr<SyncSession> dummy(
283 SyncSession::Build(session_context_, this));
283 SyncCycleEvent event(SyncCycleEvent::STATUS_CHANGED); 284 SyncCycleEvent event(SyncCycleEvent::STATUS_CHANGED);
284 event.snapshot = dummy->TakeSnapshot(); 285 event.snapshot = dummy->TakeSnapshot();
285 FOR_EACH_OBSERVER(SyncEngineEventListener, 286 FOR_EACH_OBSERVER(SyncEngineEventListener,
286 *session_context_->listeners(), 287 *session_context_->listeners(),
287 OnSyncCycleEvent(event)); 288 OnSyncCycleEvent(event));
288 } 289 }
289 290
290 namespace { 291 namespace {
291 292
292 // Helper to extract the routing info corresponding to types in 293 // Helper to extract the routing info corresponding to types in
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 411
411 SDVLOG_LOC(nudge_location, 2) 412 SDVLOG_LOC(nudge_location, 2)
412 << "Scheduling sync because of local refresh request for " 413 << "Scheduling sync because of local refresh request for "
413 << ModelTypeSetToString(types); 414 << ModelTypeSetToString(types);
414 base::TimeDelta nudge_delay = nudge_tracker_.RecordLocalRefreshRequest(types); 415 base::TimeDelta nudge_delay = nudge_tracker_.RecordLocalRefreshRequest(types);
415 ScheduleNudgeImpl(nudge_delay, nudge_location); 416 ScheduleNudgeImpl(nudge_delay, nudge_location);
416 } 417 }
417 418
418 void SyncSchedulerImpl::ScheduleInvalidationNudge( 419 void SyncSchedulerImpl::ScheduleInvalidationNudge(
419 syncer::ModelType model_type, 420 syncer::ModelType model_type,
420 scoped_ptr<InvalidationInterface> invalidation, 421 std::unique_ptr<InvalidationInterface> invalidation,
421 const tracked_objects::Location& nudge_location) { 422 const tracked_objects::Location& nudge_location) {
422 DCHECK(CalledOnValidThread()); 423 DCHECK(CalledOnValidThread());
423 424
424 SDVLOG_LOC(nudge_location, 2) 425 SDVLOG_LOC(nudge_location, 2)
425 << "Scheduling sync because we received invalidation for " 426 << "Scheduling sync because we received invalidation for "
426 << ModelTypeToString(model_type); 427 << ModelTypeToString(model_type);
427 base::TimeDelta nudge_delay = nudge_tracker_.RecordRemoteInvalidation( 428 base::TimeDelta nudge_delay = nudge_tracker_.RecordRemoteInvalidation(
428 model_type, std::move(invalidation)); 429 model_type, std::move(invalidation));
429 ScheduleNudgeImpl(nudge_delay, nudge_location); 430 ScheduleNudgeImpl(nudge_delay, nudge_location);
430 } 431 }
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 DCHECK(CalledOnValidThread()); 494 DCHECK(CalledOnValidThread());
494 nudge_tracker_.SetDefaultNudgeDelay(delay_ms); 495 nudge_tracker_.SetDefaultNudgeDelay(delay_ms);
495 } 496 }
496 497
497 void SyncSchedulerImpl::DoNudgeSyncSessionJob(JobPriority priority) { 498 void SyncSchedulerImpl::DoNudgeSyncSessionJob(JobPriority priority) {
498 DCHECK(CalledOnValidThread()); 499 DCHECK(CalledOnValidThread());
499 DCHECK(CanRunNudgeJobNow(priority)); 500 DCHECK(CanRunNudgeJobNow(priority));
500 501
501 DVLOG(2) << "Will run normal mode sync cycle with types " 502 DVLOG(2) << "Will run normal mode sync cycle with types "
502 << ModelTypeSetToString(session_context_->GetEnabledTypes()); 503 << ModelTypeSetToString(session_context_->GetEnabledTypes());
503 scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this)); 504 std::unique_ptr<SyncSession> session(
505 SyncSession::Build(session_context_, this));
504 bool success = syncer_->NormalSyncShare( 506 bool success = syncer_->NormalSyncShare(
505 GetEnabledAndUnthrottledTypes(), &nudge_tracker_, session.get()); 507 GetEnabledAndUnthrottledTypes(), &nudge_tracker_, session.get());
506 508
507 if (success) { 509 if (success) {
508 // That cycle took care of any outstanding work we had. 510 // That cycle took care of any outstanding work we had.
509 SDVLOG(2) << "Nudge succeeded."; 511 SDVLOG(2) << "Nudge succeeded.";
510 nudge_tracker_.RecordSuccessfulSyncCycle(); 512 nudge_tracker_.RecordSuccessfulSyncCycle();
511 scheduled_nudge_time_ = base::TimeTicks(); 513 scheduled_nudge_time_ = base::TimeTicks();
512 HandleSuccess(); 514 HandleSuccess();
513 515
(...skipping 15 matching lines...) Expand all
529 DCHECK(pending_configure_params_ != NULL); 531 DCHECK(pending_configure_params_ != NULL);
530 532
531 if (!CanRunJobNow(priority)) { 533 if (!CanRunJobNow(priority)) {
532 SDVLOG(2) << "Unable to run configure job right now."; 534 SDVLOG(2) << "Unable to run configure job right now.";
533 RunAndReset(&pending_configure_params_->retry_task); 535 RunAndReset(&pending_configure_params_->retry_task);
534 return; 536 return;
535 } 537 }
536 538
537 SDVLOG(2) << "Will run configure SyncShare with types " 539 SDVLOG(2) << "Will run configure SyncShare with types "
538 << ModelTypeSetToString(session_context_->GetEnabledTypes()); 540 << ModelTypeSetToString(session_context_->GetEnabledTypes());
539 scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this)); 541 std::unique_ptr<SyncSession> session(
542 SyncSession::Build(session_context_, this));
540 bool success = syncer_->ConfigureSyncShare( 543 bool success = syncer_->ConfigureSyncShare(
541 pending_configure_params_->types_to_download, 544 pending_configure_params_->types_to_download,
542 pending_configure_params_->source, 545 pending_configure_params_->source,
543 session.get()); 546 session.get());
544 547
545 if (success) { 548 if (success) {
546 SDVLOG(2) << "Configure succeeded."; 549 SDVLOG(2) << "Configure succeeded.";
547 pending_configure_params_->ready_task.Run(); 550 pending_configure_params_->ready_task.Run();
548 pending_configure_params_.reset(); 551 pending_configure_params_.reset();
549 HandleSuccess(); 552 HandleSuccess();
550 } else { 553 } else {
551 HandleFailure(session->status_controller().model_neutral_state()); 554 HandleFailure(session->status_controller().model_neutral_state());
552 // Sync cycle might receive response from server that causes scheduler to 555 // Sync cycle might receive response from server that causes scheduler to
553 // stop and draws pending_configure_params_ invalid. 556 // stop and draws pending_configure_params_ invalid.
554 if (started_) 557 if (started_)
555 RunAndReset(&pending_configure_params_->retry_task); 558 RunAndReset(&pending_configure_params_->retry_task);
556 } 559 }
557 } 560 }
558 561
559 void SyncSchedulerImpl::DoClearServerDataSyncSessionJob(JobPriority priority) { 562 void SyncSchedulerImpl::DoClearServerDataSyncSessionJob(JobPriority priority) {
560 DCHECK(CalledOnValidThread()); 563 DCHECK(CalledOnValidThread());
561 DCHECK_EQ(mode_, CLEAR_SERVER_DATA_MODE); 564 DCHECK_EQ(mode_, CLEAR_SERVER_DATA_MODE);
562 565
563 if (!CanRunJobNow(priority)) { 566 if (!CanRunJobNow(priority)) {
564 SDVLOG(2) << "Unable to run clear server data job right now."; 567 SDVLOG(2) << "Unable to run clear server data job right now.";
565 RunAndReset(&pending_configure_params_->retry_task); 568 RunAndReset(&pending_configure_params_->retry_task);
566 return; 569 return;
567 } 570 }
568 571
569 scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this)); 572 std::unique_ptr<SyncSession> session(
573 SyncSession::Build(session_context_, this));
570 const bool success = syncer_->PostClearServerData(session.get()); 574 const bool success = syncer_->PostClearServerData(session.get());
571 if (!success) { 575 if (!success) {
572 HandleFailure(session->status_controller().model_neutral_state()); 576 HandleFailure(session->status_controller().model_neutral_state());
573 return; 577 return;
574 } 578 }
575 579
576 SDVLOG(2) << "Clear succeeded."; 580 SDVLOG(2) << "Clear succeeded.";
577 pending_clear_params_->report_success_task.Run(); 581 pending_clear_params_->report_success_task.Run();
578 pending_clear_params_.reset(); 582 pending_clear_params_.reset();
579 HandleSuccess(); 583 HandleSuccess();
(...skipping 24 matching lines...) Expand all
604 new WaitInterval(WaitInterval::EXPONENTIAL_BACKOFF, length)); 608 new WaitInterval(WaitInterval::EXPONENTIAL_BACKOFF, length));
605 SDVLOG(2) << "Sync cycle failed. Will back off for " 609 SDVLOG(2) << "Sync cycle failed. Will back off for "
606 << wait_interval_->length.InMilliseconds() << "ms."; 610 << wait_interval_->length.InMilliseconds() << "ms.";
607 } 611 }
608 RestartWaiting(); 612 RestartWaiting();
609 } 613 }
610 614
611 void SyncSchedulerImpl::DoPollSyncSessionJob() { 615 void SyncSchedulerImpl::DoPollSyncSessionJob() {
612 SDVLOG(2) << "Polling with types " 616 SDVLOG(2) << "Polling with types "
613 << ModelTypeSetToString(GetEnabledAndUnthrottledTypes()); 617 << ModelTypeSetToString(GetEnabledAndUnthrottledTypes());
614 scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this)); 618 std::unique_ptr<SyncSession> session(
619 SyncSession::Build(session_context_, this));
615 bool success = syncer_->PollSyncShare( 620 bool success = syncer_->PollSyncShare(
616 GetEnabledAndUnthrottledTypes(), 621 GetEnabledAndUnthrottledTypes(),
617 session.get()); 622 session.get());
618 623
619 // Only restart the timer if the poll succeeded. Otherwise rely on normal 624 // Only restart the timer if the poll succeeded. Otherwise rely on normal
620 // failure handling to retry with backoff. 625 // failure handling to retry with backoff.
621 if (success) { 626 if (success) {
622 AdjustPolling(FORCE_RESET); 627 AdjustPolling(FORCE_RESET);
623 HandleSuccess(); 628 HandleSuccess();
624 } else { 629 } else {
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
983 988
984 #undef SDVLOG_LOC 989 #undef SDVLOG_LOC
985 990
986 #undef SDVLOG 991 #undef SDVLOG
987 992
988 #undef SLOG 993 #undef SLOG
989 994
990 #undef ENUM_CASE 995 #undef ENUM_CASE
991 996
992 } // namespace syncer 997 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698