Move blink scheduler implementation into a component
[chromium-blink-merge.git] / components / scheduler / child / null_worker_scheduler.h
blob535fa089a5ae18c1a2b7671c5e9bf1ffbb7b9e55
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_SCHEDULER_CHILD_NULL_WORKER_SCHEDULER_H_
6 #define COMPONENTS_SCHEDULER_CHILD_NULL_WORKER_SCHEDULER_H_
8 #include "components/scheduler/child/worker_scheduler.h"
10 namespace scheduler {
12 class NullWorkerScheduler : public WorkerScheduler {
13 public:
14 NullWorkerScheduler();
15 ~NullWorkerScheduler() override;
17 scoped_refptr<base::SingleThreadTaskRunner> DefaultTaskRunner() override;
18 scoped_refptr<SingleThreadIdleTaskRunner> IdleTaskRunner() override;
20 void AddTaskObserver(base::MessageLoop::TaskObserver* task_observer) override;
21 void RemoveTaskObserver(
22 base::MessageLoop::TaskObserver* task_observer) override;
23 bool CanExceedIdleDeadlineIfRequired() const override;
24 bool ShouldYieldForHighPriorityWork() override;
25 void Init() override;
26 void Shutdown() override;
28 private:
29 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
30 scoped_refptr<SingleThreadIdleTaskRunner> idle_task_runner_;
32 DISALLOW_COPY_AND_ASSIGN(NullWorkerScheduler);
35 } // namespace scheduler
37 #endif // COMPONENTS_SCHEDULER_CHILD_NULL_WORKER_SCHEDULER_H_