#include "libcef_dll/ctocpp/stream_reader_ctocpp.h"
#include "libcef_dll/cpptoc/read_handler_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
NO_SANITIZE("cfi-icall")
CefRefPtr<CefStreamReader> CefStreamReader::CreateForFile(
const CefString& fileName) {
shutdown_checker::AssertNotShutdown();
DCHECK(!fileName.empty());
if (fileName.empty())
return nullptr;
cef_stream_reader_t* _retval =
cef_stream_reader_create_for_file(fileName.GetStruct());
return CefStreamReaderCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall")
CefRefPtr<CefStreamReader> CefStreamReader::CreateForData(void* data,
size_t size) {
shutdown_checker::AssertNotShutdown();
DCHECK(data);
if (!data)
return nullptr;
cef_stream_reader_t* _retval = cef_stream_reader_create_for_data(data, size);
return CefStreamReaderCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall")
CefRefPtr<CefStreamReader> CefStreamReader::CreateForHandler(
CefRefPtr<CefReadHandler> handler) {
shutdown_checker::AssertNotShutdown();
DCHECK(handler.get());
if (!handler.get())
return nullptr;
cef_stream_reader_t* _retval =
cef_stream_reader_create_for_handler(CefReadHandlerCppToC::Wrap(handler));
return CefStreamReaderCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall")
size_t CefStreamReaderCToCpp::Read(void* ptr, size_t size, size_t n) {
shutdown_checker::AssertNotShutdown();
cef_stream_reader_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, read))
return 0;
DCHECK(ptr);
if (!ptr)
return 0;
size_t _retval = _struct->read(_struct, ptr, size, n);
return _retval;
}
NO_SANITIZE("cfi-icall")
int CefStreamReaderCToCpp::Seek(int64 offset, int whence) {
shutdown_checker::AssertNotShutdown();
cef_stream_reader_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, seek))
return 0;
int _retval = _struct->seek(_struct, offset, whence);
return _retval;
}
NO_SANITIZE("cfi-icall") int64 CefStreamReaderCToCpp::Tell() {
shutdown_checker::AssertNotShutdown();
cef_stream_reader_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, tell))
return 0;
int64 _retval = _struct->tell(_struct);
return _retval;
}
NO_SANITIZE("cfi-icall") int CefStreamReaderCToCpp::Eof() {
shutdown_checker::AssertNotShutdown();
cef_stream_reader_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, eof))
return 0;
int _retval = _struct->eof(_struct);
return _retval;
}
NO_SANITIZE("cfi-icall") bool CefStreamReaderCToCpp::MayBlock() {
shutdown_checker::AssertNotShutdown();
cef_stream_reader_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, may_block))
return false;
int _retval = _struct->may_block(_struct);
return _retval ? true : false;
}
CefStreamReaderCToCpp::CefStreamReaderCToCpp() {}
CefStreamReaderCToCpp::~CefStreamReaderCToCpp() {
shutdown_checker::AssertNotShutdown();
}
template <>
cef_stream_reader_t*
CefCToCppRefCounted<CefStreamReaderCToCpp,
CefStreamReader,
cef_stream_reader_t>::UnwrapDerived(CefWrapperType type,
CefStreamReader* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefStreamReaderCToCpp,
CefStreamReader,
cef_stream_reader_t>::kWrapperType =
WT_STREAM_READER;