task_runner.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright 2019 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.
  4. #ifndef COMPONENTS_OPENSCREEN_PLATFORM_TASK_RUNNER_H_
  5. #define COMPONENTS_OPENSCREEN_PLATFORM_TASK_RUNNER_H_
  6. #include "base/task/single_thread_task_runner.h"
  7. #include "third_party/openscreen/src/platform/api/task_runner.h"
  8. #include "third_party/openscreen/src/platform/api/time.h"
  9. namespace openscreen_platform {
  10. class TaskRunner final : public openscreen::TaskRunner {
  11. public:
  12. explicit TaskRunner(scoped_refptr<base::SequencedTaskRunner> task_runner);
  13. TaskRunner(const TaskRunner&) = delete;
  14. TaskRunner(TaskRunner&&) = delete;
  15. TaskRunner& operator=(const TaskRunner&) = delete;
  16. TaskRunner& operator=(TaskRunner&&) = delete;
  17. scoped_refptr<base::SequencedTaskRunner> task_runner() {
  18. return task_runner_;
  19. }
  20. // TaskRunner overrides
  21. ~TaskRunner() final;
  22. void PostPackagedTask(openscreen::TaskRunner::Task task) final;
  23. void PostPackagedTaskWithDelay(openscreen::TaskRunner::Task task,
  24. openscreen::Clock::duration delay) final;
  25. bool IsRunningOnTaskRunner() final;
  26. private:
  27. scoped_refptr<base::SequencedTaskRunner> task_runner_;
  28. };
  29. } // namespace openscreen_platform
  30. #endif // COMPONENTS_OPENSCREEN_PLATFORM_TASK_RUNNER_H_