Index: sync/engine/sync_scheduler_impl.cc |
diff --git a/sync/engine/sync_scheduler_impl.cc b/sync/engine/sync_scheduler_impl.cc |
index 974ed27e4ee9a9e45f7228e6b31afb6ce4b374da..490790d841ba544f01845cc9e8a95093025b6243 100644 |
--- a/sync/engine/sync_scheduler_impl.cc |
+++ b/sync/engine/sync_scheduler_impl.cc |
@@ -32,6 +32,19 @@ using sync_pb::GetUpdatesCallerInfo; |
namespace { |
+bool IsConfigRelatedUpdateSourceValue( |
+ GetUpdatesCallerInfo::GetUpdatesSource source) { |
+ switch (source) { |
+ case GetUpdatesCallerInfo::RECONFIGURATION: |
+ case GetUpdatesCallerInfo::MIGRATION: |
+ case GetUpdatesCallerInfo::NEW_CLIENT: |
+ case GetUpdatesCallerInfo::NEWLY_SUPPORTED_DATATYPE: |
+ return true; |
+ default: |
+ return false; |
+ } |
+} |
+ |
bool ShouldRequestEarlyExit(const SyncProtocolError& error) { |
switch (error.error_type) { |
case SYNC_SUCCESS: |
@@ -65,6 +78,7 @@ bool IsActionableError( |
const SyncProtocolError& error) { |
return (error.action != UNKNOWN_ACTION); |
} |
+ |
} // namespace |
ConfigurationParams::ConfigurationParams() |
@@ -132,25 +146,6 @@ GetUpdatesCallerInfo::GetUpdatesSource GetUpdatesFromNudgeSource( |
#define SDVLOG_LOC(from_here, verbose_level) \ |
DVLOG_LOC(from_here, verbose_level) << name_ << ": " |
-namespace { |
- |
-const int kDefaultSessionsCommitDelaySeconds = 10; |
- |
-bool IsConfigRelatedUpdateSourceValue( |
- GetUpdatesCallerInfo::GetUpdatesSource source) { |
- switch (source) { |
- case GetUpdatesCallerInfo::RECONFIGURATION: |
- case GetUpdatesCallerInfo::MIGRATION: |
- case GetUpdatesCallerInfo::NEW_CLIENT: |
- case GetUpdatesCallerInfo::NEWLY_SUPPORTED_DATATYPE: |
- return true; |
- default: |
- return false; |
- } |
-} |
- |
-} // namespace |
- |
SyncSchedulerImpl::SyncSchedulerImpl(const std::string& name, |
BackoffDelayProvider* delay_provider, |
sessions::SyncSessionContext* context, |
@@ -161,8 +156,6 @@ SyncSchedulerImpl::SyncSchedulerImpl(const std::string& name, |
TimeDelta::FromSeconds(kDefaultShortPollIntervalSeconds)), |
syncer_long_poll_interval_seconds_( |
TimeDelta::FromSeconds(kDefaultLongPollIntervalSeconds)), |
- sessions_commit_delay_( |
- TimeDelta::FromSeconds(kDefaultSessionsCommitDelaySeconds)), |
mode_(NORMAL_MODE), |
delay_provider_(delay_provider), |
syncer_(syncer), |
@@ -356,7 +349,6 @@ bool SyncSchedulerImpl::CanRunNudgeJobNow(JobPriority priority) { |
} |
void SyncSchedulerImpl::ScheduleLocalNudge( |
- const TimeDelta& desired_delay, |
ModelTypeSet types, |
const tracked_objects::Location& nudge_location) { |
DCHECK(CalledOnValidThread()); |
@@ -366,12 +358,11 @@ void SyncSchedulerImpl::ScheduleLocalNudge( |
<< "Scheduling sync because of local change to " |
<< ModelTypeSetToString(types); |
UpdateNudgeTimeRecords(types); |
- nudge_tracker_.RecordLocalChange(types); |
- ScheduleNudgeImpl(desired_delay, nudge_location); |
+ base::TimeDelta nudge_delay = nudge_tracker_.RecordLocalChange(types); |
+ ScheduleNudgeImpl(nudge_delay, nudge_location); |
} |
void SyncSchedulerImpl::ScheduleLocalRefreshRequest( |
- const TimeDelta& desired_delay, |
ModelTypeSet types, |
const tracked_objects::Location& nudge_location) { |
DCHECK(CalledOnValidThread()); |
@@ -380,12 +371,11 @@ void SyncSchedulerImpl::ScheduleLocalRefreshRequest( |
SDVLOG_LOC(nudge_location, 2) |
<< "Scheduling sync because of local refresh request for " |
<< ModelTypeSetToString(types); |
- nudge_tracker_.RecordLocalRefreshRequest(types); |
- ScheduleNudgeImpl(desired_delay, nudge_location); |
+ base::TimeDelta nudge_delay = nudge_tracker_.RecordLocalRefreshRequest(types); |
+ ScheduleNudgeImpl(nudge_delay, nudge_location); |
} |
void SyncSchedulerImpl::ScheduleInvalidationNudge( |
- const TimeDelta& desired_delay, |
syncer::ModelType model_type, |
scoped_ptr<InvalidationInterface> invalidation, |
const tracked_objects::Location& nudge_location) { |
@@ -394,8 +384,9 @@ void SyncSchedulerImpl::ScheduleInvalidationNudge( |
SDVLOG_LOC(nudge_location, 2) |
<< "Scheduling sync because we received invalidation for " |
<< ModelTypeToString(model_type); |
- nudge_tracker_.RecordRemoteInvalidation(model_type, invalidation.Pass()); |
- ScheduleNudgeImpl(desired_delay, nudge_location); |
+ base::TimeDelta nudge_delay = |
+ nudge_tracker_.RecordRemoteInvalidation(model_type, invalidation.Pass()); |
+ ScheduleNudgeImpl(nudge_delay, nudge_location); |
} |
void SyncSchedulerImpl::ScheduleInitialSyncNudge(syncer::ModelType model_type) { |
@@ -461,6 +452,11 @@ const char* SyncSchedulerImpl::GetModeString(SyncScheduler::Mode mode) { |
return ""; |
} |
+void SyncSchedulerImpl::SetDefaultNudgeDelay(base::TimeDelta delay_ms) { |
+ DCHECK(CalledOnValidThread()); |
+ nudge_tracker_.SetDefaultNudgeDelay(delay_ms); |
+} |
+ |
void SyncSchedulerImpl::DoNudgeSyncSessionJob(JobPriority priority) { |
DCHECK(CalledOnValidThread()); |
DCHECK(CanRunNudgeJobNow(priority)); |
@@ -862,10 +858,10 @@ void SyncSchedulerImpl::OnReceivedLongPollIntervalUpdate( |
syncer_long_poll_interval_seconds_ = new_interval; |
} |
-void SyncSchedulerImpl::OnReceivedSessionsCommitDelay( |
- const base::TimeDelta& new_delay) { |
+void SyncSchedulerImpl::OnReceivedCustomNudgeDelays( |
+ const std::map<ModelType, base::TimeDelta>& nudge_delays) { |
DCHECK(CalledOnValidThread()); |
- sessions_commit_delay_ = new_delay; |
+ nudge_tracker_.OnReceivedCustomNudgeDelays(nudge_delays); |
} |
void SyncSchedulerImpl::OnReceivedClientInvalidationHintBufferSize(int size) { |
@@ -911,11 +907,6 @@ void SyncSchedulerImpl::SetNotificationsEnabled(bool notifications_enabled) { |
nudge_tracker_.OnInvalidationsDisabled(); |
} |
-base::TimeDelta SyncSchedulerImpl::GetSessionsCommitDelay() const { |
- DCHECK(CalledOnValidThread()); |
- return sessions_commit_delay_; |
-} |
- |
#undef SDVLOG_LOC |
#undef SDVLOG |