MySQL 8.3.0
Source Code Documentation
net::basic_socket< Protocol > Class Template Reference

#include <socket.h>

Inheritance diagram for net::basic_socket< Protocol >:
[legend]

Public Types

using executor_type = io_context::executor_type
 
using protocol_type = Protocol
 
using native_handle_type = impl::socket::native_handle_type
 
using error_type = impl::socket::error_type
 
using endpoint_type = typename protocol_type::endpoint
 
- Public Types inherited from net::socket_base
enum class  shutdown_type { shutdown_receive = SHUT_RD , shutdown_send = SHUT_WR , shutdown_both = SHUT_RDWR }
 
using broadcast = socket_option::boolean< SOL_SOCKET, SO_BROADCAST >
 
using debug = socket_option::boolean< SOL_SOCKET, SO_DEBUG >
 
using do_not_route = socket_option::boolean< SOL_SOCKET, SO_DONTROUTE >
 
using error = socket_option::integer< SOL_SOCKET, SO_ERROR >
 
using keep_alive = socket_option::boolean< SOL_SOCKET, SO_KEEPALIVE >
 
using out_of_band_inline = socket_option::boolean< SOL_SOCKET, SO_OOBINLINE >
 
using receive_buffer_size = socket_option::integer< SOL_SOCKET, SO_RCVBUF >
 
using receive_low_watermark = socket_option::integer< SOL_SOCKET, SO_RCVLOWAT >
 
using reuse_address = socket_option::boolean< SOL_SOCKET, SO_REUSEADDR >
 
using send_buffer_size = socket_option::integer< SOL_SOCKET, SO_SNDBUF >
 
using send_low_watermark = socket_option::integer< SOL_SOCKET, SO_SNDLOWAT >
 
using message_flags = impl::socket::message_flags
 
using wait_type = impl::socket::wait_type
 

Public Member Functions

executor_type get_executor () noexcept
 
stdx::expected< void, error_typeassign (const protocol_type &protocol, const native_handle_type &native_handle)
 
stdx::expected< void, error_typeopen (const protocol_type &protocol=protocol_type(), int flags=0)
 
stdx::expected< void, error_typeconnect (const endpoint_type &endpoint)
 
template<class CompletionToken >
auto async_connect (const endpoint_type &endpoint, CompletionToken &&token)
 
stdx::expected< void, error_typebind (const endpoint_type &endpoint)
 
native_handle_type native_handle () const noexcept
 
template<typename SettableSocketOption >
stdx::expected< void, error_typeset_option (const SettableSocketOption &option)
 
template<typename GettableSocketOption >
stdx::expected< void, error_typeget_option (GettableSocketOption &option) const
 
stdx::expected< void, error_typeclose ()
 
stdx::expected< void, error_typecancel ()
 
stdx::expected< native_handle_type, error_typerelease ()
 
constexpr bool is_open () const
 
stdx::expected< endpoint_type, error_typelocal_endpoint () const
 
stdx::expected< endpoint_type, error_typeremote_endpoint () const
 
stdx::expected< size_t, error_typeavailable () const
 
bool non_blocking () const
 
stdx::expected< void, std::error_code > non_blocking (bool mode)
 
bool native_non_blocking () const
 
stdx::expected< void, std::error_code > native_non_blocking (bool mode)
 
stdx::expected< void, std::error_code > wait (socket_base::wait_type wt)
 
stdx::expected< void, error_typeshutdown (socket_base::shutdown_type st) const
 
template<typename CompletionToken >
auto async_wait (wait_type w, CompletionToken &&token)
 

Protected Member Functions

 basic_socket (io_context &ctx)
 
 basic_socket (io_context &ctx, const protocol_type &proto)
 
 basic_socket (io_context &ctx, const protocol_type &proto, const native_handle_type &native_handle)
 
 basic_socket (const basic_socket &)=delete
 
basic_socketoperator= (const basic_socket &)=delete
 
 basic_socket (basic_socket &&other)=default
 
basic_socketoperator= (basic_socket &&)=default
 
 ~basic_socket ()=default
 

Private Types

using __base = basic_socket_impl< Protocol >
 
- Private Types inherited from net::basic_socket_impl< Protocol >
using __base = basic_socket_impl_base
 
using executor_type = io_context::executor_type
 
using protocol_type = Protocol
 
using endpoint_type = typename protocol_type::endpoint
 
using error_type = std::error_code
 
using socket_type = typename protocol_type::socket
 
using io_control_bytes_avail_recv = IoControl< FIONREAD, int >
 
using io_control_at_mark = IoControl< SIOCATMARK, int >
 
using io_control_bytes_avail_send = IoControl< TIOCOUTQ, int >
 
- Private Types inherited from net::basic_socket_impl_base
using native_handle_type = impl::socket::native_handle_type
 
using executor_type = io_context::executor_type
 

Additional Inherited Members

