ark namespace
grand namespace for all non-specific symbols of arkio
Contents
- Reference
Namespaces
Classes
- class async_context
- context for running async functions
-
template<typename CharT>class base_buffer
- base type for mutable_buffer and const_buffer
-
template<typename RetType>struct callback
- a movable noncopyable unique_function invoked to signal completion
-
template<>struct callback<void>
- a movable noncopyable unique_function invoked to signal completion
- class context_exit_guard
- RAII-style helper for async_context.exit()
- class event_fd
- wraps fildes created by eventfd(2) as an io object
- class mem_fd
- wraps fildes created by memfd_create(2) as an io object
- class nonseekable_fd
- An io object, denotes a non lseek()-able fd as defined in kernel.
- class normal_file
- wraps fildes that represents an normal file as an io object
- class pipe_fd
- wraps fildes created by pipe2(2) as an io object
-
template<class T>class result
- result class from outcome library
- class seekable_fd
- An io object, denotes a lseek()-able fd as defined in kernel.
-
template<class T>class task
- task<> as defined in p1056, without exception support
- class with_async_context
- able to bound to an async_context
Typedefs
-
using mutable_buffer = base_
buffer<char> - a view to a span of memory as mutable buffer
-
using const_buffer = base_
buffer<const char> - a view to a span of memory as const buffer
-
template<typename T>using is_mutable_buffer_sequence = decltype(detail::is_mutable_buffer_sequence_impl<T>(0))
- std::true_type if T is a MutableBufferSequence
-
template<typename T>using is_const_buffer_sequence = decltype(detail::is_const_buffer_sequence_impl<T>(0))
- std::true_type if T is a ConstBufferSequence
Functions
-
auto operator+(const mutable_
buffer& b, size_t n) -> mutable_ buffer noexcept - returns an ascended buffer by n bytes
-
auto operator+(size_t n,
const mutable_
buffer& b) -> mutable_ buffer noexcept - returns an ascended buffer by n bytes
-
auto operator+(const const_
buffer& b, size_t n) -> const_ buffer noexcept - returns an ascended buffer by n bytes
-
auto operator+(size_t n,
const const_
buffer& b) -> const_ buffer noexcept - returns an ascended buffer by n bytes
-
auto buffer(void* p,
size_t n) -> mutable_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
auto buffer(const void* p,
size_t n) -> const_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
auto buffer(const mutable_
buffer& b) -> mutable_ buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
auto buffer(const mutable_
buffer& b, size_t n) -> mutable_ buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
auto buffer(const const_
buffer& b) -> const_ buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
auto buffer(const const_
buffer& b, size_t n) -> const_ buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, size_t N>auto buffer(T(&data)[N]) -> mutable_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, size_t N>auto buffer(const T(&data)[N]) -> const_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, size_t N>auto buffer(array<T, N>& data) -> mutable_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, size_t N>auto buffer(array<const T, N>& data) -> const_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, class Allocator>auto buffer(vector<T, Allocator>& data) -> mutable_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, class Allocator>auto buffer(const vector<T, Allocator>& data) -> const_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class CharT, class Traits, class Allocator>auto buffer(basic_string<CharT, Traits, Allocator>& data) -> mutable_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class CharT, class Traits, class Allocator>auto buffer(const basic_string<CharT, Traits, Allocator>& data) -> const_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class CharT, class Traits>auto buffer(basic_string_view<CharT, Traits> data) -> const_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, size_t N>auto buffer(T(&data)[N], size_t n) -> mutable_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, size_t N>auto buffer(const T(&data)[N], size_t n) -> const_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, size_t N>auto buffer(array<T, N>& data, size_t n) -> mutable_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, size_t N>auto buffer(array<const T, N>& data, size_t n) -> const_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, class Allocator>auto buffer(vector<T, Allocator>& data, size_t n) -> mutable_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class T, class Allocator>auto buffer(const vector<T, Allocator>& data, size_t n) -> const_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class CharT, class Traits, class Allocator>auto buffer(basic_string<CharT, Traits, Allocator>& data, size_t n) -> mutable_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class CharT, class Traits, class Allocator>auto buffer(const basic_string<CharT, Traits, Allocator>& data, size_t n) -> const_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
template<class CharT, class Traits>auto buffer(basic_string_view<CharT, Traits> data, size_t n) -> const_
buffer noexcept - creates a ark::
mutable_buffer or ark:: const_buffer -
auto buffer_sequence_begin(const mutable_
buffer& b) -> const mutable_ buffer* noexcept - returns an iterator to the first buffer of ConstBufferSequence
-
auto buffer_sequence_begin(const const_
buffer& b) -> const const_ buffer* noexcept - returns an iterator to the first buffer of ConstBufferSequence
-
template<class C>auto buffer_sequence_begin(C& c) -> auto noexcept
- returns an iterator to the first buffer of ConstBufferSequence
-
template<class C>auto buffer_sequence_begin(const C& c) -> auto noexcept
- returns an iterator to the first buffer of ConstBufferSequence
-
auto buffer_sequence_end(const mutable_
buffer& b) -> const mutable_ buffer* noexcept - returns an iterator past the last buffer of BufferSequence
-
auto buffer_sequence_end(const const_
buffer& b) -> const const_ buffer* noexcept - returns an iterator past the last buffer of BufferSequence
-
template<class C>auto buffer_sequence_end(C& c) -> auto noexcept
- returns an iterator past the last buffer of BufferSequence
-
template<class C>auto buffer_sequence_end(const C& c) -> auto noexcept
- returns an iterator past the last buffer of BufferSequence
-
template<class ConstBufferSequence>auto buffer_size(const ConstBufferSequence& buffers) -> size_t noexcept
- returns the sum size of a ConstBufferSequence
-
template<class MutableBufferSequence, class ConstBufferSequence>auto buffer_copy(const MutableBufferSequence& dest, const ConstBufferSequence& source, size_t max_size) -> size_t
- copy the underlying bytes from one buffer to another
-
template<typename T>auto co_async(task<T> tsk) -> future<T> noexcept
- start the task as another coroutine task series.
- auto transfer_all() -> auto constexpr noexcept
- returns a CompletionCondition which denotes transfering until all bytes in provided buffer is done.
- auto transfer_at_least(size_t n) -> auto noexcept
- returns a CompletionCondition which denotes transfering at least n bytes, or until all bytes in provided buffer is done.
- auto transfer_exactly(size_t n) -> auto noexcept
- returns a CompletionCondition which denotes transfering exactly n bytes, or until all bytes in provided buffer is done.
Variables
-
template<typename T>bool is_mutable_buffer_sequence_v constexpr
- helper for is_mutable_buffer_sequence::value
-
template<typename T>bool is_const_buffer_sequence_v constexpr
- helper for is_const_buffer_sequence::value