|  | MySQL 9.5.0
    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::bool_constant< std::conjunction_v< std::is_same< Begin, End >, std::is_convertible< typename std::iterator_traits< Begin >::value_type, BufferType > > > | 
| 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::bool_constant<std::conjunction_v< std::is_same<Begin, End>, std::is_convertible<typename std::iterator_traits<Begin>::value_type, BufferType> >> | 
| 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 |