dpp::detail
dpp::detail::wrapped_ssl_ctx
dpp::detail::async
dpp::detail::coroutine
dpp::detail::event_router
dpp::detail::job
dpp::detail::promise
dpp::detail::std_coroutine
dpp::detail::task
dpp::detail::when_any
typename T
decltype(co_await_resolve(std::declval< T >()).await_resume()) using dpp::detail::awaitable_result = decltype(co_await_resolve(std::declval<T>()).await_resume()) awaitable_result dpp::detail::awaitable_result

Convenience alias for the result of a certain awaitable's await_resume.

typename T
bool bool dpp::detail::awaitable_type awaitable_type dpp::detail::awaitable_type

Concept to check if a type can be used with co_await.

This is actually a C++20 concept but Doxygen doesn't do well with them

typename T
bool bool dpp::detail::has_await_members has_await_members dpp::detail::has_await_members

Concept to check if a type has useable `await_ready()`, `await_suspend()` and `await_resume()` member functions.

This is actually a C++20 concept but Doxygen doesn't do well with them

typename T
bool bool dpp::detail::has_co_await_member has_co_await_member dpp::detail::has_co_await_member

Concept to check if a type has a useable `operator co_await()` member.

This is actually a C++20 concept but Doxygen doesn't do well with them

typename T
bool bool dpp::detail::has_free_co_await has_free_co_await dpp::detail::has_free_co_await

Concept to check if a type has a useable overload of the free function `operator co_await(expr)`.

This is actually a C++20 concept but Doxygen doesn't do well with them

decltype(auto) decltype(auto) dpp::detail::co_await_resolve (auto &&expr) co_await_resolve dpp::detail::co_await_resolve auto && expr

Mimics the compiler's behavior of using co_await. That is, it returns whichever works first, in order : `expr.operator co_await();` > `operator co_await(expr)` > `expr`.

This function is conditionally noexcept, if the returned expression also is.

DPP_EXPORT wrapped_ssl_ctx * DPP_EXPORT wrapped_ssl_ctx * dpp::detail::generate_ssl_context (uint16_t port=0, const std::string &private_key="", const std::string &public_key="") generate_ssl_context dpp::detail::generate_ssl_context uint16_t port 0 const std::string & private_key "" const std::string & public_key ""

Generate a new wrapped SSL context. If an SSL context already exists for the given port number, it will be returned, else a new one will be generated and cached. Contexts with port = 0 will be considered client contexts. There can only be one client context at a time and it covers all SSL client connections. There can be many SSL server contexts, individual ones can be cached per-port, each with their own loaded SSL private and public key PEM certificate.

port

Port number. Pass zero to create or get the client context.

private_key

Private key PEM pathname for server contexts

public_key

Public key PEM pathname for server contexts

wrapped SSL context

DPP_EXPORT void DPP_EXPORT void dpp::detail::release_ssl_context (uint16_t port=0) release_ssl_context dpp::detail::release_ssl_context uint16_t port 0

Release an SSL context.

Only do this if you are certain no SSL connections remain that use this context. As OpenSSL is a C library it is impossible for us to track this on its behalf. Be careful!

port

port number to release

Implementation details for internal use only.

This is only meant to be used by D++ internally. Support will not be given regarding the facilities in this namespace.