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_; |