| // Copyright 2016 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_THREAD_IMPL_H_ |
| #define CEF_LIBCEF_COMMON_THREAD_IMPL_H_ |
| #pragma once |
| |
| #include "include/cef_thread.h" |
| |
| #include "base/threading/thread.h" |
| |
| class CefThreadImpl : public CefThread { |
| public: |
| CefThreadImpl(); |
| ~CefThreadImpl(); |
| |
| bool Create(const CefString& display_name, |
| cef_thread_priority_t priority, |
| cef_message_loop_type_t message_loop_type, |
| bool stoppable, |
| cef_com_init_mode_t com_init_mode); |
| |
| // CefThread methods: |
| CefRefPtr<CefTaskRunner> GetTaskRunner() override; |
| cef_platform_thread_id_t GetPlatformThreadId() override; |
| void Stop() override; |
| bool IsRunning() override; |
| |
| private: |
| std::unique_ptr<base::Thread> thread_; |
| cef_platform_thread_id_t thread_id_; |
| CefRefPtr<CefTaskRunner> thread_task_runner_; |
| |
| // TaskRunner for the owner thread. |
| scoped_refptr<base::SequencedTaskRunner> owner_task_runner_; |
| |
| IMPLEMENT_REFCOUNTING(CefThreadImpl); |
| DISALLOW_COPY_AND_ASSIGN(CefThreadImpl); |
| }; |
| |
| #endif // CEF_LIBCEF_COMMON_THREAD_IMPL_H_ |