RESTinio
Loading...
Searching...
No Matches
restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket > Class Referencefinal

A specialization for plain tcp-socket using linux sendfile() (http://man7.org/linux/man-pages/man2/sendfile.2.html). More...

Inheritance diagram for restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >:
restinio::impl::sendfile_operation_runner_base_t< asio_ns::ip::tcp::socket > restinio::impl::sendfile_operation_runner_base_t< asio_ns::ip::tcp::socket > restinio::impl::sendfile_operation_runner_base_t< asio_ns::ip::tcp::socket > restinio::impl::sendfile_operation_base_t restinio::impl::sendfile_operation_base_t restinio::impl::sendfile_operation_base_t

Public Types

using base_type_t = sendfile_operation_runner_base_t< asio_ns::ip::tcp::socket >

Public Member Functions

 sendfile_operation_runner_t (const sendfile_operation_runner_t &)=delete
 sendfile_operation_runner_t (sendfile_operation_runner_t &&)=delete
sendfile_operation_runner_toperator= (const sendfile_operation_runner_t &)=delete
sendfile_operation_runner_toperator= (sendfile_operation_runner_t &&)=delete
virtual void start () override
void init_next_write () noexcept
Public Member Functions inherited from restinio::impl::sendfile_operation_runner_base_t< asio_ns::ip::tcp::socket >
 sendfile_operation_runner_base_t ()=delete
 sendfile_operation_runner_base_t (const sendfile_t &sf, default_asio_executor executor, asio_ns::ip::tcp::socket &socket, after_sendfile_cb_t after_sendfile_cb)
auto expires_after () const noexcept
Public Member Functions inherited from restinio::impl::sendfile_operation_base_t
virtual ~sendfile_operation_base_t ()=default

Private Member Functions

bool try_turn_non_blocking_mode () noexcept
auto call_native_sendfile () noexcept
bool try_initiate_waiting_for_write_readiness () noexcept
auto make_async_write_handler () noexcept
 Helper method for making a lambda for async_write completion handler.

Private Attributes

std::unique_ptr< char[] > m_buffer

Additional Inherited Members

Protected Attributes inherited from restinio::impl::sendfile_operation_runner_base_t< asio_ns::ip::tcp::socket >
file_descriptor_t m_file_descriptor
file_offset_t m_next_write_offset
file_size_t m_remained_size
file_size_t m_transfered_size
const file_size_t m_chunk_size
const std::chrono::steady_clock::time_point m_expires_after
default_asio_executor m_executor
asio_ns::ip::tcp::socket & m_socket
after_sendfile_cb_t m_after_sendfile_cb

Detailed Description

A specialization for plain tcp-socket using linux sendfile() (http://man7.org/linux/man-pages/man2/sendfile.2.html).

Definition at line 168 of file sendfile_operation_posix.ipp.

Member Typedef Documentation

◆ base_type_t

using restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::base_type_t = sendfile_operation_runner_base_t< asio_ns::ip::tcp::socket >

Definition at line 324 of file sendfile_operation_posix.ipp.

Constructor & Destructor Documentation

◆ sendfile_operation_runner_t() [1/2]

restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::sendfile_operation_runner_t ( const sendfile_operation_runner_t< asio_ns::ip::tcp::socket > & )
delete

◆ sendfile_operation_runner_t() [2/2]

restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::sendfile_operation_runner_t ( sendfile_operation_runner_t< asio_ns::ip::tcp::socket > && )
delete

Member Function Documentation

◆ call_native_sendfile()

auto restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::call_native_sendfile ( )
inlinenodiscardprivatenoexcept

Definition at line 275 of file sendfile_operation_posix.ipp.

◆ init_next_write()

void restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::init_next_write ( )
inlinenoexcept
Note
This method is noexcept since v.0.6.0.

Definition at line 345 of file sendfile_operation_posix.ipp.

◆ make_async_write_handler()

auto restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::make_async_write_handler ( )
inlineprivatenoexcept

Helper method for making a lambda for async_write completion handler.

Definition at line 114 of file sendfile_operation_default.ipp.

◆ operator=() [1/2]

sendfile_operation_runner_t & restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::operator= ( const sendfile_operation_runner_t< asio_ns::ip::tcp::socket > & )
delete

◆ operator=() [2/2]

sendfile_operation_runner_t & restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::operator= ( sendfile_operation_runner_t< asio_ns::ip::tcp::socket > && )
delete

◆ start()

virtual void restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::start ( )
inlineoverridevirtual

◆ try_initiate_waiting_for_write_readiness()

bool restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::try_initiate_waiting_for_write_readiness ( )
inlinenodiscardprivatenoexcept

Definition at line 287 of file sendfile_operation_posix.ipp.

◆ try_turn_non_blocking_mode()

bool restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::try_turn_non_blocking_mode ( )
inlinenodiscardprivatenoexcept

Definition at line 175 of file sendfile_operation_posix.ipp.

Member Data Documentation

◆ m_buffer

std::unique_ptr< char[] > restinio::impl::sendfile_operation_runner_t< asio_ns::ip::tcp::socket >::m_buffer
private

Definition at line 110 of file sendfile_operation_default.ipp.


The documentation for this class was generated from the following file: