27 :
public std::enable_shared_from_this< sendfile_operation_base_t >
40 std::function< void (
const asio_ns::error_code & ,
file_size_t ) >;
47template <
typename Socket >
86template<
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.
virtual ~sendfile_operation_base_t()=default
A base runner of sendfile operation (keeps all the data).
after_sendfile_cb_t m_after_sendfile_cb
sendfile_operation_runner_base_t()=delete
auto expires_after() const noexcept
const file_size_t m_chunk_size
file_size_t m_remained_size
file_offset_t m_next_write_offset
file_descriptor_t m_file_descriptor
default_asio_executor m_executor
sendfile_operation_runner_base_t(const sendfile_t &sf, default_asio_executor executor, Socket &socket, after_sendfile_cb_t after_sendfile_cb)
const std::chrono::steady_clock::time_point m_expires_after
file_size_t m_transfered_size
Send file write operation description.
std::function< void(const asio_ns::error_code &, file_size_t) > after_sendfile_cb_t
Callback type for invocation when sendfile operation completes.
std::shared_ptr< sendfile_operation_base_t > sendfile_operation_shared_ptr_t
auto make_error_code(const Error_Type &e) noexcept
std::uint64_t file_size_t
asio_ns::executor default_asio_executor
std::int64_t file_offset_t
std::FILE * file_descriptor_t