cef/libcef/common/thread_impl.h

45 lines
1.3 KiB
C
Raw Normal View History

2016-11-12 00:22:53 +01:00
// 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_
2016-11-12 00:22:53 +01:00
#pragma once
#include "base/threading/thread.h"
#include "cef/include/cef_thread.h"
2016-11-12 00:22:53 +01:00
class CefThreadImpl : public CefThread {
public:
CefThreadImpl();
CefThreadImpl(const CefThreadImpl&) = delete;
CefThreadImpl& operator=(const CefThreadImpl&) = delete;
~CefThreadImpl() override;
2016-11-12 00:22:53 +01:00
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_ = kInvalidPlatformThreadId;
2016-11-12 00:22:53 +01:00
CefRefPtr<CefTaskRunner> thread_task_runner_;
// TaskRunner for the owner thread.
scoped_refptr<base::SequencedTaskRunner> owner_task_runner_;
IMPLEMENT_REFCOUNTING(CefThreadImpl);
};
#endif // CEF_LIBCEF_COMMON_THREAD_IMPL_H_