irccd  3.0.3
Public Types | Public Member Functions | Protected Attributes | List of all members
irccd::basic_socket_acceptor< Acceptor > Class Template Reference

Convenient acceptor owner. More...

#include <acceptor.hpp>

Inheritance diagram for irccd::basic_socket_acceptor< Acceptor >:
irccd::acceptor

Public Types

using socket_type = typename Acceptor::protocol_type::socket
 
- Public Types inherited from irccd::acceptor
using handler = std::function< void(std::error_code, std::shared_ptr< stream >)>
 Accept completion handler. More...
 

Public Member Functions

 basic_socket_acceptor (boost::asio::io_context &service)
 
 basic_socket_acceptor (boost::asio::io_context &service, Acceptor acceptor) noexcept
 
auto get_service () const noexcept -> const boost::asio::io_context &
 
auto get_service () noexcept -> boost::asio::io_context &
 
auto get_acceptor () const noexcept -> const Acceptor &
 
auto get_acceptor () noexcept -> Acceptor &
 
template<typename Socket , typename Handler >
void accept (Socket &sc, Handler handler)
 
- Public Member Functions inherited from irccd::acceptor
 acceptor ()=default
 
virtual ~acceptor ()=default
 
virtual void accept (handler handler)=0
 

Protected Attributes

boost::asio::io_context & service_
 The I/O context. More...
 
Acceptor acceptor_
 The underlying acceptor. More...
 

Detailed Description

template<typename Acceptor>
class irccd::basic_socket_acceptor< Acceptor >

Convenient acceptor owner.

Member Typedef Documentation

◆ socket_type

template<typename Acceptor >
using irccd::basic_socket_acceptor< Acceptor >::socket_type = typename Acceptor::protocol_type::socket

Underlying socket type.

Constructor & Destructor Documentation

◆ basic_socket_acceptor() [1/2]

template<typename Acceptor >
irccd::basic_socket_acceptor< Acceptor >::basic_socket_acceptor ( boost::asio::io_context &  service)
inline

Construct a basic_socket_acceptor.

Parameters
servicethe I/O context

◆ basic_socket_acceptor() [2/2]

template<typename Acceptor >
irccd::basic_socket_acceptor< Acceptor >::basic_socket_acceptor ( boost::asio::io_context &  service,
Acceptor  acceptor 
)
inlinenoexcept

Construct a basic_socket_acceptor with a already bound native acceptor.

Parameters
servicethe I/O context
acceptorthe acceptor

Member Function Documentation

◆ accept()

template<typename Acceptor >
template<typename Socket , typename Handler >
void irccd::basic_socket_acceptor< Acceptor >::accept ( Socket &  sc,
Handler  handler 
)
inline

Accept a new client.

Precondition
another accept call must not be running
Parameters
scthe socket type
handlerthe handler
Note
implemented for SocketAcceptor concept

◆ get_acceptor() [1/2]

template<typename Acceptor >
auto irccd::basic_socket_acceptor< Acceptor >::get_acceptor
inlinenoexcept

Get the underlying acceptor.

Returns
the acceptor

◆ get_acceptor() [2/2]

template<typename Acceptor >
auto irccd::basic_socket_acceptor< Acceptor >::get_acceptor ( ) -> Acceptor &
noexcept

Overloaded function.

Returns
the acceptor

◆ get_service() [1/2]

template<typename Acceptor >
auto irccd::basic_socket_acceptor< Acceptor >::get_service
inlinenoexcept

Get the I/O context.

Returns
the context

◆ get_service() [2/2]

template<typename Acceptor >
auto irccd::basic_socket_acceptor< Acceptor >::get_service ( ) -> boost::asio::io_context &
noexcept

Overloaded function.

Returns
the context

Member Data Documentation

◆ acceptor_

template<typename Acceptor >
Acceptor irccd::basic_socket_acceptor< Acceptor >::acceptor_
protected

The underlying acceptor.

◆ service_

template<typename Acceptor >
boost::asio::io_context& irccd::basic_socket_acceptor< Acceptor >::service_
protected

The I/O context.


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