- Static Public Attributes inherited from net::socket_base
static constexpr message_flags message_peek = impl::socket::message_peek
 
static constexpr message_flags message_out_of_band
 
static constexpr message_flags message_do_not_route
 
static constexpr wait_type wait_read = wait_type::wait_read
 
static constexpr wait_type wait_write = wait_type::wait_write
 
static constexpr wait_type wait_error = wait_type::wait_error
 
static constexpr shutdown_type shutdown_receive
 
static constexpr shutdown_type shutdown_send = shutdown_type::shutdown_send
 
static constexpr shutdown_type shutdown_both = shutdown_type::shutdown_both
 
static const int max_listen_connections {SOMAXCONN}
 
- Private Member Functions inherited from net::basic_socket_impl< Protocol >
constexpr basic_socket_impl (io_context &ctx) noexcept
 
 basic_socket_impl (const basic_socket_impl &)=delete
 
basic_socket_imploperator= (const basic_socket_impl &)=delete
 
 basic_socket_impl (basic_socket_impl &&rhs)=default
 
basic_socket_imploperator= (basic_socket_impl &&rhs) noexcept
 
 ~basic_socket_impl ()
 
stdx::expected< void, error_typeopen (const protocol_type &protocol=protocol_type(), int flags=0)
 
stdx::expected< void, error_typeassign (const protocol_type &protocol, const native_handle_type &native_handle)
 
stdx::expected< void, error_typebind (const endpoint_type &endpoint)
 
stdx::expected< socket_type, error_typeaccept (io_context &io_ctx, struct sockaddr *endpoint_data, socklen_t *endpoint_size, int flags=0)
 
stdx::expected< socket_type, error_typeaccept (io_context &io_ctx, int flags=0)
 
stdx::expected< socket_type, error_typeaccept (io_context &io_ctx, endpoint_type &endpoint, int flags=0)
 
stdx::expected< void, error_typelisten (int backlog=socket_base::max_listen_connections)
 
template<typename SettableSocketOption >
stdx::expected< void, error_typeset_option (const SettableSocketOption &option)
 
template<typename GettableSocketOption >
stdx::expected< void, error_typeget_option (GettableSocketOption &option) const
 
stdx::expected< endpoint_type, error_typelocal_endpoint () const
 
stdx::expected< endpoint_type, error_typeremote_endpoint () const
 
template<class IoControlCommand >
stdx::expected< void, error_typeio_control (IoControlCommand &cmd) const
 
stdx::expected< size_t, error_typeavailable () const
 
stdx::expected< bool, error_typeat_mark () const
 
stdx::expected< void, error_typeshutdown (socket_base::shutdown_type st) const
 
stdx::expected< void, std::error_code > wait (socket_base::wait_type wt)
 
- Private Member Functions inherited from net::basic_socket_impl_base
constexpr basic_socket_impl_base (io_context &ctx)
 
 basic_socket_impl_base (const basic_socket_impl_base &rhs)=delete
 
basic_socket_impl_baseoperator= (const basic_socket_impl_base &rhs)=delete
 
 basic_socket_impl_base (basic_socket_impl_base &&rhs) noexcept
 
basic_socket_impl_baseoperator= (basic_socket_impl_base &&rhs) noexcept
 
 ~basic_socket_impl_base ()=default
 
constexpr native_handle_type native_handle () const noexcept
 
constexpr bool is_open () const noexcept
 
constexpr bool non_blocking () const
 
stdx::expected< void, std::error_code > non_blocking (bool mode)
 
bool native_non_blocking () const
 
stdx::expected< void, std::error_code > native_non_blocking (bool mode)
 
executor_type get_executor () noexcept
 
stdx::expected< void, std::error_code > close ()
 
stdx::expected< void, std::error_code > cancel ()
 
stdx::expected< native_handle_type, std::error_code > release ()
 
- Private Attributes inherited from net::basic_socket_impl_base
native_handle_type native_handle_ {impl::socket::kInvalidSocket}
 
bool non_blocking_ {false}
 
char native_non_blocking_
 
io_contextio_ctx_
 

Member Typedef Documentation

◆ __base

template<typename Protocol >
using net::basic_socket< Protocol >::__base = basic_socket_impl<Protocol>
private

◆ endpoint_type

template<typename Protocol >
using net::basic_socket< Protocol >::endpoint_type = typename protocol_type::endpoint

◆ error_type

◆ executor_type

◆ native_handle_type

◆ protocol_type

template<typename Protocol >
using net::basic_socket< Protocol >::protocol_type = Protocol

Constructor & Destructor Documentation

◆ basic_socket() [1/5]

template<typename Protocol >
net::basic_socket< Protocol >::basic_socket ( io_context ctx)
inlineexplicitprotected

◆ basic_socket() [2/5]

template<typename Protocol >
net::basic_socket< Protocol >::basic_socket ( io_context ctx,
const protocol_type proto 
)
inlineprotected

