irccd  3.0.3
Public Types | Public Member Functions | List of all members
irccd::acceptor Class Referenceabstract

Abstract stream acceptor interface. More...

#include <acceptor.hpp>

Inheritance diagram for irccd::acceptor:
irccd::basic_socket_acceptor< boost::asio::ip::tcp::acceptor > irccd::basic_socket_acceptor< boost::asio::local::stream_protocol::acceptor > irccd::basic_socket_acceptor< Acceptor > irccd::tls_acceptor< SocketAcceptor > irccd::ip_acceptor irccd::local_acceptor

Public Types

using handler = std::function< void(std::error_code, std::shared_ptr< stream >)>
 Accept completion handler. More...
 

Public Member Functions

 acceptor ()=default
 
virtual ~acceptor ()=default
 
virtual void accept (handler handler)=0
 

Detailed Description

Abstract stream acceptor interface.

This class is used to wait a new client in an asynchronous manner. Derived classes must implement a non-blocking accept function.

Member Typedef Documentation

◆ handler

using irccd::acceptor::handler = std::function<void (std::error_code, std::shared_ptr<stream>)>

Accept completion handler.

Constructor & Destructor Documentation

◆ acceptor()

irccd::acceptor::acceptor ( )
default

Default constructor.

◆ ~acceptor()

virtual irccd::acceptor::~acceptor ( )
virtualdefault

Virtual destructor defaulted.

Member Function Documentation

◆ accept()

virtual void irccd::acceptor::accept ( handler  handler)
pure virtual

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

Implemented in irccd::tls_acceptor< SocketAcceptor >, irccd::local_acceptor, and irccd::ip_acceptor.


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