OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 // OneShotTimer and RepeatingTimer provide a simple timer API. As the names | 5 // OneShotTimer and RepeatingTimer provide a simple timer API. As the names |
6 // suggest, OneShotTimer calls you back once after a time delay expires. | 6 // suggest, OneShotTimer calls you back once after a time delay expires. |
7 // RepeatingTimer on the other hand calls you back periodically with the | 7 // RepeatingTimer on the other hand calls you back periodically with the |
8 // prescribed time interval. | 8 // prescribed time interval. |
9 // | 9 // |
10 // OneShotTimer and RepeatingTimer both cancel the timer when they go out of | 10 // OneShotTimer and RepeatingTimer both cancel the timer when they go out of |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 const base::Closure& user_task() const { return user_task_; } | 104 const base::Closure& user_task() const { return user_task_; } |
105 const TimeTicks& desired_run_time() const { return desired_run_time_; } | 105 const TimeTicks& desired_run_time() const { return desired_run_time_; } |
106 | 106 |
107 protected: | 107 protected: |
108 // Used to initiate a new delayed task. This has the side-effect of disabling | 108 // Used to initiate a new delayed task. This has the side-effect of disabling |
109 // scheduled_task_ if it is non-null. | 109 // scheduled_task_ if it is non-null. |
110 void SetTaskInfo(const tracked_objects::Location& posted_from, | 110 void SetTaskInfo(const tracked_objects::Location& posted_from, |
111 TimeDelta delay, | 111 TimeDelta delay, |
112 const base::Closure& user_task); | 112 const base::Closure& user_task); |
113 | 113 |
| 114 void set_user_task(const Closure& task) { user_task_ = task; } |
| 115 void set_desired_run_time(TimeTicks desired) { desired_run_time_ = desired; } |
| 116 void set_is_running(bool running) { is_running_ = running; } |
| 117 |
| 118 const tracked_objects::Location& posted_from() const { return posted_from_; } |
114 bool retain_user_task() const { return retain_user_task_; } | 119 bool retain_user_task() const { return retain_user_task_; } |
115 bool is_repeating() const { return is_repeating_; } | 120 bool is_repeating() const { return is_repeating_; } |
| 121 bool is_running() const { return is_running_; } |
116 | 122 |
117 private: | 123 private: |
118 friend class BaseTimerTaskInternal; | 124 friend class BaseTimerTaskInternal; |
119 | 125 |
120 // Allocates a new scheduled_task_ and posts it on the current MessageLoop | 126 // Allocates a new scheduled_task_ and posts it on the current MessageLoop |
121 // with the given |delay|. scheduled_task_ must be NULL. scheduled_run_time_ | 127 // with the given |delay|. scheduled_task_ must be NULL. scheduled_run_time_ |
122 // and desired_run_time_ are reset to Now() + delay. | 128 // and desired_run_time_ are reset to Now() + delay. |
123 void PostNewScheduledTask(TimeDelta delay); | 129 void PostNewScheduledTask(TimeDelta delay); |
124 | 130 |
125 // Disable scheduled_task_ and abandon it so that it no longer refers back to | 131 // Disable scheduled_task_ and abandon it so that it no longer refers back to |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 : Timer(posted_from, delay, | 244 : Timer(posted_from, delay, |
239 base::Bind(method, base::Unretained(receiver)), | 245 base::Bind(method, base::Unretained(receiver)), |
240 false) {} | 246 false) {} |
241 | 247 |
242 void Reset() { Timer::Reset(); } | 248 void Reset() { Timer::Reset(); } |
243 }; | 249 }; |
244 | 250 |
245 } // namespace base | 251 } // namespace base |
246 | 252 |
247 #endif // BASE_TIMER_TIMER_H_ | 253 #endif // BASE_TIMER_TIMER_H_ |
OLD | NEW |