| // Copyright (c) 2013 The Chromium Embedded Framework 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 CEF_LIBCEF_COMMON_TASK_RUNNER_IMPL_H_ |
| #define CEF_LIBCEF_COMMON_TASK_RUNNER_IMPL_H_ |
| #pragma once |
| |
| #include "include/cef_task.h" |
| |
| #include "base/single_thread_task_runner.h" |
| |
| class CefTaskRunnerImpl : public CefTaskRunner { |
| public: |
| explicit CefTaskRunnerImpl( |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner); |
| |
| // Returns the task runner associated with |threadId|. |
| static scoped_refptr<base::SingleThreadTaskRunner> GetTaskRunner( |
| CefThreadId threadId); |
| // Returns the current task runner. |
| static scoped_refptr<base::SingleThreadTaskRunner> GetCurrentTaskRunner(); |
| |
| // CefTaskRunner methods: |
| bool IsSame(CefRefPtr<CefTaskRunner> that) override; |
| bool BelongsToCurrentThread() override; |
| bool BelongsToThread(CefThreadId threadId) override; |
| bool PostTask(CefRefPtr<CefTask> task) override; |
| bool PostDelayedTask(CefRefPtr<CefTask> task, int64 delay_ms) override; |
| |
| private: |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| |
| IMPLEMENT_REFCOUNTING(CefTaskRunnerImpl); |
| DISALLOW_COPY_AND_ASSIGN(CefTaskRunnerImpl); |
| }; |
| |
| #endif // CEF_LIBCEF_COMMON_TASK_RUNNER_IMPL_H_ |