Chromium Code Reviews| Index: components/scheduler/child/single_thread_idle_task_runner.h |
| diff --git a/components/scheduler/child/single_thread_idle_task_runner.h b/components/scheduler/child/single_thread_idle_task_runner.h |
| index 358389a96dc50607a7a1ad449d983f719369f0b9..3af2e069fbd7d7956f08875c28dc0d417d5bad0c 100644 |
| --- a/components/scheduler/child/single_thread_idle_task_runner.h |
| +++ b/components/scheduler/child/single_thread_idle_task_runner.h |
| @@ -10,6 +10,7 @@ |
| #include "base/memory/ref_counted.h" |
| #include "base/single_thread_task_runner.h" |
| #include "base/time/time.h" |
| +#include "components/scheduler/scheduler_export.h" |
| namespace scheduler { |
| @@ -22,12 +23,33 @@ class SingleThreadIdleTaskRunner |
| public: |
| typedef base::Callback<void(base::TimeTicks)> IdleTask; |
| + // Used request idle task deadlines and signal posting of idle tasks. |
|
Sami
2015/05/26 13:35:41
"Used to"?
rmcilroy
2015/05/27 11:58:37
Done.
|
| + class SCHEDULER_EXPORT Observer { |
|
Sami
2015/05/26 13:35:41
"Delegate" or "Controller" perhaps since I think c
rmcilroy
2015/05/27 11:58:37
Yeah (I originally had Delegate, then moved to Obs
|
| + public: |
| + Observer(); |
| + virtual ~Observer(); |
| + |
| + // Signals that an idle task has been posted. |
| + virtual void OnIdleTaskPosted() = 0; |
|
Sami
2015/05/26 13:35:41
Maybe mention that this will be called on the post
rmcilroy
2015/05/27 11:58:37
Done.
|
| + |
| + // Signals that a new idle task is about to be run and returns the deadline |
| + // for this idle task. |
| + virtual void OnWillRunIdleTask(base::TimeTicks* deadline_out) const = 0; |
|
Sami
2015/05/26 13:35:41
Could we name these WillProcessIdleTask/DidProcess
rmcilroy
2015/05/27 11:58:37
Done.
|
| + |
| + // Signals that an idle task has finished being run. |
| + virtual void OnDidRunIdleTask() = 0; |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(Observer); |
| + }; |
| + |
| + |
| // NOTE Category strings must have application lifetime (statics or |
| // literals). They may not include " chars. |
| SingleThreadIdleTaskRunner( |
| scoped_refptr<base::SingleThreadTaskRunner> idle_priority_task_runner, |
| scoped_refptr<base::SingleThreadTaskRunner> after_wakeup_task_runner, |
| - base::Callback<void(base::TimeTicks*)> deadline_supplier, |
| + Observer* observer, |
| const char* tracing_category); |
| virtual void PostIdleTask(const tracked_objects::Location& from_here, |
| @@ -53,7 +75,7 @@ class SingleThreadIdleTaskRunner |
| scoped_refptr<base::SingleThreadTaskRunner> idle_priority_task_runner_; |
| scoped_refptr<base::SingleThreadTaskRunner> after_wakeup_task_runner_; |
| - base::Callback<void(base::TimeTicks*)> deadline_supplier_; |
| + Observer* observer_; // NOT OWNED |
| const char* tracing_category_; |
| base::WeakPtr<SingleThreadIdleTaskRunner> weak_scheduler_ptr_; |
| base::WeakPtrFactory<SingleThreadIdleTaskRunner> weak_factory_; |