| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 #ifndef SYNC_ENGINE_SYNC_SESSION_JOB_H_ | 5 #ifndef SYNC_ENGINE_SYNC_SESSION_JOB_H_ |
| 6 #define SYNC_ENGINE_SYNC_SESSION_JOB_H_ | 6 #define SYNC_ENGINE_SYNC_SESSION_JOB_H_ |
| 7 | 7 |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
| 10 #include "base/time.h" | 10 #include "base/time.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 // during initial sync or reconfiguration. | 30 // during initial sync or reconfiguration. |
| 31 CONFIGURATION, | 31 CONFIGURATION, |
| 32 }; | 32 }; |
| 33 | 33 |
| 34 SyncSessionJob(Purpose purpose, | 34 SyncSessionJob(Purpose purpose, |
| 35 base::TimeTicks start, | 35 base::TimeTicks start, |
| 36 const sessions::SyncSourceInfo& source_info, | 36 const sessions::SyncSourceInfo& source_info, |
| 37 const ConfigurationParams& config_params); | 37 const ConfigurationParams& config_params); |
| 38 ~SyncSessionJob(); | 38 ~SyncSessionJob(); |
| 39 | 39 |
| 40 // Returns a new clone of the job, with a cloned SyncSession ready to be | |
| 41 // retried / rescheduled. | |
| 42 scoped_ptr<SyncSessionJob> Clone() const; | |
| 43 | |
| 44 // Overwrite the sync update source with the most recent and merge the | 40 // Overwrite the sync update source with the most recent and merge the |
| 45 // type/state map. | 41 // type/state map. |
| 46 void CoalesceSources(const sessions::SyncSourceInfo& source); | 42 void CoalesceSources(const sessions::SyncSourceInfo& source); |
| 47 | 43 |
| 48 // Record that the scheduler has deemed the job as finished and give it a | 44 // Record that the scheduler has deemed the job as finished and give it a |
| 49 // chance to perform any remaining cleanup and/or notification completion | 45 // chance to perform any remaining cleanup and/or notification completion |
| 50 // callback invocations. | 46 // callback invocations. |
| 51 // |early_exit| specifies whether the job 1) cycled through all the | 47 // |early_exit| specifies whether the job 1) cycled through all the |
| 52 // SyncerSteps it needed, or 2) was pre-empted by the scheduler. | 48 // SyncerSteps it needed, or 2) was pre-empted by the scheduler. |
| 53 // Returns true if we completely ran the session without errors. | 49 // Returns true if we completely ran the session without errors. |
| (...skipping 14 matching lines...) Expand all Loading... |
| 68 | 64 |
| 69 Purpose purpose() const; | 65 Purpose purpose() const; |
| 70 const sessions::SyncSourceInfo& source_info() const; | 66 const sessions::SyncSourceInfo& source_info() const; |
| 71 base::TimeTicks scheduled_start() const; | 67 base::TimeTicks scheduled_start() const; |
| 72 void set_scheduled_start(base::TimeTicks start); | 68 void set_scheduled_start(base::TimeTicks start); |
| 73 SyncerStep start_step() const; | 69 SyncerStep start_step() const; |
| 74 SyncerStep end_step() const; | 70 SyncerStep end_step() const; |
| 75 ConfigurationParams config_params() const; | 71 ConfigurationParams config_params() const; |
| 76 | 72 |
| 77 private: | 73 private: |
| 78 // A SyncSessionJob can be in one of these three states, controlled by the | |
| 79 // Finish() function, see method comments. | |
| 80 enum FinishedState { | |
| 81 NOT_FINISHED, // Finish has not been called. | |
| 82 EARLY_EXIT, // Finish was called but the job was "preempted", | |
| 83 FINISHED // Indicates a "clean" finish operation. | |
| 84 }; | |
| 85 | |
| 86 const Purpose purpose_; | 74 const Purpose purpose_; |
| 87 sessions::SyncSourceInfo source_info_; | 75 sessions::SyncSourceInfo source_info_; |
| 88 | 76 |
| 89 base::TimeTicks scheduled_start_; | 77 base::TimeTicks scheduled_start_; |
| 90 | 78 |
| 91 // Only used for purpose_ == CONFIGURATION. This, and different Finish() and | 79 // Only used for purpose_ == CONFIGURATION. This, and different Finish() and |
| 92 // Succeeded() behavior may be arguments to subclass in the future. | 80 // Succeeded() behavior may be arguments to subclass in the future. |
| 93 const ConfigurationParams config_params_; | 81 const ConfigurationParams config_params_; |
| 94 | 82 |
| 95 // Set to true if Finish() was called, false otherwise. True implies that | |
| 96 // a SyncShare operation took place with |session_| and it cycled through | |
| 97 // all requisite steps given |purpose_| without being preempted. | |
| 98 FinishedState finished_; | |
| 99 | |
| 100 DISALLOW_COPY_AND_ASSIGN(SyncSessionJob); | 83 DISALLOW_COPY_AND_ASSIGN(SyncSessionJob); |
| 101 }; | 84 }; |
| 102 | 85 |
| 103 } // namespace syncer | 86 } // namespace syncer |
| 104 | 87 |
| 105 #endif // SYNC_ENGINE_SYNC_SESSION_JOB_H_ | 88 #endif // SYNC_ENGINE_SYNC_SESSION_JOB_H_ |
| OLD | NEW |