MySQL 9.1.0
Source Code Documentation
|
#include <algorithm>
#include <condition_variable>
#include <functional>
#include <list>
#include <memory>
#include <mutex>
#include <queue>
#include <stdexcept>
#include <thread>
#include <type_traits>
#include <typeindex>
#include <unordered_map>
#include <utility>
#include "my_compiler.h"
#include "mysql/harness/net_ts/impl/callstack.h"
#include "mysql/harness/net_ts/netfwd.h"
Go to the source code of this file.
Namespaces | |
namespace | net |
namespace | net::impl |
Typedefs | |
template<class T , class ProtoAllocator = std::allocator<void>> | |
using | net::associated_allocator_t = typename associated_allocator< T, ProtoAllocator >::type |
template<class T , class Executor = system_executor> | |
using | net::associated_executor_t = typename associated_executor< T, Executor >::type |
Enumerations | |
enum class | net::fork_event { net::prepare , net::parent , net::child } |
Functions | |
template<class T > | |
associated_allocator_t< T > | net::get_associated_allocator (const T &t) noexcept |
template<class T , class ProtoAllocator > | |
associated_allocator_t< T > | net::get_associated_allocator (const T &t, const ProtoAllocator &a) noexcept |
template<class Service > | |
Service::key_type & | net::use_service (execution_context &ctx) |
template<class Service , class... Args> | |
Service & | net::make_service (execution_context &ctx, Args &&...args) |
template<class Service > | |
bool | net::has_service (const execution_context &ctx) noexcept |
template<class T , typename U = std::remove_const_t<T>> | |
auto | net::impl::executor_requirements (U *__x=nullptr, const U *__const_x=nullptr, void(*f)()=nullptr, const std::allocator< int > &a={}) -> std::enable_if_t< std::conjunction< std::is_copy_constructible< T >, std::is_same< decltype(*__const_x== *__const_x), bool >, std::is_same< decltype(*__const_x != *__const_x), bool >, std::is_void< decltype(__x->on_work_started())>, std::is_void< decltype(__x->on_work_finished())>, std::is_void< decltype(__x->dispatch(std::move(f), a))>, std::is_void< decltype(__x->post(std::move(f), a))>, std::is_void< decltype(__x->defer(std::move(f), a))> >::value, std::void_t< decltype(__x->context()), void()> > |
template<class T > | |
associated_executor_t< T > | net::get_associated_executor (const T &t) noexcept |
template<class T , class Executor > | |
associated_executor_t< T, Executor > | net::get_associated_executor (const T &t, const Executor &ex) noexcept |
template<class T , class ExecutorContext > | |
associated_executor_t< T, typename ExecutorContext::executor_type > | net::get_associated_executor (const T &t, const ExecutorContext &ctx) noexcept |
template<class Executor > requires (is_executor_v<Executor>) | |
executor_work_guard< Executor > | net::make_work_guard (const Executor &ex) |
template<class ExecutionContext > requires (std::is_convertible_v<ExecutionContext &, execution_context &>) | |
executor_work_guard< typename ExecutionContext::executor_type > | net::make_work_guard (ExecutionContext &ctx) |
template<class T > requires (!is_executor_v<T> && !std::is_convertible_v<T &, execution_context &>) | |
executor_work_guard< associated_executor_t< T > > | net::make_work_guard (const T &t) |
template<class T , class U > | |
auto | net::make_work_guard (const T &t, U &&u) -> decltype(make_work_guard(get_associated_executor(t, std::forward< U >(u)))) |
bool | net::operator== (const system_executor &, const system_executor &) |
bool | net::operator!= (const system_executor &, const system_executor &) |
template<class CompletionHandler > | |
Dispatcher< CompletionHandler > | net::impl::make_dispatcher (CompletionHandler &handler) |
template<class CompletionToken > | |
auto | net::dispatch (CompletionToken &&token) |
template<class Executor , class CompletionToken > requires (is_executor_v<Executor>) | |
async_result< std::decay_t< CompletionToken >, void()>::return_type | net::dispatch (const Executor &ex, CompletionToken &&token) |
queue a function call for later execution. More... | |
template<class ExecutionContext , class CompletionToken > requires (std::is_convertible_v<ExecutionContext &, execution_context &>) | |
async_result< std::decay_t< CompletionToken >, void()>::return_type | net::dispatch (ExecutionContext &ctx, CompletionToken &&token) |
queue a function call for later execution. More... | |
template<class CompletionToken > | |
auto | net::post (CompletionToken &&token) |
queue a function call for later execution. More... | |
template<class Executor , class CompletionToken > requires (is_executor_v<Executor>) | |
async_result< std::decay_t< CompletionToken >, void()>::return_type | net::post (const Executor &ex, CompletionToken &&token) |
queue a function call for later execution. More... | |
template<class ExecutionContext , class CompletionToken > requires (std::is_convertible_v<ExecutionContext &, execution_context &>) | |
async_result< std::decay_t< CompletionToken >, void()>::return_type | net::post (ExecutionContext &ctx, CompletionToken &&token) |
queue a function call for later execution. More... | |
template<class CompletionToken > | |
auto | net::defer (CompletionToken &&token) |
template<class Executor , class CompletionToken > requires (is_executor_v<Executor>) | |
async_result< std::decay_t< CompletionToken >, void()>::return_type | net::defer (const Executor &ex, CompletionToken &&token) |
queue a function call for later execution. More... | |
template<class ExecutionContext , class CompletionToken > requires (std::is_convertible_v<ExecutionContext &, execution_context &>) | |
async_result< std::decay_t< CompletionToken >, void()>::return_type | net::defer (ExecutionContext &ctx, CompletionToken &&token) |
queue a function call for later execution. More... | |
template<class Executor > | |
bool | net::operator== (const strand< Executor > &a, const strand< Executor > &b) |
template<class Executor > | |
bool | net::operator!= (const strand< Executor > &a, const strand< Executor > &b) |
Variables | |
template<class T > | |
constexpr bool | net::is_executor_v = is_executor<T>::value |
constexpr executor_arg_t | net::executor_arg = executor_arg_t() |
template<class T , class Executor > | |
constexpr bool | net::uses_executor_v = uses_executor<T, Executor>::value |