|
|
template<FdLike Fd1, FdLike Fd2> |
| auto | async_splice (Fd1 fd_in, int64_t off_in, Fd2 fd_out, int64_t off_out, unsigned int nbytes, unsigned int splice_flags) |
| | See io_uring_prep_splice.
|
|
template<FdLike Fd1, FdLike Fd2> |
| auto | async_tee (Fd1 fd_in, Fd2 fd_out, unsigned int nbytes, unsigned int splice_flags) |
| | See io_uring_prep_tee.
|
|
template<FdLike Fd> |
| auto | async_readv (Fd fd, const struct iovec *iovecs, unsigned nr_vecs, __u64 offset, int flags) |
| | See io_uring_prep_readv2.
|
|
template<FdLike Fd> |
| auto | async_readv (Fd fd, detail::FixedBuffer< const iovec * > iovecs, unsigned nr_vecs, __u64 offset, int flags) |
| | See io_uring_prep_readv2.
|
|
template<FdLike Fd> |
| auto | async_writev (Fd fd, const struct iovec *iovecs, unsigned int nr_vecs, __u64 offset, int flags) |
| | See io_uring_prep_writev2.
|
|
template<FdLike Fd> |
| auto | async_writev (Fd fd, detail::FixedBuffer< const iovec * > iovecs, unsigned int nr_vecs, __u64 offset, int flags) |
| | See io_uring_prep_writev2.
|
|
template<FdLike Fd> |
| auto | async_recvmsg (Fd fd, struct msghdr *msg, unsigned flags) |
| | See io_uring_prep_recvmsg.
|
|
template<FdLike Fd, typename MultiShotFunc, NotBundledBufferRing Buffer> |
| auto | async_recvmsg_multishot (Fd fd, struct msghdr *msg, unsigned flags, Buffer &buf, MultiShotFunc &&func) |
| | See io_uring_prep_recvmsg_multishot.
|
|
template<FdLike Fd> |
| auto | async_sendmsg (Fd fd, const struct msghdr *msg, unsigned flags) |
| | See io_uring_prep_sendmsg.
|
|
template<FdLike Fd, typename FreeFunc> |
| auto | async_sendmsg_zc (Fd fd, const struct msghdr *msg, unsigned flags, FreeFunc &&func) |
| | See io_uring_prep_sendmsg_zc.
|
|
template<FdLike Fd, typename FreeFunc> |
| auto | async_sendmsg_zc (Fd fd, detail::FixedBuffer< const msghdr * > msg, unsigned flags, FreeFunc &&func) |
| | See io_uring_prep_sendmsg_zc_fixed.
|
|
template<FdLike Fd> |
| auto | async_fsync (Fd fd, unsigned fsync_flags) |
| | See io_uring_prep_fsync.
|
|
auto | async_nop () |
| | See io_uring_prep_nop.
|
|
auto | async_timeout (struct __kernel_timespec *ts, unsigned count, unsigned flags) |
| | See io_uring_prep_timeout.
|
|
template<typename MultiShotFunc> |
| auto | async_timeout_multishot (struct __kernel_timespec *ts, unsigned count, unsigned flags, MultiShotFunc &&func) |
| | See io_uring_prep_timeout.
|
|
template<FdLike Fd> |
| auto | async_accept (Fd fd, struct sockaddr *addr, socklen_t *addrlen, int flags) |
| | See io_uring_prep_accept.
|
|
template<FdLike Fd> |
| auto | async_accept_direct (Fd fd, struct sockaddr *addr, socklen_t *addrlen, int flags, unsigned int file_index) |
| | See io_uring_prep_accept_direct.
|
|
template<FdLike Fd, typename MultiShotFunc> |
| auto | async_multishot_accept (Fd fd, struct sockaddr *addr, socklen_t *addrlen, int flags, MultiShotFunc &&func) |
| | See io_uring_prep_multishot_accept.
|
|
template<FdLike Fd, typename MultiShotFunc> |
| auto | async_multishot_accept_direct (Fd fd, struct sockaddr *addr, socklen_t *addrlen, int flags, MultiShotFunc &&func) |
| | See io_uring_prep_multishot_accept_direct.
|
|
template<FdLike Fd> |
| auto | async_cancel_fd (Fd fd, unsigned int flags) |
| | See io_uring_prep_cancel_fd.
|
|
auto | async_link_timeout (struct __kernel_timespec *ts, unsigned flags) |
| | See io_uring_prep_link_timeout.
|
|
template<FdLike Fd> |
| auto | async_connect (Fd fd, const struct sockaddr *addr, socklen_t addrlen) |
| | See io_uring_prep_connect.
|
|
auto | async_files_update (int *fds, unsigned nr_fds, int offset) |
| | See io_uring_prep_files_update.
|
|
template<FdLike Fd> |
| auto | async_fallocate (Fd fd, int mode, __u64 offset, __u64 len) |
| | See io_uring_prep_fallocate.
|
|
auto | async_openat (int dfd, const char *path, int flags, mode_t mode) |
| | See io_uring_prep_openat.
|
|
auto | async_openat_direct (int dfd, const char *path, int flags, mode_t mode, unsigned file_index) |
| | See io_uring_prep_openat_direct.
|
|
auto | async_open (const char *path, int flags, mode_t mode) |
| | See io_uring_prep_openat.
|
|
auto | async_open_direct (const char *path, int flags, mode_t mode, unsigned file_index) |
| | See io_uring_prep_openat_direct.
|
|
auto | async_close (int fd) |
| | See io_uring_prep_close.
|
|
auto | async_close (detail::FixedFd fd) |
| | See io_uring_prep_close_direct.
|
|
template<FdLike Fd, BufferLike Buffer> |
| auto | async_read (Fd fd, Buffer &&buf, __u64 offset) |
| | See io_uring_prep_read.
|
|
template<FdLike Fd, BufferLike Buffer> |
| auto | async_read (Fd fd, detail::FixedBuffer< Buffer > buf, __u64 offset) |
| | See io_uring_prep_read_fixed.
|
|
template<FdLike Fd, NotBundledBufferRing Buffer> |
| auto | async_read (Fd fd, Buffer &buf, __u64 offset) |
| | See io_uring_prep_read.
|
|
template<FdLike Fd, NotBundledBufferRing Buffer, typename MultiShotFunc> |
| auto | async_read_multishot (Fd fd, Buffer &buf, __u64 offset, MultiShotFunc &&func) |
| | See io_uring_prep_read_multishot.
|
|
template<FdLike Fd, BufferLike Buffer> |
| auto | async_write (Fd fd, Buffer &&buf, __u64 offset) |
| | See io_uring_prep_write.
|
|
template<FdLike Fd, BufferLike Buffer> |
| auto | async_write (Fd fd, detail::FixedBuffer< Buffer > buf, __u64 offset) |
| | See io_uring_prep_write_fixed.
|
|
auto | async_statx (int dfd, const char *path, int flags, unsigned mask, struct statx *statxbuf) |
| | See io_uring_prep_statx.
|
|
template<FdLike Fd> |
| auto | async_fadvise (Fd fd, __u64 offset, off_t len, int advice) |
| | See io_uring_prep_fadvise.
|
|
template<FdLike Fd> |
| auto | async_fadvise64 (Fd fd, __u64 offset, off_t len, int advice) |
| | See io_uring_prep_fadvise64.
|
|
auto | async_madvise (void *addr, __u32 length, int advice) |
| | See io_uring_prep_madvise.
|
|
auto | async_madvise64 (void *addr, off_t length, int advice) |
| | See io_uring_prep_madvise64.
|
|
template<FdLike Fd, BufferLike Buffer> |
| auto | async_send (Fd sockfd, Buffer &&buf, int flags) |
| | See io_uring_prep_send.
|
|
template<FdLike Fd> |
| auto | async_send (Fd sockfd, ProvidedBufferQueue &buf, int flags) |
| | See io_uring_prep_send.
|
|
template<FdLike Fd> |
| auto | async_send (Fd sockfd, BundledProvidedBufferQueue &buf, int flags) |
| | See io_uring_prep_send.
|
|
template<FdLike Fd, BufferLike Buffer> |
| auto | async_sendto (Fd sockfd, Buffer &&buf, int flags, const struct sockaddr *addr, socklen_t addrlen) |
| | See io_uring_prep_send and io_uring_prep_send_set_addr.
|
|
template<FdLike Fd> |
| auto | async_sendto (Fd sockfd, ProvidedBufferQueue &buf, int flags, const struct sockaddr *addr, socklen_t addrlen) |
| | See io_uring_prep_send and io_uring_prep_send_set_addr.
|
|
template<FdLike Fd> |
| auto | async_sendto (Fd sockfd, BundledProvidedBufferQueue &buf, int flags, const struct sockaddr *addr, socklen_t addrlen) |
| | See io_uring_prep_send and io_uring_prep_send_set_addr.
|
|
template<FdLike Fd, typename Buffer, typename FreeFunc> |
| auto | async_send_zc (Fd sockfd, Buffer &&buf, int flags, unsigned zc_flags, FreeFunc &&func) |
| | See io_uring_prep_send_zc.
|
|
template<FdLike Fd, BufferLike Buffer, typename FreeFunc> |
| auto | async_send_zc (Fd sockfd, detail::FixedBuffer< Buffer > buf, int flags, unsigned zc_flags, FreeFunc &&func) |
| | See io_uring_prep_send_zc_fixed.
|
|
template<FdLike Fd, BufferLike Buffer, typename FreeFunc> |
| auto | async_sendto_zc (Fd sockfd, Buffer &&buf, int flags, const struct sockaddr *addr, socklen_t addrlen, unsigned zc_flags, FreeFunc &&func) |
| | See io_uring_prep_send_zc and io_uring_prep_send_set_addr.
|
|
template<FdLike Fd, BufferLike Buffer, typename FreeFunc> |
| auto | async_sendto_zc (Fd sockfd, detail::FixedBuffer< Buffer > buf, int flags, const struct sockaddr *addr, socklen_t addrlen, unsigned zc_flags, FreeFunc &&func) |
| | See io_uring_prep_send_zc_fixed and io_uring_prep_send_set_addr.
|
|
template<FdLike Fd, BufferLike Buffer> |
| auto | async_recv (Fd sockfd, Buffer &&buf, int flags) |
| | See io_uring_prep_recv.
|
|
template<FdLike Fd, NotBundledBufferRing Buffer> |
| auto | async_recv (Fd sockfd, Buffer &buf, int flags) |
| | See io_uring_prep_recv.
|
|
template<FdLike Fd, BundledBufferRing Buffer> |
| auto | async_recv (Fd sockfd, Buffer &buf, int flags) |
| | See io_uring_prep_recv.
|
|
template<FdLike Fd, NotBundledBufferRing Buffer, typename MultiShotFunc> |
| auto | async_recv_multishot (Fd sockfd, Buffer &buf, int flags, MultiShotFunc &&func) |
| | See io_uring_prep_recv_multishot.
|
|
template<FdLike Fd, BundledBufferRing Buffer, typename MultiShotFunc> |
| auto | async_recv_multishot (Fd sockfd, Buffer &buf, int flags, MultiShotFunc &&func) |
| | See io_uring_prep_recv_multishot.
|
|
auto | async_openat2 (int dfd, const char *path, struct open_how *how) |
| | See io_uring_prep_openat2.
|
|
auto | async_openat2_direct (int dfd, const char *path, struct open_how *how, unsigned file_index) |
| | See io_uring_prep_openat2_direct.
|
|
template<FdLike Fd> |
| auto | async_shutdown (Fd fd, int how) |
| | See io_uring_prep_shutdown.
|
|
auto | async_unlinkat (int dfd, const char *path, int flags) |
| | See io_uring_prep_unlinkat.
|
|
auto | async_unlink (const char *path, int flags) |
| | See io_uring_prep_unlinkat.
|
|
auto | async_renameat (int olddfd, const char *oldpath, int newdfd, const char *newpath, unsigned int flags) |
| | See io_uring_prep_renameat.
|
|
auto | async_rename (const char *oldpath, const char *newpath) |
| | See io_uring_prep_renameat.
|
|
template<FdLike Fd> |
| auto | async_sync_file_range (Fd fd, unsigned len, __u64 offset, int flags) |
| | See io_uring_prep_sync_file_range.
|
|
auto | async_mkdirat (int dfd, const char *path, mode_t mode) |
| | See io_uring_prep_mkdirat.
|
|
auto | async_mkdir (const char *path, mode_t mode) |
| | See io_uring_prep_mkdirat.
|
|
auto | async_symlinkat (const char *target, int newdirfd, const char *linkpath) |
| | See io_uring_prep_symlinkat.
|
|
auto | async_symlink (const char *target, const char *linkpath) |
| | See io_uring_prep_symlinkat.
|
|
auto | async_linkat (int olddfd, const char *oldpath, int newdfd, const char *newpath, int flags) |
| | See io_uring_prep_linkat.
|
|
auto | async_link (const char *oldpath, const char *newpath, int flags) |
| | See io_uring_prep_linkat.
|
|
auto | async_getxattr (const char *name, char *value, const char *path, unsigned int len) |
| | See io_uring_prep_getxattr.
|
|
auto | async_setxattr (const char *name, const char *value, const char *path, int flags, unsigned int len) |
| | See io_uring_prep_setxattr.
|
|
auto | async_fgetxattr (int fd, const char *name, char *value, unsigned int len) |
| | See io_uring_prep_fgetxattr.
|
|
auto | async_fsetxattr (int fd, const char *name, const char *value, int flags, unsigned int len) |
| | See io_uring_prep_fsetxattr.
|
|
auto | async_socket (int domain, int type, int protocol, unsigned int flags) |
| | See io_uring_prep_socket.
|
|
auto | async_socket_direct (int domain, int type, int protocol, unsigned file_index, unsigned int flags) |
| | See io_uring_prep_socket_direct.
|
|
template<FdLike Fd> |
| auto | async_cmd_sock (int cmd_op, Fd fd, int level, int optname, void *optval, int optlen) |
| | See io_uring_prep_cmd_sock.
|
|
auto | async_waitid (idtype_t idtype, id_t id, siginfo_t *infop, int options, unsigned int flags) |
| | See io_uring_prep_waitid.
|
|
auto | async_futex_wake (uint32_t *futex, uint64_t val, uint64_t mask, uint32_t futex_flags, unsigned int flags) |
| | See io_uring_prep_futex_wake.
|
|
auto | async_futex_wait (uint32_t *futex, uint64_t val, uint64_t mask, uint32_t futex_flags, unsigned int flags) |
| | See io_uring_prep_futex_wait.
|
|
auto | async_futex_waitv (struct futex_waitv *futex, uint32_t nr_futex, unsigned int flags) |
| | See io_uring_prep_futex_waitv.
|
|
auto | async_fixed_fd_install (int fixed_fd, unsigned int flags) |
| | See io_uring_prep_fixed_fd_install.
|
|
auto | async_fixed_fd_send (FdTable &dst, int source_fd, int target_fd, unsigned int flags) |
| | See io_uring_prep_msg_ring_fd.
|
|
template<FdLike Fd> |
| auto | async_ftruncate (Fd fd, loff_t len) |
| | See io_uring_prep_ftruncate.
|
|
template<FdLike Fd> |
| auto | async_cmd_discard (Fd fd, uint64_t offset, uint64_t nbytes) |
| | See io_uring_prep_cmd_discard.
|
|
template<FdLike Fd> |
| auto | async_bind (Fd fd, struct sockaddr *addr, socklen_t addrlen) |
| | See io_uring_prep_bind.
|
|
template<FdLike Fd> |
| auto | async_listen (Fd fd, int backlog) |
| | See io_uring_prep_listen.
|
|
auto | async_epoll_ctl (int epfd, int fd, int op, struct epoll_event *ev) |
| | See io_uring_prep_epoll_ctl.
|
|
auto | async_epoll_wait (int fd, struct epoll_event *events, int maxevents, unsigned flags) |
| | See io_uring_prep_epoll_wait.
|
|
auto | async_pipe (int *fds, int pipe_flags) |
| | See io_uring_prep_pipe.
|
|
auto | async_pipe_direct (int *fds, int pipe_flags, unsigned int file_index) |
| | See io_uring_prep_pipe_direct.
|
|
template<typename Func, typename... Args> |
| auto | make_op_awaiter (Func &&func, Args &&...args) |
| | This function creates a variant of OpAwaiter. OpAwaiter represents an asynchronous operation that can be awaited. It is basically a wrapper around an io_uring sqe preparation function.
|
| template<typename MultiShotFunc, typename Func, typename... Args> |
| auto | make_multishot_op_awaiter (MultiShotFunc &&multishot_func, Func &&func, Args &&...args) |
| | This function creates a variant of OpAwaiter. OpAwaiter represents an asynchronous operation that can be awaited. It is basically a wrapper around an io_uring sqe preparation function.
|
| template<BufferRingLike Br, typename Func, typename... Args> |
| auto | make_select_buffer_op_awaiter (Br *buffers, Func &&func, Args &&...args) |
| | This function creates a variant of OpAwaiter. OpAwaiter represents an asynchronous operation that can be awaited. It is basically a wrapper around an io_uring sqe preparation function.
|
| template<typename MultiShotFunc, BufferRingLike Br, typename Func, typename... Args> |
| auto | make_multishot_select_buffer_op_awaiter (MultiShotFunc &&multishot_func, Br *buffers, Func &&func, Args &&...args) |
| | This function creates a variant of OpAwaiter. OpAwaiter represents an asynchronous operation that can be awaited. It is basically a wrapper around an io_uring sqe preparation function.
|
| template<BufferRingLike Br, typename Func, typename... Args> |
| auto | make_bundle_select_buffer_op_awaiter (Br *buffers, Func &&func, Args &&...args) |
| | This function creates a variant of OpAwaiter. OpAwaiter represents an asynchronous operation that can be awaited. It is basically a wrapper around an io_uring sqe preparation function.
|
| template<typename MultiShotFunc, BufferRingLike Br, typename Func, typename... Args> |
| auto | make_multishot_bundle_select_buffer_op_awaiter (MultiShotFunc &&multishot_func, Br *buffers, Func &&func, Args &&...args) |
| | This function creates a variant of OpAwaiter. OpAwaiter represents an asynchronous operation that can be awaited. It is basically a wrapper around an io_uring sqe preparation function.
|
| template<typename FreeFunc, typename Func, typename... Args> |
| auto | make_zero_copy_op_awaiter (FreeFunc &&free_func, Func &&func, Args &&...args) |
| | This function creates a variant of OpAwaiter. OpAwaiter represents an asynchronous operation that can be awaited. It is basically a wrapper around an io_uring sqe preparation function.
|
| template<unsigned int Flags, AwaiterLike Awaiter> |
| auto | flag (Awaiter &&awaiter) |
| | Decorates an awaiter with specific io_uring sqe flags.
|
| template<AwaiterLike Awaiter> |
| auto | drain (Awaiter &&awaiter) |
| | Mark an awaiter as drain operation.
|
| template<AwaiterLike Awaiter> |
| auto | always_async (Awaiter &&awaiter) |
| | Mark an awaiter to always execute asynchronously.
|
| template<template< AwaiterLike... Awaiter > typename AwaiterType, AwaiterLike... Awaiter> |
| auto | parallel (Awaiter &&...awaiters) |
| | Compose multiple awaiters into a single awaiter that executes them in parallel.
|
| template<template< typename Awaiter > typename RangedAwaiterType, AwaiterRange Range> |
| auto | parallel (Range &&range) |
| | Compose multiple awaiters from a range into a single awaiter that executes them in parallel.
|
| template<AwaiterLike... Awaiters> |
| auto | when_all (Awaiters &&...awaiters) |
| | Compose multiple awaiters into a single awaiter that completes when all of them complete.
|
| template<AwaiterRange Range> |
| auto | when_all (Range &&range) |
| | Compose multiple awaiters from a range into a single awaiter that completes when all of them complete.
|
| template<AwaiterLike... Awaiters> |
| auto | when_any (Awaiters &&...awaiters) |
| | Compose multiple awaiters into a single awaiter that completes when any of them complete.
|
| template<AwaiterRange Range> |
| auto | when_any (Range &&range) |
| | Compose multiple awaiters from a range into a single awaiter that completes when any of them complete.
|
| template<AwaiterLike... Awaiters> |
| auto | link (Awaiters &&...awaiters) |
| | Compose multiple awaiters into a single awaiter that executes them in sequence.
|
| template<AwaiterRange Range> |
| auto | link (Range &&range) |
| | Compose multiple awaiters from a range into a single awaiter that executes them in sequence.
|
| template<AwaiterLike... Awaiters> |
| auto | hard_link (Awaiters &&...awaiters) |
| | Compose multiple awaiters into a single awaiter that executes them in sequence and continues even if one of them fails.
|
| template<AwaiterRange Range> |
| auto | hard_link (Range &&range) |
| | Compose multiple awaiters from a range into a single awaiter that executes them in sequence and continues even if one of them fails.
|
| MutableBuffer | buffer (void *data, size_t size) |
| | Create a buffer object from various data sources.
|
| ConstBuffer | buffer (const void *data, size_t size) |
| | Create a buffer object from various data sources.
|
| template<typename PodType, size_t N> |
| MutableBuffer | buffer (PodType(&arr)[N]) |
| | Create a buffer object from various data sources.
|
| template<typename PodType, size_t N> |
| ConstBuffer | buffer (const PodType(&arr)[N]) |
| | Create a buffer object from various data sources.
|
| template<typename PodType, size_t N> |
| MutableBuffer | buffer (std::array< PodType, N > &arr) |
| | Create a buffer object from various data sources.
|
| template<typename PodType, size_t N> |
| ConstBuffer | buffer (const std::array< PodType, N > &arr) |
| | Create a buffer object from various data sources.
|
| template<typename PodType> |
| MutableBuffer | buffer (std::vector< PodType > &vec) |
| | Create a buffer object from various data sources.
|
| template<typename PodType> |
| ConstBuffer | buffer (const std::vector< PodType > &vec) |
| | Create a buffer object from various data sources.
|
| MutableBuffer | buffer (std::string &str) |
| | Create a buffer object from various data sources.
|
| ConstBuffer | buffer (const std::string &str) |
| | Create a buffer object from various data sources.
|
| ConstBuffer | buffer (std::string_view strv) |
| | Create a buffer object from various data sources.
|
| MutableBuffer | buffer (iovec &iov) |
| | Create a buffer object from various data sources.
|
| template<typename CoroFunc> |
| auto | will_spawn (CoroFunc &&coro) |
| | Helper to build an invocable that spawns a coroutine on invocation.
|
| template<typename Channel> |
| auto | will_push (Channel &channel) |
| | Helper to build an invocable that pushes the result to a channel on invocation.
|
| auto | fixed (int fd) |
| | Mark a file descriptor as fixed for io_uring operations.
|
| template<BufferLike Buffer> |
| auto | fixed (int buf_index, Buffer &&buf) |
| | Mark a buffer as fixed for io_uring operations.
|
| auto | fixed (int buf_index, const struct iovec *iov) |
| | Mark iovecs as fixed for io_uring operations.
|
| auto | fixed (int buf_index, const struct msghdr *msg) |
| | Mark msghdr as fixed for io_uring operations.
|
| auto & | bundled (ProvidedBufferPool &buffer) |
| | Get the bundled variant of a provided buffer pool. This will enable buffer bundling feature of io_uring.
|
| auto & | bundled (ProvidedBufferQueue &buffer) |
| | Get the bundled variant of a provided buffer queue. This will enable buffer bundling feature of io_uring.
|
| auto & | current_runtime () |
| | Get the current runtime.
|
| void | set_current_cred_id (uint16_t id) |
| | Set the current cred id object.
|
| template<typename T, typename Allocator> |
| T | sync_wait (Runtime &runtime, Coro< T, Allocator > coro) |
| | Synchronously wait for a coroutine to complete in the given runtime.
|
| RuntimeOptions & | default_runtime_options () |
| | Get the default runtime options. This options will be used when using sync_wait without specifying runtime.
|
| template<typename T, typename Allocator> |
| T | sync_wait (Coro< T, Allocator > coro) |
| | Synchronously wait for a coroutine to complete using a default runtime. The runtime will be created and destroyed for each call.
|
| template<typename T, typename Allocator> |
| Task< T, Allocator > | co_spawn (Runtime &runtime, Coro< T, Allocator > coro) |
| | Spawn a coroutine as a task in the given runtime.
|
| template<typename T, typename Allocator> |
| Task< T, Allocator > | co_spawn (Coro< T, Allocator > coro) |
| | Spawn a coroutine as a task in the current runtime.
|
| detail::SwitchAwaiter | co_switch (Runtime &runtime) |
| | Switch current coroutine task to the given runtime.
|
| template<typename Func> |
| Defer | defer (Func &&func) |
| | Defer the execution of a function until the current scope ends.
|