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 >
 
using base_type_t
 
using base_type_t
 

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
 
 sendfile_operation_runner_t (const sendfile_operation_runner_t &)=delete
 
 sendfile_operation_runner_t (sendfile_operation_runner_t &&)=delete
 
 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
 
sendfile_operation_runner_toperator= (const sendfile_operation_runner_t &)=delete
 
sendfile_operation_runner_toperator= (sendfile_operation_runner_t &&)=delete
 
virtual void start () override
 
virtual void start () override
 
void init_next_write () noexcept
 
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
 
 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.
 
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
 
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 [1/3]

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

Definition at line 27 of file sendfile_operation_default.ipp.

◆ base_type_t [2/3]

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

Definition at line 31 of file sendfile_operation_posix.ipp.

◆ base_type_t [3/3]

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/6]

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/6]

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

◆ sendfile_operation_runner_t() [3/6]

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() [4/6]

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

◆ sendfile_operation_runner_t() [5/6]

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() [6/6]

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() [1/3]

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 67 of file sendfile_operation_default.ipp.

◆ init_next_write() [2/3]

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 67 of file sendfile_operation_posix.ipp.

◆ init_next_write() [3/3]

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() [1/2]

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.

◆ make_async_write_handler() [2/2]

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 134 of file sendfile_operation_posix.ipp.

◆ operator=() [1/6]

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/6]

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=() [3/6]

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=() [4/6]

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

◆ operator=() [5/6]

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

◆ operator=() [6/6]

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() [1/3]

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

◆ start() [2/3]

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

◆ start() [3/3]

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: