#include "libcef_dll/cpptoc/resource_bundle_handler_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
namespace {
int CEF_CALLBACK resource_bundle_handler_get_localized_string(
struct _cef_resource_bundle_handler_t* self,
int string_id,
cef_string_t* string) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
DCHECK(string);
if (!string)
return 0;
CefString stringStr(string);
bool _retval = CefResourceBundleHandlerCppToC::Get(self)->GetLocalizedString(
string_id, stringStr);
return _retval;
}
int CEF_CALLBACK resource_bundle_handler_get_data_resource(
struct _cef_resource_bundle_handler_t* self,
int resource_id,
void** data,
size_t* data_size) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
DCHECK(data);
if (!data)
return 0;
DCHECK(data_size);
if (!data_size)
return 0;
void* dataVal = data ? *data : NULL;
size_t data_sizeVal = data_size ? *data_size : 0;
bool _retval = CefResourceBundleHandlerCppToC::Get(self)->GetDataResource(
resource_id, dataVal, data_sizeVal);
if (data)
*data = dataVal;
if (data_size)
*data_size = data_sizeVal;
return _retval;
}
int CEF_CALLBACK resource_bundle_handler_get_data_resource_for_scale(
struct _cef_resource_bundle_handler_t* self,
int resource_id,
cef_scale_factor_t scale_factor,
void** data,
size_t* data_size) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
DCHECK(data);
if (!data)
return 0;
DCHECK(data_size);
if (!data_size)
return 0;
void* dataVal = data ? *data : NULL;
size_t data_sizeVal = data_size ? *data_size : 0;
bool _retval =
CefResourceBundleHandlerCppToC::Get(self)->GetDataResourceForScale(
resource_id, scale_factor, dataVal, data_sizeVal);
if (data)
*data = dataVal;
if (data_size)
*data_size = data_sizeVal;
return _retval;
}
}
CefResourceBundleHandlerCppToC::CefResourceBundleHandlerCppToC() {
GetStruct()->get_localized_string =
resource_bundle_handler_get_localized_string;
GetStruct()->get_data_resource = resource_bundle_handler_get_data_resource;
GetStruct()->get_data_resource_for_scale =
resource_bundle_handler_get_data_resource_for_scale;
}
CefResourceBundleHandlerCppToC::~CefResourceBundleHandlerCppToC() {
shutdown_checker::AssertNotShutdown();
}
template <>
CefRefPtr<CefResourceBundleHandler> CefCppToCRefCounted<
CefResourceBundleHandlerCppToC,
CefResourceBundleHandler,
cef_resource_bundle_handler_t>::UnwrapDerived(CefWrapperType type,
cef_resource_bundle_handler_t*
s) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType
CefCppToCRefCounted<CefResourceBundleHandlerCppToC,
CefResourceBundleHandler,
cef_resource_bundle_handler_t>::kWrapperType =
WT_RESOURCE_BUNDLE_HANDLER;