irccd  3.0.3
Public Member Functions | List of all members
irccd::ip_acceptor Class Reference

TCP/IP acceptor. More...

#include <acceptor.hpp>

Inheritance diagram for irccd::ip_acceptor:
irccd::basic_socket_acceptor< boost::asio::ip::tcp::acceptor > irccd::acceptor

Public Member Functions

 ip_acceptor (boost::asio::io_context &service, std::string address, std::uint16_t port, bool ipv4=true, bool ipv6=true)
 
void accept (handler handler) override
 
 basic_socket_acceptor (boost::asio::io_context &service)
 
 basic_socket_acceptor (boost::asio::io_context &service, Acceptor acceptor) noexcept
 
template<typename Socket , typename Handler >
void accept (Socket &sc, Handler handler)
 
- Public Member Functions inherited from irccd::basic_socket_acceptor< boost::asio::ip::tcp::acceptor >
 basic_socket_acceptor (boost::asio::io_context &service)
 
 basic_socket_acceptor (boost::asio::io_context &service, boost::asio::ip::tcp::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 boost::asio::ip::tcp::acceptor &
 
auto get_acceptor () noexcept -> boost::asio::ip::tcp::acceptor &
 
void accept (Socket &sc, Handler handler)
 
- Public Member Functions inherited from irccd::acceptor
 acceptor ()=default
 
virtual ~acceptor ()=default
 

Additional Inherited Members

- Public Types inherited from irccd::basic_socket_acceptor< boost::asio::ip::tcp::acceptor >
using socket_type = typename boost::asio::ip::tcp::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...
 
- Protected Attributes inherited from irccd::basic_socket_acceptor< boost::asio::ip::tcp::acceptor >
boost::asio::io_context & service_
 The I/O context. More...
 
boost::asio::ip::tcp::acceptor acceptor_
 The underlying acceptor. More...
 

Detailed Description

TCP/IP acceptor.

Constructor & Destructor Documentation

◆ ip_acceptor()

irccd::ip_acceptor::ip_acceptor ( boost::asio::io_context &  service,
std::string  address,
std::uint16_t  port,
bool  ipv4 = true,
bool  ipv6 = true 
)
inline

Construct a TCP/IP acceptor.

If both ipv4 and ipv6 are set, the acceptor will listen on the two protocols.

To listen to any address, you can use "*" as address argument.

Precondition
at least ipv4 or ipv6 must be true
Parameters
servicethe I/O service
addressthe address to bind or * for any
portthe port number
ipv4enable ipv4
ipv6enable ipv6

Member Function Documentation

◆ accept() [1/2]

void irccd::ip_acceptor::accept ( handler  handler)
inlineoverridevirtual

Start asynchronous accept.

Once the client is accepted, the original acceptor must be kept until it is destroyed.

Precondition
another accept operation must not be running
handler != nullptr
Parameters
handlerthe handler

Implements irccd::acceptor.

◆ accept() [2/2]

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

Inherited functions.

◆ basic_socket_acceptor() [1/2]

Inherited constructors.

◆ basic_socket_acceptor() [2/2]

Inherited constructors.


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