Chromium Code Reviews| Index: base/task_scheduler/scheduler_single_thread_task_runner_manager.h |
| diff --git a/base/task_scheduler/scheduler_single_thread_task_runner_manager.h b/base/task_scheduler/scheduler_single_thread_task_runner_manager.h |
| index 6fbad4bb1d0e7ef5a64a843a65c4118c48899b63..24d1a9a010b35661ee8235666652b16c5d0312a1 100644 |
| --- a/base/task_scheduler/scheduler_single_thread_task_runner_manager.h |
| +++ b/base/task_scheduler/scheduler_single_thread_task_runner_manager.h |
| @@ -5,6 +5,7 @@ |
| #ifndef BASE_TASK_SCHEDULER_SCHEDULER_SINGLE_THREAD_TASK_RUNNER_MANAGER_H_ |
| #define BASE_TASK_SCHEDULER_SCHEDULER_SINGLE_THREAD_TASK_RUNNER_MANAGER_H_ |
| +#include <memory> |
| #include <vector> |
| #include "base/atomicops.h" |
| @@ -15,6 +16,7 @@ |
| #include "base/task_scheduler/scheduler_lock.h" |
| #include "base/task_scheduler/scheduler_worker_pool_params.h" |
| #include "base/task_scheduler/task_scheduler.h" |
| +#include "build/build_config.h" |
| namespace base { |
| @@ -27,6 +29,12 @@ class DelayedTaskManager; |
| class SchedulerWorker; |
| class TaskTracker; |
| +namespace { |
| + |
| +class SchedulerWorkerDelegate; |
|
fdoray
2017/03/22 20:41:53
Instead of exposing a class from the anonymous nam
robliao
2017/03/22 20:48:30
I was thinking about that, but then that meant inc
|
| + |
| +} // namespace |
| + |
| class BASE_EXPORT SchedulerSingleThreadTaskRunnerManager final { |
| public: |
| SchedulerSingleThreadTaskRunnerManager( |
| @@ -40,11 +48,26 @@ class BASE_EXPORT SchedulerSingleThreadTaskRunnerManager final { |
| scoped_refptr<SingleThreadTaskRunner> CreateSingleThreadTaskRunnerWithTraits( |
| const TaskTraits& traits); |
| +#if defined(OS_WIN) |
| + scoped_refptr<SingleThreadTaskRunner> CreateCOMSTATaskRunnerWithTraits( |
| + const TaskTraits& traits); |
| +#endif // defined(OS_WIN) |
| + |
| void JoinForTesting(); |
| private: |
| class SchedulerSingleThreadTaskRunner; |
| + template <typename DelegateType> |
| + scoped_refptr<SingleThreadTaskRunner> |
| + CreateSingleThreadTaskRunnerWithDelegate(const TaskTraits& traits); |
| + |
| + template <typename DelegateType> |
| + std::unique_ptr<SchedulerWorkerDelegate> CreateSchedulerWorkerDelegate( |
| + const SchedulerWorkerPoolParams& params, |
| + int id); |
| + |
| + template <typename DelegateType> |
| SchedulerWorker* CreateAndRegisterSchedulerWorker( |
| const SchedulerWorkerPoolParams& params); |