irccd  3.0.3
Public Member Functions | List of all members
irccd::tls_acceptor< SocketAcceptor > Class Template Reference

TLS/SSL acceptors. More...

#include <acceptor.hpp>

Inheritance diagram for irccd::tls_acceptor< SocketAcceptor >:
irccd::acceptor

Public Member Functions

template<typename... Args>
 tls_acceptor (boost::asio::ssl::context context, Args &&... args)
 
void accept (handler handler) override
 
- Public Member Functions inherited from irccd::acceptor
 acceptor ()=default
 
virtual ~acceptor ()=default
 

Additional Inherited Members

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

Detailed Description

template<typename SocketAcceptor>
class irccd::tls_acceptor< SocketAcceptor >

TLS/SSL acceptors.

Template Parameters
SocketAcceptorthe socket connector (e.g. ip_acceptor)

Wrap a SocketAcceptor object.

The SocketAcceptor object must have the following types:

using socket_type = implementation-defined

The following function:

template <typename Handler>
void accept(socket_type& sc, Handler handler);
auto get_context() -> boost::asio::io_context&

The Handler callback must have the signature void f(const std::error_code&).

Constructor & Destructor Documentation

◆ tls_acceptor()

template<typename SocketAcceptor >
template<typename... Args>
irccd::tls_acceptor< SocketAcceptor >::tls_acceptor ( boost::asio::ssl::context  context,
Args &&...  args 
)
inline

Construct a secure layer transport server.

Parameters
contextthe SSL context
argsthe arguments to SocketAcceptor constructor

Member Function Documentation

◆ accept()

template<typename SocketAcceptor >
void irccd::tls_acceptor< SocketAcceptor >::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.


The documentation for this class was generated from the following file:
irccd::acceptor::handler
std::function< void(std::error_code, std::shared_ptr< stream >)> handler
Accept completion handler.
Definition: acceptor.hpp:57
irccd::tls_acceptor::accept
void accept(handler handler) override
Definition: acceptor.hpp:477