OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 class RepeatingTimer : public BaseTimer<Receiver, true> {}; | 199 class RepeatingTimer : public BaseTimer<Receiver, true> {}; |
200 | 200 |
201 //----------------------------------------------------------------------------- | 201 //----------------------------------------------------------------------------- |
202 // A Delay timer is like The Button from Lost. Once started, you have to keep | 202 // A Delay timer is like The Button from Lost. Once started, you have to keep |
203 // calling Reset otherwise it will call the given method in the MessageLoop | 203 // calling Reset otherwise it will call the given method in the MessageLoop |
204 // thread. | 204 // thread. |
205 // | 205 // |
206 // Once created, it is inactive until Reset is called. Once |delay| seconds have | 206 // Once created, it is inactive until Reset is called. Once |delay| seconds have |
207 // passed since the last call to Reset, the callback is made. Once the callback | 207 // passed since the last call to Reset, the callback is made. Once the callback |
208 // has been made, it's inactive until Reset is called again. | 208 // has been made, it's inactive until Reset is called again. |
| 209 // |
| 210 // If destroyed, the timeout is canceled and will not occur even if already |
| 211 // inflight. |
209 template <class Receiver> | 212 template <class Receiver> |
210 class DelayTimer { | 213 class DelayTimer { |
211 public: | 214 public: |
212 typedef void (Receiver::*ReceiverMethod)(); | 215 typedef void (Receiver::*ReceiverMethod)(); |
213 | 216 |
214 DelayTimer(TimeDelta delay, Receiver* receiver, ReceiverMethod method) | 217 DelayTimer(TimeDelta delay, Receiver* receiver, ReceiverMethod method) |
215 : receiver_(receiver), | 218 : receiver_(receiver), |
216 method_(method), | 219 method_(method), |
217 delay_(delay) { | 220 delay_(delay) { |
218 } | 221 } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 const ReceiverMethod method_; | 256 const ReceiverMethod method_; |
254 const TimeDelta delay_; | 257 const TimeDelta delay_; |
255 | 258 |
256 OneShotTimer<DelayTimer<Receiver> > timer_; | 259 OneShotTimer<DelayTimer<Receiver> > timer_; |
257 Time trigger_time_; | 260 Time trigger_time_; |
258 }; | 261 }; |
259 | 262 |
260 } // namespace base | 263 } // namespace base |
261 | 264 |
262 #endif // BASE_TIMER_H_ | 265 #endif // BASE_TIMER_H_ |
OLD | NEW |