Go to the documentation of this file.
27 :
public std::enable_shared_from_this< sendfile_operation_base_t >
40 std::function< void (
const asio_ns::error_code & ,
file_size_t ) >;
47 template <
typename Socket >
86 template<
typename Error_Type>
90 return asio_ns::error_code{
static_cast<int>(e), asio_ns::error::get_system_category() };
101 #if defined( _MSC_VER ) || defined( __MINGW32__ )
103 #elif (defined( __clang__ ) || defined( __GNUC__ )) && !defined(__WIN32__)
106 #if defined (RESTINIO_ENABLE_SENDFILE_DEFAULT_IMPL)
109 #error "Sendfile not supported, to enable default implementation define RESTINIO_ENABLE_SENDFILE_DEFAULT_IMPL macro"
Base class for storing sendfile operation context.
std::uint64_t file_size_t
file_size_t m_remained_size
std::FILE * file_descriptor_t
file_descriptor_t m_file_descriptor
std::int64_t file_offset_t
virtual ~sendfile_operation_base_t()=default
sendfile_operation_runner_base_t()=delete
A base runner of sendfile operation (keeps all the data).
sendfile_operation_runner_base_t(const sendfile_t &sf, default_asio_executor executor, Socket &socket, after_sendfile_cb_t after_sendfile_cb)
asio_ns::executor default_asio_executor
after_sendfile_cb_t m_after_sendfile_cb
auto expires_after() const noexcept
file_offset_t m_next_write_offset
file_size_t m_transfered_size
std::shared_ptr< sendfile_operation_base_t > sendfile_operation_shared_ptr_t
default_asio_executor m_executor
const std::chrono::steady_clock::time_point m_expires_after
std::function< void(const asio_ns::error_code &, file_size_t) > after_sendfile_cb_t
Callback type for invocation when sendfile operation completes.
auto make_error_code(const Error_Type &e) noexcept
const file_size_t m_chunk_size
Send file write operation description.
file_descriptor_t file_descriptor() const noexcept
Get the file descriptor of a given sendfile operation.