MySQL 8.0.39
Source Code Documentation
|
Namespaces | |
namespace | epoll |
namespace | file |
namespace | poll |
namespace | resolver |
namespace | socket |
Classes | |
class | Callstack |
callstack of a thread. More... | |
class | Dispatcher |
function object for net::dispatch(), net::post(), net::defer(). More... | |
class | dynamic_buffer_base |
struct | is_buffer_sequence |
struct | is_buffer_sequence< T, BufferType, std::void_t< buffer_sequence_requirements< T, BufferType > > > |
struct | is_const_buffer_sequence |
struct | is_dynamic_buffer |
struct | is_dynamic_buffer< T, decltype(dynamic_buffer_requirements< T >())> |
struct | is_executor |
struct | is_executor< T, decltype(executor_requirements< T >())> |
struct | is_mutable_buffer_sequence |
struct | uses_executor |
struct | uses_executor< T, Executor, std::void_t< typename T::executor_type > > |
Typedefs | |
template<class T , class BufferType , class Begin = decltype(net::buffer_sequence_begin( std::declval<typename std::add_lvalue_reference<T>::type>())), class End = decltype(net::buffer_sequence_end( std::declval<typename std::add_lvalue_reference<T>::type>()))> | |
using | buffer_sequence_requirements = std::integral_constant< bool, std::conjunction< std::is_same< Begin, End >, std::is_convertible< typename std::iterator_traits< Begin >::value_type, BufferType > >::value > |
Functions | |
template<class T , class U = std::remove_const_t<T>> | |
auto | dynamic_buffer_requirements (U *__x=nullptr, const U *__const_x=nullptr, size_t __n=0) -> std::enable_if_t< std::conjunction< std::is_copy_constructible< U >, is_const_buffer_sequence< typename T::const_buffers_type >, is_mutable_buffer_sequence< typename T::mutable_buffers_type >, std::is_same< decltype(__const_x->size()), size_t >, std::is_same< decltype(__const_x->max_size()), size_t >, std::is_same< decltype(__const_x->capacity()), size_t >, std::is_same< decltype(__const_x->data(__n, __n)), typename T::const_buffers_type >, std::is_same< decltype(__x->data(__n, __n)), typename T::mutable_buffers_type >, std::is_void< decltype(__x->grow(__n))>, std::is_void< decltype(__x->shrink(__n))>, std::is_void< decltype(__x->consume(__n))> >::value > |
template<typename T > | |
mutable_buffer | to_mutable_buffer (T *data, size_t n) |
template<typename T > | |
const_buffer | to_const_buffer (const T *data, size_t n) |
template<class T , typename U = std::remove_const_t<T>> | |
auto | 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 CompletionHandler > | |
Dispatcher< CompletionHandler > | make_dispatcher (CompletionHandler &handler) |
using net::impl::buffer_sequence_requirements = typedef std::integral_constant< bool, std::conjunction< std::is_same<Begin, End>, std::is_convertible<typename std::iterator_traits<Begin>::value_type, BufferType> >::value> |
auto net::impl::dynamic_buffer_requirements | ( | U * | __x = nullptr , |
const U * | __const_x = nullptr , |
||
size_t | __n = 0 |
||
) | -> std::enable_if_t< std::conjunction< std::is_copy_constructible< U >, is_const_buffer_sequence< typename T::const_buffers_type >, is_mutable_buffer_sequence< typename T::mutable_buffers_type >, std::is_same< decltype(__const_x->size()), size_t >, std::is_same< decltype(__const_x->max_size()), size_t >, std::is_same< decltype(__const_x->capacity()), size_t >, std::is_same< decltype(__const_x->data(__n, __n)), typename T::const_buffers_type >, std::is_same< decltype(__x->data(__n, __n)), typename T::mutable_buffers_type >, std::is_void< decltype(__x->grow(__n))>, std::is_void< decltype(__x->shrink(__n))>, std::is_void< decltype(__x->consume(__n))> >::value > |
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()> > |
Dispatcher< CompletionHandler > net::impl::make_dispatcher | ( | CompletionHandler & | handler | ) |
|
inline |
|
inline |