Chromium Code Reviews| Index: components/scheduler/base/delayed_task_delegate_impl.h |
| diff --git a/components/scheduler/base/delayed_task_delegate_impl.h b/components/scheduler/base/delayed_task_delegate_impl.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..86a3ef41203d831d848e4afb922d2f386b38644e |
| --- /dev/null |
| +++ b/components/scheduler/base/delayed_task_delegate_impl.h |
| @@ -0,0 +1,47 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef COMPONENTS_SCHEDULER_BASE_DELAYED_TASK_DELEGATE_IMPL_H_ |
| +#define COMPONENTS_SCHEDULER_BASE_DELAYED_TASK_DELEGATE_IMPL_H_ |
| + |
| +#include "base/callback.h" |
| +#include "base/macros.h" |
| +#include "base/memory/weak_ptr.h" |
| +#include "components/scheduler/base/delayed_task_delegate.h" |
| +#include "components/scheduler/scheduler_export.h" |
| + |
| +namespace scheduler { |
| +class TaskQueueManagerDelegate; |
| + |
| +class SCHEDULER_EXPORT DelayedTaskDelegateImpl : public DelayedTaskDelegate { |
| + public: |
| + DelayedTaskDelegateImpl(TaskQueueManagerDelegate* delegate, |
| + base::Closure do_work_closure); |
| + |
| + // TimeSource implementation: |
| + base::TimeTicks CachedNow() override; |
| + void InvalidateNowCache() override; |
| + |
| + protected: |
| + // TimeSource protected implementation: |
|
Sami
2015/11/17 10:31:06
TimeSource?
alex clarke (OOO till 29th)
2015/11/18 15:30:15
Done.
|
| + bool BelongsToCurrentThread() const override; |
| + void PostScheduleDelayedWorkTaskOnMainThread( |
| + internal::TaskQueueImpl* queue, |
| + base::TimeTicks delayed_run_time) override; |
| + void ScheduleDoWork(base::TimeDelta delay) override; |
| + |
| + private: |
| + TaskQueueManagerDelegate* delegate_; // NOT OWNED |
| + base::TimeTicks cached_now_; |
| + base::Closure do_work_closure_; |
| + base::WeakPtrFactory<DelayedTaskDelegateImpl> weak_factory_; |
| + |
| + ~DelayedTaskDelegateImpl() override; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(DelayedTaskDelegateImpl); |
| +}; |
| + |
| +} // namespace scheduler |
| + |
| +#endif // COMPONENTS_SCHEDULER_BASE_DELAYED_TASK_DELEGATE_IMPL_H_ |