#include "libcef_dll/ctocpp/thread_ctocpp.h"
#include "libcef_dll/ctocpp/task_runner_ctocpp.h"
#include "libcef_dll/shutdown_checker.h"
NO_SANITIZE("cfi-icall")
CefRefPtr<CefThread> CefThread::CreateThread(
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) {
shutdown_checker::AssertNotShutdown();
cef_thread_t* _retval =
cef_thread_create(display_name.GetStruct(), priority, message_loop_type,
stoppable, com_init_mode);
return CefThreadCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall")
CefRefPtr<CefTaskRunner> CefThreadCToCpp::GetTaskRunner() {
shutdown_checker::AssertNotShutdown();
cef_thread_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_task_runner))
return nullptr;
cef_task_runner_t* _retval = _struct->get_task_runner(_struct);
return CefTaskRunnerCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall")
cef_platform_thread_id_t CefThreadCToCpp::GetPlatformThreadId() {
shutdown_checker::AssertNotShutdown();
cef_thread_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_platform_thread_id))
return kInvalidPlatformThreadId;
cef_platform_thread_id_t _retval = _struct->get_platform_thread_id(_struct);
return _retval;
}
NO_SANITIZE("cfi-icall") void CefThreadCToCpp::Stop() {
shutdown_checker::AssertNotShutdown();
cef_thread_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, stop))
return;
_struct->stop(_struct);
}
NO_SANITIZE("cfi-icall") bool CefThreadCToCpp::IsRunning() {
shutdown_checker::AssertNotShutdown();
cef_thread_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, is_running))
return false;
int _retval = _struct->is_running(_struct);
return _retval ? true : false;
}
CefThreadCToCpp::CefThreadCToCpp() {}
CefThreadCToCpp::~CefThreadCToCpp() {
shutdown_checker::AssertNotShutdown();
}
template <>
cef_thread_t*
CefCToCppRefCounted<CefThreadCToCpp, CefThread, cef_thread_t>::UnwrapDerived(
CefWrapperType type,
CefThread* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefThreadCToCpp, CefThread, cef_thread_t>::
kWrapperType = WT_THREAD;