Chromium Code Reviews| Index: sync/engine/sync_scheduler.h |
| diff --git a/sync/engine/sync_scheduler.h b/sync/engine/sync_scheduler.h |
| index d32ee25f2fb9a020cce23bb256f1ab83b6b6196d..ac1e49c80d45ad70f3fa0da2429db23544958d3b 100644 |
| --- a/sync/engine/sync_scheduler.h |
| +++ b/sync/engine/sync_scheduler.h |
| @@ -37,6 +37,28 @@ namespace browser_sync { |
| struct ServerConnectionEvent; |
| +struct ConfigureParams { |
|
tim (not reviewing)
2012/06/14 00:26:53
nit - ConfigurationParams, to match method
Nicolas Zea
2012/06/14 22:35:52
Done.
|
| + ConfigureParams(); |
| + ConfigureParams( |
| + const sync_pb::GetUpdatesCallerInfo::GetUpdatesSource& source, |
| + const syncable::ModelTypeSet& types_to_config, |
| + const browser_sync::ModelSafeRoutingInfo& routing_info, |
| + bool need_encryption_key, |
| + const base::Closure& ready_task); |
| + ~ConfigureParams(); |
| + |
| + // Source for the configuration. |
| + sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source; |
| + // The types that should be downloaded. |
| + syncable::ModelTypeSet types_to_config; |
| + // The new routing info (superset of types to be downloaded). |
| + ModelSafeRoutingInfo routing_info; |
| + // Whether we need to perform a GetKey command. |
| + bool need_encryption_key; |
| + // Callback to invoke on configuration completion. |
| + base::Closure ready_task; |
| +}; |
| + |
| class SyncScheduler : public sessions::SyncSession::Delegate { |
| public: |
| enum Mode { |
| @@ -63,10 +85,15 @@ class SyncScheduler : public sessions::SyncSession::Delegate { |
| // Start the scheduler with the given mode. If the scheduler is |
| // already started, switch to the given mode, although some |
| - // scheduled tasks from the old mode may still run. If non-NULL, |
| - // |callback| will be invoked when the mode has been changed to |
| - // |mode|. Takes ownership of |callback|. |
| - void Start(Mode mode, const base::Closure& callback); |
| + // scheduled tasks from the old mode may still run. |
| + void Start(Mode mode); |
| + |
| + // Schedules the configuration task specified by |params|. Returns true if |
| + // the configuration task executed immediately, false if it had to be |
| + // scheduled for a later attempt. |params.ready_task| is invoked whenever the |
| + // configuration task executes. |
| + // Note: must already be in CONFIGURATION mode. |
| + bool ScheduleConfiguration(const ConfigureParams& params); |
| // Request that any running syncer task stop as soon as possible and |
| // cancel all scheduled tasks. This function can be called from any thread, |
| @@ -86,14 +113,6 @@ class SyncScheduler : public sessions::SyncSession::Delegate { |
| const syncable::ModelTypePayloadMap& types_with_payloads, |
| const tracked_objects::Location& nudge_location); |
| - // Schedule a configuration cycle. May execute immediately or at a later time |
| - // (depending on backoff/throttle state). |
| - // Note: The source argument of this function must come from the subset of |
| - // GetUpdatesCallerInfo values related to configurations. |
| - void ScheduleConfiguration( |
| - syncable::ModelTypeSet types, |
| - sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source); |
| - |
| // TODO(tim): remove this. crbug.com/131336 |
| void ClearUserData(); |
| @@ -164,6 +183,7 @@ class SyncScheduler : public sessions::SyncSession::Delegate { |
| SyncSessionJob(); |
| SyncSessionJob(SyncSessionJobPurpose purpose, base::TimeTicks start, |
| linked_ptr<sessions::SyncSession> session, bool is_canary_job, |
| + ConfigureParams config_params, |
| const tracked_objects::Location& nudge_location); |
| ~SyncSessionJob(); |
| static const char* GetPurposeString(SyncSessionJobPurpose purpose); |
| @@ -172,6 +192,7 @@ class SyncScheduler : public sessions::SyncSession::Delegate { |
| base::TimeTicks scheduled_start; |
| linked_ptr<sessions::SyncSession> session; |
| bool is_canary_job; |
| + ConfigureParams config_params; |
| // This is the location the job came from. Used for debugging. |
| // In case of multiple nudges getting coalesced this stores the |