diff options
Diffstat (limited to 'base/timer/timer.h')
-rw-r--r-- | base/timer/timer.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/base/timer/timer.h b/base/timer/timer.h index 4ef2f45..7e2c1d4 100644 --- a/base/timer/timer.h +++ b/base/timer/timer.h @@ -60,6 +60,7 @@ namespace base { class BaseTimerTaskInternal; +class SingleThreadTaskRunner; //----------------------------------------------------------------------------- // This class wraps MessageLoop::PostDelayedTask to manage delayed and repeating @@ -87,6 +88,10 @@ class BASE_EXPORT Timer { // Returns the current delay for this timer. virtual TimeDelta GetCurrentDelay() const; + // Set the task runner on which the task should be scheduled. This method can + // only be called before any tasks have been scheduled. + virtual void SetTaskRunner(scoped_refptr<SingleThreadTaskRunner> task_runner); + // Start the timer to run at the given |delay| from now. If the timer is // already running, it will be replaced to call the given |user_task|. virtual void Start(const tracked_objects::Location& posted_from, @@ -128,6 +133,11 @@ class BASE_EXPORT Timer { // and desired_run_time_ are reset to Now() + delay. void PostNewScheduledTask(TimeDelta delay); + // Returns the task runner on which the task should be scheduled. If the + // corresponding task_runner_ field is null, the task runner for the current + // thread is returned. + scoped_refptr<SingleThreadTaskRunner> GetTaskRunner(); + // Disable scheduled_task_ and abandon it so that it no longer refers back to // this object. void AbandonScheduledTask(); @@ -145,6 +155,10 @@ class BASE_EXPORT Timer { // RunScheduledTask() at scheduled_run_time_. BaseTimerTaskInternal* scheduled_task_; + // The task runner on which the task should be scheduled. If it is null, the + // task runner for the current thread should be used. + scoped_refptr<SingleThreadTaskRunner> task_runner_; + // Location in user code. tracked_objects::Location posted_from_; // Delay requested by user. |