Index: components/scheduler/child/virtual_time_tqm_delegate.h |
diff --git a/components/scheduler/child/scheduler_task_runner_delegate_impl.h b/components/scheduler/child/virtual_time_tqm_delegate.h |
similarity index 51% |
rename from components/scheduler/child/scheduler_task_runner_delegate_impl.h |
rename to components/scheduler/child/virtual_time_tqm_delegate.h |
index 2f18b992c68728bbdd47c47a32e3bbf9c128098e..e78656bc97037da5d05ddd3d38c2709096e93b9a 100644 |
--- a/components/scheduler/child/scheduler_task_runner_delegate_impl.h |
+++ b/components/scheduler/child/virtual_time_tqm_delegate.h |
@@ -2,23 +2,27 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef COMPONENTS_SCHEDULER_CHILD_SCHEDULER_TASK_RUNNER_DELEGATE_IMPL_H_ |
-#define COMPONENTS_SCHEDULER_CHILD_SCHEDULER_TASK_RUNNER_DELEGATE_IMPL_H_ |
+#ifndef COMPONENTS_SCHEDULER_CHILD_VIRTUAL_TIME_TASK_RUNNER_DELEGATE_H_ |
Sami
2015/10/30 14:09:50
TQM_DELEGATE
alex clarke (OOO till 29th)
2015/10/30 16:02:00
Done.
|
+#define COMPONENTS_SCHEDULER_CHILD_VIRTUAL_TIME_TASK_RUNNER_DELEGATE_H_ |
+#include <map> |
+ |
+#include "base/macros.h" |
#include "base/message_loop/message_loop.h" |
-#include "components/scheduler/child/scheduler_task_runner_delegate.h" |
+#include "base/time/tick_clock.h" |
+#include "components/scheduler/child/scheduler_tqm_delegate.h" |
#include "components/scheduler/scheduler_export.h" |
namespace scheduler { |
-class SCHEDULER_EXPORT SchedulerTaskRunnerDelegateImpl |
- : public SchedulerTaskRunnerDelegate { |
+class SCHEDULER_EXPORT VirtualTimeTqmDelegate : public SchedulerTqmDelegate { |
public: |
// |message_loop| is not owned and must outlive the lifetime of this object. |
- static scoped_refptr<SchedulerTaskRunnerDelegateImpl> Create( |
- base::MessageLoop* message_loop); |
+ static scoped_refptr<VirtualTimeTqmDelegate> Create( |
+ base::MessageLoop* message_loop, |
+ base::TimeTicks initial_now); |
- // SchedulerTaskRunnerDelegate implementation |
+ // SchedulerTqmDelegate implementation |
void SetDefaultTaskRunner( |
scoped_refptr<base::SingleThreadTaskRunner> task_runner) override; |
void RestoreDefaultTaskRunner() override; |
@@ -30,20 +34,30 @@ class SCHEDULER_EXPORT SchedulerTaskRunnerDelegateImpl |
base::TimeDelta delay) override; |
bool RunsTasksOnCurrentThread() const override; |
bool IsNested() const override; |
+ base::TimeTicks NowTicks() override; |
+ void OnNoMoreImmediateWork() override; |
protected: |
- ~SchedulerTaskRunnerDelegateImpl() override; |
+ ~VirtualTimeTqmDelegate() override; |
private: |
- explicit SchedulerTaskRunnerDelegateImpl(base::MessageLoop* message_loop); |
+ explicit VirtualTimeTqmDelegate(base::MessageLoop* message_loop, |
+ base::TimeTicks initial_no); |
+ |
+ void AdvancedTimeTo(base::TimeTicks now); |
+ |
+ typedef std::multimap<base::TimeTicks, base::Closure> DelayedWakeupMultimap; |
+ |
+ DelayedWakeupMultimap delayed_wakeup_multimap_; |
// Not owned. |
base::MessageLoop* message_loop_; |
scoped_refptr<SingleThreadTaskRunner> message_loop_task_runner_; |
+ base::TimeTicks now_; |
- DISALLOW_COPY_AND_ASSIGN(SchedulerTaskRunnerDelegateImpl); |
+ DISALLOW_COPY_AND_ASSIGN(VirtualTimeTqmDelegate); |
}; |
} // namespace scheduler |
-#endif // COMPONENTS_SCHEDULER_CHILD_SCHEDULER_TASK_RUNNER_DELEGATE_IMPL_H_ |
+#endif // COMPONENTS_SCHEDULER_CHILD_VIRTUAL_TIME_TASK_RUNNER_DELEGATE_H_ |