![]() |
D++ (DPP)
C++ Discord API Bot Library
|
Implementation details for internal use only. More...
Namespaces | |
namespace | async |
namespace | coroutine |
namespace | event_router |
Internal cogwheels for dpp::event_router_t. | |
namespace | job |
namespace | promise |
namespace | std_coroutine |
Alias for either std or std::experimental depending on compiler and library. Used by coroutine implementation. | |
namespace | task |
namespace | when_any |
Internal cogwheels for dpp::when_any. | |
Classes | |
struct | wrapped_ssl_ctx |
This class wraps a raw SSL_CTX pointer, managing moving, creation, and RAII destruction. More... | |
Typedefs | |
template<typename T > | |
using | awaitable_result = decltype(co_await_resolve(std::declval< T >()).await_resume()) |
Convenience alias for the result of a certain awaitable's await_resume. More... | |
Functions | |
decltype(auto) | 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 More... | |
wrapped_ssl_ctx * | 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. More... | |
void | release_ssl_context (uint16_t port=0) |
Release an SSL context. More... | |
Variables | |
template<typename T > | |
constexpr bool | has_co_await_member |
Concept to check if a type has a useable operator co_await() member. More... | |
template<typename T > | |
constexpr bool | has_free_co_await |
Concept to check if a type has a useable overload of the free function operator co_await(expr) More... | |
template<typename T > | |
constexpr bool | has_await_members |
Concept to check if a type has useable await_ready() , await_suspend() and await_resume() member functions. More... | |
template<typename T > | |
constexpr bool | awaitable_type |
Concept to check if a type can be used with co_await. More... | |
Implementation details for internal use only.
using dpp::detail::awaitable_result = typedef decltype(co_await_resolve(std::declval<T>()).await_resume()) |
Convenience alias for the result of a certain awaitable's await_resume.
decltype(auto) 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.
wrapped_ssl_ctx * 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 |
void dpp::detail::release_ssl_context | ( | uint16_t | port = 0 | ) |
Release an SSL context.
port | port number to release |
|
inlineconstexpr |
Concept to check if a type can be used with co_await.
|
inlineconstexpr |
Concept to check if a type has useable await_ready()
, await_suspend()
and await_resume()
member functions.
|
inlineconstexpr |
Concept to check if a type has a useable operator co_await()
member.
|
inlineconstexpr |
Concept to check if a type has a useable overload of the free function operator co_await(expr)