13 #include <restinio/sendfile.hpp> 47 template <
typename Socket >
55 const sendfile_t & sf,
56 default_asio_executor executor,
58 after_sendfile_cb_t after_sendfile_cb )
86 template<
typename Error_Type>
90 return asio_ns::error_code{
static_cast<
int>(e), asio_ns::error::get_system_category() };
101 #if defined(RESTINIO_OS_WINDOWS) 102 #include "sendfile_operation_win.ipp" 103 #elif defined(RESTINIO_OS_UNIX) || defined(RESTINIO_OS_APPLE) 104 #include "sendfile_operation_posix.ipp" 106 #if defined (RESTINIO_ENABLE_SENDFILE_DEFAULT_IMPL) 107 #include "sendfile_operation_default.ipp" 109 #error "Sendfile not supported, to enable default implementation define RESTINIO_ENABLE_SENDFILE_DEFAULT_IMPL macro" file_offset_t m_next_write_offset
file_size_t m_remained_size
auto make_error_code(const Error_Type &e) noexcept
sendfile_operation_runner_base_t()=delete
std::enable_if< std::is_same< Parameter_Container, query_string_params_t >::value||std::is_same< Parameter_Container, router::route_params_t >::value, std::optional< Value_Type > >::type opt_value(const Parameter_Container ¶ms, string_view_t key)
Gets the value of a parameter specified by key wrapped in std::optional<Value_Type> if parameter exis...
auto expires_after() const noexcept
after_sendfile_cb_t m_after_sendfile_cb
virtual ~sendfile_operation_base_t()=default
const std::chrono::steady_clock::time_point m_expires_after
Base class for storing sendfile operation context.
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)
default_asio_executor m_executor
file_descriptor_t m_file_descriptor
file_size_t m_transfered_size
const file_size_t m_chunk_size