◆ basic_socket() [3/5]

template<typename Protocol >
net::basic_socket< Protocol >::basic_socket ( io_context ctx,
const protocol_type proto,
const native_handle_type native_handle 
)
inlineprotected

◆ basic_socket() [4/5]

template<typename Protocol >
net::basic_socket< Protocol >::basic_socket ( const basic_socket< Protocol > &  )
protecteddelete

◆ basic_socket() [5/5]

template<typename Protocol >
net::basic_socket< Protocol >::basic_socket ( basic_socket< Protocol > &&  other)
protecteddefault

◆ ~basic_socket()

template<typename Protocol >
net::basic_socket< Protocol >::~basic_socket ( )
protecteddefault

Member Function Documentation

◆ assign()

template<typename Protocol >
stdx::expected< void, error_type > net::basic_socket< Protocol >::assign ( const protocol_type protocol,
const native_handle_type native_handle 
)
inline

◆ async_connect()

template<typename Protocol >
template<class CompletionToken >
auto net::basic_socket< Protocol >::async_connect ( const endpoint_type endpoint,
CompletionToken &&  token 
)
inline

◆ async_wait()

template<typename Protocol >
template<typename CompletionToken >
auto net::basic_socket< Protocol >::async_wait ( wait_type  w,
CompletionToken &&  token 
)
inline

◆ available()

template<typename Protocol >
stdx::expected< size_t, error_type > net::basic_socket< Protocol >::available ( ) const
inline

◆ bind()

template<typename Protocol >
stdx::expected< void, error_type > net::basic_socket< Protocol >::bind ( const endpoint_type endpoint)
inline

◆ cancel()

template<typename Protocol >
stdx::expected< void, error_type > net::basic_socket< Protocol >::cancel ( )
inline

◆ close()

template<typename Protocol >
stdx::expected< void, error_type > net::basic_socket< Protocol >::close ( )
inline

◆ connect()

template<typename Protocol >
stdx::expected< void, error_type > net::basic_socket< Protocol >::connect ( const endpoint_type endpoint)
inline

◆ get_executor()

template<typename Protocol >
executor_type net::basic_socket< Protocol >::get_executor ( )
inlinenoexcept

◆ get_option()

template<typename Protocol >
template<typename GettableSocketOption >
stdx::expected< void, error_type > net::basic_socket< Protocol >::get_option ( GettableSocketOption &  option) const
inline

◆ is_open()

template<typename Protocol >
constexpr bool net::basic_socket< Protocol >::is_open ( ) const
inlineconstexpr

◆ local_endpoint()

template<typename Protocol >
stdx::expected< endpoint_type, error_type > net::basic_socket< Protocol >::local_endpoint ( ) const
inline

◆ native_handle()

template<typename Protocol >
native_handle_type net::basic_socket< Protocol >::native_handle ( ) const
inlinenoexcept

◆ native_non_blocking() [1/2]

template<typename Protocol >
bool net::basic_socket< Protocol >::native_non_blocking ( ) const
inline

◆ native_non_blocking() [2/2]

template<typename Protocol >
stdx::expected< void, std::error_code > net::basic_socket< Protocol >::native_non_blocking ( bool  mode)
inline

◆ non_blocking() [1/2]

template<typename Protocol >
bool net::basic_socket< Protocol >::non_blocking ( ) const
inline

◆ non_blocking() [2/2]

template<typename Protocol >
stdx::expected< void, std::error_code > net::basic_socket< Protocol >::non_blocking ( bool  mode)
inline

◆ open()

template<typename Protocol >
stdx::expected< void, error_type > net::basic_socket< Protocol >::open ( const protocol_type protocol = protocol_type(),
int  flags = 0 
)
inline

◆ operator=() [1/2]

template<typename Protocol >
basic_socket & net::basic_socket< Protocol >::operator= ( basic_socket< Protocol > &&  )
protecteddefault

◆ operator=() [2/2]

template<typename Protocol >
basic_socket & net::basic_socket< Protocol >::operator= ( const basic_socket< Protocol > &  )
protecteddelete

◆ release()

template<typename Protocol >
stdx::expected< native_handle_type, error_type > net::basic_socket< Protocol >::release ( )
inline

◆ remote_endpoint()

template<typename Protocol >
stdx::expected< endpoint_type, error_type > net::basic_socket< Protocol >::remote_endpoint ( ) const
inline

◆ set_option()

template<typename Protocol >
template<typename SettableSocketOption >
stdx::expected< void, error_type > net::basic_socket< Protocol >::set_option ( const SettableSocketOption &  option)
inline

◆ shutdown()

template<typename Protocol >
stdx::expected< void, error_type > net::basic_socket< Protocol >::shutdown ( socket_base::shutdown_type  st) const
inline

◆ wait()

template<typename Protocol >
stdx::expected< void, std::error_code > net::basic_socket< Protocol >::wait ( socket_base::wait_type  wt)
inline

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