#include "libcef_dll/ctocpp/server_handler_ctocpp.h"
#include "libcef_dll/cpptoc/callback_cpptoc.h"
#include "libcef_dll/cpptoc/request_cpptoc.h"
#include "libcef_dll/cpptoc/server_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
NO_SANITIZE("cfi-icall")
void CefServerHandlerCToCpp::OnServerCreated(CefRefPtr<CefServer> server) {
shutdown_checker::AssertNotShutdown();
cef_server_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_server_created))
return;
DCHECK(server.get());
if (!server.get())
return;
_struct->on_server_created(_struct, CefServerCppToC::Wrap(server));
}
NO_SANITIZE("cfi-icall")
void CefServerHandlerCToCpp::OnServerDestroyed(CefRefPtr<CefServer> server) {
shutdown_checker::AssertNotShutdown();
cef_server_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_server_destroyed))
return;
DCHECK(server.get());
if (!server.get())
return;
_struct->on_server_destroyed(_struct, CefServerCppToC::Wrap(server));
}
NO_SANITIZE("cfi-icall")
void CefServerHandlerCToCpp::OnClientConnected(CefRefPtr<CefServer> server,
int connection_id) {
shutdown_checker::AssertNotShutdown();
cef_server_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_client_connected))
return;
DCHECK(server.get());
if (!server.get())
return;
_struct->on_client_connected(_struct, CefServerCppToC::Wrap(server),
connection_id);
}
NO_SANITIZE("cfi-icall")
void CefServerHandlerCToCpp::OnClientDisconnected(CefRefPtr<CefServer> server,
int connection_id) {
shutdown_checker::AssertNotShutdown();
cef_server_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_client_disconnected))
return;
DCHECK(server.get());
if (!server.get())
return;
_struct->on_client_disconnected(_struct, CefServerCppToC::Wrap(server),
connection_id);
}
NO_SANITIZE("cfi-icall")
void CefServerHandlerCToCpp::OnHttpRequest(CefRefPtr<CefServer> server,
int connection_id,
const CefString& client_address,
CefRefPtr<CefRequest> request) {
shutdown_checker::AssertNotShutdown();
cef_server_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_http_request))
return;
DCHECK(server.get());
if (!server.get())
return;
DCHECK(!client_address.empty());
if (client_address.empty())
return;
DCHECK(request.get());
if (!request.get())
return;
_struct->on_http_request(_struct, CefServerCppToC::Wrap(server),
connection_id, client_address.GetStruct(),
CefRequestCppToC::Wrap(request));
}
NO_SANITIZE("cfi-icall")
void CefServerHandlerCToCpp::OnWebSocketRequest(
CefRefPtr<CefServer> server,
int connection_id,
const CefString& client_address,
CefRefPtr<CefRequest> request,
CefRefPtr<CefCallback> callback) {
shutdown_checker::AssertNotShutdown();
cef_server_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_web_socket_request))
return;
DCHECK(server.get());
if (!server.get())
return;
DCHECK(!client_address.empty());
if (client_address.empty())
return;
DCHECK(request.get());
if (!request.get())
return;
DCHECK(callback.get());
if (!callback.get())
return;
_struct->on_web_socket_request(_struct, CefServerCppToC::Wrap(server),
connection_id, client_address.GetStruct(),
CefRequestCppToC::Wrap(request),
CefCallbackCppToC::Wrap(callback));
}
NO_SANITIZE("cfi-icall")
void CefServerHandlerCToCpp::OnWebSocketConnected(CefRefPtr<CefServer> server,
int connection_id) {
shutdown_checker::AssertNotShutdown();
cef_server_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_web_socket_connected))
return;
DCHECK(server.get());
if (!server.get())
return;
_struct->on_web_socket_connected(_struct, CefServerCppToC::Wrap(server),
connection_id);
}
NO_SANITIZE("cfi-icall")
void CefServerHandlerCToCpp::OnWebSocketMessage(CefRefPtr<CefServer> server,
int connection_id,
const void* data,
size_t data_size) {
shutdown_checker::AssertNotShutdown();
cef_server_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_web_socket_message))
return;
DCHECK(server.get());
if (!server.get())
return;
DCHECK(data);
if (!data)
return;
_struct->on_web_socket_message(_struct, CefServerCppToC::Wrap(server),
connection_id, data, data_size);
}
CefServerHandlerCToCpp::CefServerHandlerCToCpp() {}
CefServerHandlerCToCpp::~CefServerHandlerCToCpp() {
shutdown_checker::AssertNotShutdown();
}
template <>
cef_server_handler_t*
CefCToCppRefCounted<CefServerHandlerCToCpp,
CefServerHandler,
cef_server_handler_t>::UnwrapDerived(CefWrapperType type,
CefServerHandler* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefServerHandlerCToCpp,
CefServerHandler,
cef_server_handler_t>::kWrapperType =
WT_SERVER_HANDLER;