#include "libcef_dll/cpptoc/response_cpptoc.h"
#include "libcef_dll/transfer_util.h"
CEF_EXPORT cef_response_t* cef_response_create() {
CefRefPtr<CefResponse> _retval = CefResponse::Create();
return CefResponseCppToC::Wrap(_retval);
}
namespace {
int CEF_CALLBACK response_is_read_only(struct _cef_response_t* self) {
DCHECK(self);
if (!self)
return 0;
bool _retval = CefResponseCppToC::Get(self)->IsReadOnly();
return _retval;
}
cef_errorcode_t CEF_CALLBACK response_get_error(struct _cef_response_t* self) {
DCHECK(self);
if (!self)
return ERR_NONE;
cef_errorcode_t _retval = CefResponseCppToC::Get(self)->GetError();
return _retval;
}
void CEF_CALLBACK response_set_error(struct _cef_response_t* self,
cef_errorcode_t error) {
DCHECK(self);
if (!self)
return;
CefResponseCppToC::Get(self)->SetError(error);
}
int CEF_CALLBACK response_get_status(struct _cef_response_t* self) {
DCHECK(self);
if (!self)
return 0;
int _retval = CefResponseCppToC::Get(self)->GetStatus();
return _retval;
}
void CEF_CALLBACK response_set_status(struct _cef_response_t* self,
int status) {
DCHECK(self);
if (!self)
return;
CefResponseCppToC::Get(self)->SetStatus(status);
}
cef_string_userfree_t CEF_CALLBACK
response_get_status_text(struct _cef_response_t* self) {
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefResponseCppToC::Get(self)->GetStatusText();
return _retval.DetachToUserFree();
}
void CEF_CALLBACK response_set_status_text(struct _cef_response_t* self,
const cef_string_t* statusText) {
DCHECK(self);
if (!self)
return;
CefResponseCppToC::Get(self)->SetStatusText(CefString(statusText));
}
cef_string_userfree_t CEF_CALLBACK
response_get_mime_type(struct _cef_response_t* self) {
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefResponseCppToC::Get(self)->GetMimeType();
return _retval.DetachToUserFree();
}
void CEF_CALLBACK response_set_mime_type(struct _cef_response_t* self,
const cef_string_t* mimeType) {
DCHECK(self);
if (!self)
return;
CefResponseCppToC::Get(self)->SetMimeType(CefString(mimeType));
}
cef_string_userfree_t CEF_CALLBACK
response_get_charset(struct _cef_response_t* self) {
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefResponseCppToC::Get(self)->GetCharset();
return _retval.DetachToUserFree();
}
void CEF_CALLBACK response_set_charset(struct _cef_response_t* self,
const cef_string_t* charset) {
DCHECK(self);
if (!self)
return;
CefResponseCppToC::Get(self)->SetCharset(CefString(charset));
}
cef_string_userfree_t CEF_CALLBACK
response_get_header_by_name(struct _cef_response_t* self,
const cef_string_t* name) {
DCHECK(self);
if (!self)
return NULL;
DCHECK(name);
if (!name)
return NULL;
CefString _retval =
CefResponseCppToC::Get(self)->GetHeaderByName(CefString(name));
return _retval.DetachToUserFree();
}
void CEF_CALLBACK response_set_header_by_name(struct _cef_response_t* self,
const cef_string_t* name,
const cef_string_t* value,
int overwrite) {
DCHECK(self);
if (!self)
return;
DCHECK(name);
if (!name)
return;
CefResponseCppToC::Get(self)->SetHeaderByName(
CefString(name), CefString(value), overwrite ? true : false);
}
void CEF_CALLBACK response_get_header_map(struct _cef_response_t* self,
cef_string_multimap_t headerMap) {
DCHECK(self);
if (!self)
return;
DCHECK(headerMap);
if (!headerMap)
return;
std::multimap<CefString, CefString> headerMapMultimap;
transfer_string_multimap_contents(headerMap, headerMapMultimap);
CefResponseCppToC::Get(self)->GetHeaderMap(headerMapMultimap);
cef_string_multimap_clear(headerMap);
transfer_string_multimap_contents(headerMapMultimap, headerMap);
}
void CEF_CALLBACK response_set_header_map(struct _cef_response_t* self,
cef_string_multimap_t headerMap) {
DCHECK(self);
if (!self)
return;
DCHECK(headerMap);
if (!headerMap)
return;
std::multimap<CefString, CefString> headerMapMultimap;
transfer_string_multimap_contents(headerMap, headerMapMultimap);
CefResponseCppToC::Get(self)->SetHeaderMap(headerMapMultimap);
}
cef_string_userfree_t CEF_CALLBACK
response_get_url(struct _cef_response_t* self) {
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefResponseCppToC::Get(self)->GetURL();
return _retval.DetachToUserFree();
}
void CEF_CALLBACK response_set_url(struct _cef_response_t* self,
const cef_string_t* url) {
DCHECK(self);
if (!self)
return;
CefResponseCppToC::Get(self)->SetURL(CefString(url));
}
}
CefResponseCppToC::CefResponseCppToC() {
GetStruct()->is_read_only = response_is_read_only;
GetStruct()->get_error = response_get_error;
GetStruct()->set_error = response_set_error;
GetStruct()->get_status = response_get_status;
GetStruct()->set_status = response_set_status;
GetStruct()->get_status_text = response_get_status_text;
GetStruct()->set_status_text = response_set_status_text;
GetStruct()->get_mime_type = response_get_mime_type;
GetStruct()->set_mime_type = response_set_mime_type;
GetStruct()->get_charset = response_get_charset;
GetStruct()->set_charset = response_set_charset;
GetStruct()->get_header_by_name = response_get_header_by_name;
GetStruct()->set_header_by_name = response_set_header_by_name;
GetStruct()->get_header_map = response_get_header_map;
GetStruct()->set_header_map = response_set_header_map;
GetStruct()->get_url = response_get_url;
GetStruct()->set_url = response_set_url;
}
CefResponseCppToC::~CefResponseCppToC() {}
template <>
CefRefPtr<CefResponse>
CefCppToCRefCounted<CefResponseCppToC, CefResponse, cef_response_t>::
UnwrapDerived(CefWrapperType type, cef_response_t* s) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCppToCRefCounted<CefResponseCppToC,
CefResponse,
cef_response_t>::kWrapperType = WT_RESPONSE;