| 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 // A class to schedule syncer tasks intelligently. | 5 // A class to schedule syncer tasks intelligently. |
| 6 #ifndef SYNC_ENGINE_SYNC_SCHEDULER_H_ | 6 #ifndef SYNC_ENGINE_SYNC_SCHEDULER_H_ |
| 7 #define SYNC_ENGINE_SYNC_SCHEDULER_H_ | 7 #define SYNC_ENGINE_SYNC_SCHEDULER_H_ |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 // | 89 // |
| 90 // NOTE: |desired_delay| is best-effort. If a nudge is already scheduled to | 90 // NOTE: |desired_delay| is best-effort. If a nudge is already scheduled to |
| 91 // depart earlier than Now() + delay, the scheduler can and will prefer to | 91 // depart earlier than Now() + delay, the scheduler can and will prefer to |
| 92 // batch the two so that only one nudge is sent (at the earlier time). Also, | 92 // batch the two so that only one nudge is sent (at the earlier time). Also, |
| 93 // as always with delayed tasks and timers, it's possible the task gets run | 93 // as always with delayed tasks and timers, it's possible the task gets run |
| 94 // any time after |desired_delay|. | 94 // any time after |desired_delay|. |
| 95 | 95 |
| 96 // The LocalNudge indicates that we've made a local change, and that the | 96 // The LocalNudge indicates that we've made a local change, and that the |
| 97 // syncer should plan to commit this to the server some time soon. | 97 // syncer should plan to commit this to the server some time soon. |
| 98 virtual void ScheduleLocalNudge( | 98 virtual void ScheduleLocalNudge( |
| 99 const base::TimeDelta& desired_delay, | |
| 100 ModelTypeSet types, | 99 ModelTypeSet types, |
| 101 const tracked_objects::Location& nudge_location) = 0; | 100 const tracked_objects::Location& nudge_location) = 0; |
| 102 | 101 |
| 103 // The LocalRefreshRequest occurs when we decide for some reason to manually | 102 // The LocalRefreshRequest occurs when we decide for some reason to manually |
| 104 // request updates. This should be used sparingly. For example, one of its | 103 // request updates. This should be used sparingly. For example, one of its |
| 105 // uses is to fetch the latest tab sync data when it's relevant to the UI on | 104 // uses is to fetch the latest tab sync data when it's relevant to the UI on |
| 106 // platforms where tab sync is not registered for invalidations. | 105 // platforms where tab sync is not registered for invalidations. |
| 107 virtual void ScheduleLocalRefreshRequest( | 106 virtual void ScheduleLocalRefreshRequest( |
| 108 const base::TimeDelta& desired_delay, | |
| 109 ModelTypeSet types, | 107 ModelTypeSet types, |
| 110 const tracked_objects::Location& nudge_location) = 0; | 108 const tracked_objects::Location& nudge_location) = 0; |
| 111 | 109 |
| 112 // Invalidations are notifications the server sends to let us know when other | 110 // Invalidations are notifications the server sends to let us know when other |
| 113 // clients have committed data. We need to contact the sync server (being | 111 // clients have committed data. We need to contact the sync server (being |
| 114 // careful to pass along the "hints" delivered with those invalidations) in | 112 // careful to pass along the "hints" delivered with those invalidations) in |
| 115 // order to fetch the update. | 113 // order to fetch the update. |
| 116 virtual void ScheduleInvalidationNudge( | 114 virtual void ScheduleInvalidationNudge( |
| 117 const base::TimeDelta& desired_delay, | |
| 118 syncer::ModelType type, | 115 syncer::ModelType type, |
| 119 scoped_ptr<InvalidationInterface> invalidation, | 116 scoped_ptr<InvalidationInterface> invalidation, |
| 120 const tracked_objects::Location& nudge_location) = 0; | 117 const tracked_objects::Location& nudge_location) = 0; |
| 121 | 118 |
| 122 // Requests a non-blocking initial sync request for the specified type. | 119 // Requests a non-blocking initial sync request for the specified type. |
| 123 // | 120 // |
| 124 // Many types can only complete initial sync while the scheduler is in | 121 // Many types can only complete initial sync while the scheduler is in |
| 125 // configure mode, but a few of them are able to perform their initial sync | 122 // configure mode, but a few of them are able to perform their initial sync |
| 126 // while the scheduler is in normal mode. This non-blocking initial sync | 123 // while the scheduler is in normal mode. This non-blocking initial sync |
| 127 // can be requested through this function. | 124 // can be requested through this function. |
| 128 virtual void ScheduleInitialSyncNudge(syncer::ModelType model_type) = 0; | 125 virtual void ScheduleInitialSyncNudge(syncer::ModelType model_type) = 0; |
| 129 | 126 |
| 130 // Change status of notifications in the SyncSessionContext. | 127 // Change status of notifications in the SyncSessionContext. |
| 131 virtual void SetNotificationsEnabled(bool notifications_enabled) = 0; | 128 virtual void SetNotificationsEnabled(bool notifications_enabled) = 0; |
| 132 | 129 |
| 133 virtual base::TimeDelta GetSessionsCommitDelay() const = 0; | |
| 134 | |
| 135 // Called when credentials are updated by the user. | 130 // Called when credentials are updated by the user. |
| 136 virtual void OnCredentialsUpdated() = 0; | 131 virtual void OnCredentialsUpdated() = 0; |
| 137 | 132 |
| 138 // Called when the network layer detects a connection status change. | 133 // Called when the network layer detects a connection status change. |
| 139 virtual void OnConnectionStatusChange() = 0; | 134 virtual void OnConnectionStatusChange() = 0; |
| 140 }; | 135 }; |
| 141 | 136 |
| 142 } // namespace syncer | 137 } // namespace syncer |
| 143 | 138 |
| 144 #endif // SYNC_ENGINE_SYNC_SCHEDULER_H_ | 139 #endif // SYNC_ENGINE_SYNC_SCHEDULER_H_ |
| OLD | NEW |