Chromium Code Reviews| Index: sync/engine/sync_scheduler.cc |
| diff --git a/sync/engine/sync_scheduler.cc b/sync/engine/sync_scheduler.cc |
| index fa8dc522070806932acbf46311bbb913ffab85ee..29215e4e3e040f6debcc5d72e73caf5b106b7dfb 100644 |
| --- a/sync/engine/sync_scheduler.cc |
| +++ b/sync/engine/sync_scheduler.cc |
| @@ -255,30 +255,9 @@ void SyncScheduler::Start(Mode mode, const base::Closure& callback) { |
| << thread_name << " with mode " << GetModeString(mode); |
| if (!started_) { |
| started_ = true; |
| - PostTask(FROM_HERE, "SendInitialSnapshot", |
| - base::Bind(&SyncScheduler::SendInitialSnapshot, |
| - weak_ptr_factory_.GetWeakPtr())); |
| + SendInitialSnapshot(); |
| } |
| - PostTask(FROM_HERE, "StartImpl", |
| - base::Bind(&SyncScheduler::StartImpl, |
| - weak_ptr_factory_.GetWeakPtr(), mode, callback)); |
| -} |
| - |
| -void SyncScheduler::SendInitialSnapshot() { |
| - DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| - scoped_ptr<SyncSession> dummy(new SyncSession(session_context_, this, |
| - SyncSourceInfo(), ModelSafeRoutingInfo(), |
| - std::vector<ModelSafeWorker*>())); |
| - SyncEngineEvent event(SyncEngineEvent::STATUS_CHANGED); |
| - event.snapshot = dummy->TakeSnapshot(); |
| - session_context_->NotifyListeners(event); |
| -} |
| - |
| -void SyncScheduler::StartImpl(Mode mode, const base::Closure& callback) { |
| - DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| - SDVLOG(2) << "In StartImpl with mode " << GetModeString(mode); |
| - DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| DCHECK(!session_context_->account_name().empty()); |
| DCHECK(syncer_.get()); |
| Mode old_mode = mode_; |
| @@ -294,6 +273,16 @@ void SyncScheduler::StartImpl(Mode mode, const base::Closure& callback) { |
| } |
| } |
| +void SyncScheduler::SendInitialSnapshot() { |
| + DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| + scoped_ptr<SyncSession> dummy(new SyncSession(session_context_, this, |
| + SyncSourceInfo(), ModelSafeRoutingInfo(), |
| + std::vector<ModelSafeWorker*>())); |
| + SyncEngineEvent event(SyncEngineEvent::STATUS_CHANGED); |
| + event.snapshot = dummy->TakeSnapshot(); |
| + session_context_->NotifyListeners(event); |
| +} |
| + |
| SyncScheduler::JobProcessDecision SyncScheduler::DecideWhileInWaitInterval( |
| const SyncSessionJob& job) { |
| DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| @@ -459,22 +448,23 @@ struct ModelSafeWorkerGroupIs { |
| ModelSafeGroup group; |
| }; |
| -void SyncScheduler::ScheduleClearUserData() { |
| +void SyncScheduler::ClearUserData() { |
| DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| - PostTask(FROM_HERE, "ScheduleClearUserDataImpl", |
| - base::Bind(&SyncScheduler::ScheduleClearUserDataImpl, |
| - weak_ptr_factory_.GetWeakPtr())); |
| + SyncSessionJob job(SyncSessionJob::CLEAR_USER_DATA, TimeTicks::Now(), |
| + make_linked_ptr(CreateSyncSession(SyncSourceInfo())), |
| + false, |
| + FROM_HERE); |
| + |
| + DoSyncSessionJob(job); |
| } |
| -// TODO(sync): Remove the *Impl methods for the other Schedule* |
| -// functions, too. |
| -void SyncScheduler::ScheduleCleanupDisabledTypes() { |
| +void SyncScheduler::CleanupDisabledTypes() { |
| DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| SyncSessionJob job(SyncSessionJob::CLEANUP_DISABLED_TYPES, TimeTicks::Now(), |
| make_linked_ptr(CreateSyncSession(SyncSourceInfo())), |
| false, |
| FROM_HERE); |
| - ScheduleSyncSessionJob(job); |
| + DoSyncSessionJob(job); |
| } |
| void SyncScheduler::ScheduleNudge( |
| @@ -489,14 +479,11 @@ void SyncScheduler::ScheduleNudge( |
| ModelTypePayloadMap types_with_payloads = |
| syncable::ModelTypePayloadMapFromEnumSet(types, std::string()); |
| - PostTask(nudge_location, "ScheduleNudgeImpl", |
| - base::Bind(&SyncScheduler::ScheduleNudgeImpl, |
| - weak_ptr_factory_.GetWeakPtr(), |
| - delay, |
| - GetUpdatesFromNudgeSource(source), |
| - types_with_payloads, |
| - false, |
| - nudge_location)); |
| + SyncScheduler::ScheduleNudgeImpl(delay, |
| + GetUpdatesFromNudgeSource(source), |
| + types_with_payloads, |
| + false, |
| + nudge_location); |
| } |
| void SyncScheduler::ScheduleNudgeWithPayloads( |
| @@ -510,24 +497,11 @@ void SyncScheduler::ScheduleNudgeWithPayloads( |
| << "payloads " |
| << syncable::ModelTypePayloadMapToString(types_with_payloads); |
| - PostTask(nudge_location, "ScheduleNudgeImpl", |
| - base::Bind(&SyncScheduler::ScheduleNudgeImpl, |
| - weak_ptr_factory_.GetWeakPtr(), |
| - delay, |
| - GetUpdatesFromNudgeSource(source), |
| - types_with_payloads, |
| - false, |
| - nudge_location)); |
| -} |
| - |
| -void SyncScheduler::ScheduleClearUserDataImpl() { |
| - DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| - SyncSessionJob job(SyncSessionJob::CLEAR_USER_DATA, TimeTicks::Now(), |
| - make_linked_ptr(CreateSyncSession(SyncSourceInfo())), |
| - false, |
| - FROM_HERE); |
| - |
| - ScheduleSyncSessionJob(job); |
| + SyncScheduler::ScheduleNudgeImpl(delay, |
| + GetUpdatesFromNudgeSource(source), |
| + types_with_payloads, |
| + false, |
| + nudge_location); |
| } |
| void SyncScheduler::ScheduleNudgeImpl( |
| @@ -626,12 +600,12 @@ void GetModelSafeParamsForTypes(ModelTypeSet types, |
| } |
| } |
| -void SyncScheduler::ScheduleConfig( |
| +void SyncScheduler::Configure( |
| ModelTypeSet types, |
| GetUpdatesCallerInfo::GetUpdatesSource source) { |
| DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| DCHECK(IsConfigRelatedUpdateSourceValue(source)); |
| - SDVLOG(2) << "Scheduling a config"; |
| + SDVLOG(2) << "Performing a config"; |
| ModelSafeRoutingInfo routes; |
| std::vector<ModelSafeWorker*> workers; |
| @@ -640,32 +614,17 @@ void SyncScheduler::ScheduleConfig( |
| session_context_->workers(), |
| &routes, &workers); |
| - PostTask(FROM_HERE, "ScheduleConfigImpl", |
| - base::Bind(&SyncScheduler::ScheduleConfigImpl, |
| - weak_ptr_factory_.GetWeakPtr(), |
| - routes, |
| - workers, |
| - source)); |
| -} |
| - |
| -void SyncScheduler::ScheduleConfigImpl( |
| - const ModelSafeRoutingInfo& routing_info, |
| - const std::vector<ModelSafeWorker*>& workers, |
| - const sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source) { |
| - DCHECK_EQ(MessageLoop::current(), sync_loop_); |
| - |
| - SDVLOG(2) << "In ScheduleConfigImpl"; |
| // TODO(tim): config-specific GetUpdatesCallerInfo value? |
|
tim (not reviewing)
2012/06/11 20:06:13
I think this can be removed.
Nicolas Zea
2012/06/11 20:55:09
Done.
|
| SyncSession* session = new SyncSession(session_context_, this, |
| SyncSourceInfo(source, |
| - syncable::ModelTypePayloadMapFromRoutingInfo( |
| - routing_info, std::string())), |
| - routing_info, workers); |
| + syncable::ModelTypePayloadMapFromRoutingInfo( |
| + routes, std::string())), |
| + routes, workers); |
| SyncSessionJob job(SyncSessionJob::CONFIGURATION, TimeTicks::Now(), |
| make_linked_ptr(session), |
| false, |
| FROM_HERE); |
| - ScheduleSyncSessionJob(job); |
| + DoSyncSessionJob(job); |
| } |
| const char* SyncScheduler::GetModeString(SyncScheduler::Mode mode) { |
| @@ -752,12 +711,15 @@ void SyncScheduler::ScheduleSyncSessionJob(const SyncSessionJob& job) { |
| << SyncSessionJob::GetPurposeString(job.purpose) |
| << " job and " << delay.InMilliseconds() << " ms delay"; |
| + DCHECK(job.purpose == SyncSessionJob::NUDGE || |
| + job.purpose == SyncSessionJob::POLL); |
| if (job.purpose == SyncSessionJob::NUDGE) { |
| SDVLOG_LOC(job.from_here, 2) << "Resetting pending_nudge"; |
| DCHECK(!pending_nudge_.get() || pending_nudge_->session.get() == |
| job.session); |
| pending_nudge_.reset(new SyncSessionJob(job)); |
| } |
| + |
| PostDelayedTask(job.from_here, "DoSyncSessionJob", |
| base::Bind(&SyncScheduler::DoSyncSessionJob, |
| weak_ptr_factory_.GetWeakPtr(), |