#include "libcef_dll/cpptoc/download_item_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
namespace {
int CEF_CALLBACK download_item_is_valid(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
bool _retval = CefDownloadItemCppToC::Get(self)->IsValid();
return _retval;
}
int CEF_CALLBACK
download_item_is_in_progress(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
bool _retval = CefDownloadItemCppToC::Get(self)->IsInProgress();
return _retval;
}
int CEF_CALLBACK download_item_is_complete(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
bool _retval = CefDownloadItemCppToC::Get(self)->IsComplete();
return _retval;
}
int CEF_CALLBACK download_item_is_canceled(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
bool _retval = CefDownloadItemCppToC::Get(self)->IsCanceled();
return _retval;
}
int64 CEF_CALLBACK
download_item_get_current_speed(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
int64 _retval = CefDownloadItemCppToC::Get(self)->GetCurrentSpeed();
return _retval;
}
int CEF_CALLBACK
download_item_get_percent_complete(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
int _retval = CefDownloadItemCppToC::Get(self)->GetPercentComplete();
return _retval;
}
int64 CEF_CALLBACK
download_item_get_total_bytes(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
int64 _retval = CefDownloadItemCppToC::Get(self)->GetTotalBytes();
return _retval;
}
int64 CEF_CALLBACK
download_item_get_received_bytes(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
int64 _retval = CefDownloadItemCppToC::Get(self)->GetReceivedBytes();
return _retval;
}
cef_time_t CEF_CALLBACK
download_item_get_start_time(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return CefTime();
cef_time_t _retval = CefDownloadItemCppToC::Get(self)->GetStartTime();
return _retval;
}
cef_time_t CEF_CALLBACK
download_item_get_end_time(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return CefTime();
cef_time_t _retval = CefDownloadItemCppToC::Get(self)->GetEndTime();
return _retval;
}
cef_string_userfree_t CEF_CALLBACK
download_item_get_full_path(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefDownloadItemCppToC::Get(self)->GetFullPath();
return _retval.DetachToUserFree();
}
uint32 CEF_CALLBACK download_item_get_id(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
uint32 _retval = CefDownloadItemCppToC::Get(self)->GetId();
return _retval;
}
cef_string_userfree_t CEF_CALLBACK
download_item_get_url(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefDownloadItemCppToC::Get(self)->GetURL();
return _retval.DetachToUserFree();
}
cef_string_userfree_t CEF_CALLBACK
download_item_get_original_url(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefDownloadItemCppToC::Get(self)->GetOriginalUrl();
return _retval.DetachToUserFree();
}
cef_string_userfree_t CEF_CALLBACK
download_item_get_suggested_file_name(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefDownloadItemCppToC::Get(self)->GetSuggestedFileName();
return _retval.DetachToUserFree();
}
cef_string_userfree_t CEF_CALLBACK
download_item_get_content_disposition(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefDownloadItemCppToC::Get(self)->GetContentDisposition();
return _retval.DetachToUserFree();
}
cef_string_userfree_t CEF_CALLBACK
download_item_get_mime_type(struct _cef_download_item_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefDownloadItemCppToC::Get(self)->GetMimeType();
return _retval.DetachToUserFree();
}
}
CefDownloadItemCppToC::CefDownloadItemCppToC() {
GetStruct()->is_valid = download_item_is_valid;
GetStruct()->is_in_progress = download_item_is_in_progress;
GetStruct()->is_complete = download_item_is_complete;
GetStruct()->is_canceled = download_item_is_canceled;
GetStruct()->get_current_speed = download_item_get_current_speed;
GetStruct()->get_percent_complete = download_item_get_percent_complete;
GetStruct()->get_total_bytes = download_item_get_total_bytes;
GetStruct()->get_received_bytes = download_item_get_received_bytes;
GetStruct()->get_start_time = download_item_get_start_time;
GetStruct()->get_end_time = download_item_get_end_time;
GetStruct()->get_full_path = download_item_get_full_path;
GetStruct()->get_id = download_item_get_id;
GetStruct()->get_url = download_item_get_url;
GetStruct()->get_original_url = download_item_get_original_url;
GetStruct()->get_suggested_file_name = download_item_get_suggested_file_name;
GetStruct()->get_content_disposition = download_item_get_content_disposition;
GetStruct()->get_mime_type = download_item_get_mime_type;
}
CefDownloadItemCppToC::~CefDownloadItemCppToC() {
shutdown_checker::AssertNotShutdown();
}
template <>
CefRefPtr<CefDownloadItem> CefCppToCRefCounted<
CefDownloadItemCppToC,
CefDownloadItem,
cef_download_item_t>::UnwrapDerived(CefWrapperType type,
cef_download_item_t* s) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCppToCRefCounted<CefDownloadItemCppToC,
CefDownloadItem,
cef_download_item_t>::kWrapperType =
WT_DOWNLOAD_ITEM;