Condy v1.1.0
C++ Asynchronous System Call Layer for Linux
Loading...
Searching...
No Matches
async_operations.hpp File Reference

Definitions of asynchronous operations. More...

Go to the source code of this file.

Namespaces

namespace  condy
 The main namespace for the Condy library.

Functions

template<FdLike Fd1, FdLike Fd2>
auto condy::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 condy::async_tee (Fd1 fd_in, Fd2 fd_out, unsigned int nbytes, unsigned int splice_flags)
 See io_uring_prep_tee.
template<FdLike Fd>
auto condy::async_readv (Fd fd, const struct iovec *iovecs, unsigned nr_vecs, __u64 offset, int flags)
 See io_uring_prep_readv2.
template<FdLike Fd>
auto condy::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 condy::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 condy::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 condy::async_recvmsg (Fd fd, struct msghdr *msg, unsigned flags)
 See io_uring_prep_recvmsg.
template<FdLike Fd, typename MultiShotFunc, NotBundledBufferRing Buffer>
auto condy::async_recvmsg_multishot (Fd fd, struct msghdr *msg, unsigned flags, Buffer &buf, MultiShotFunc &&func)
 See io_uring_prep_recvmsg_multishot.
template<FdLike Fd>
auto condy::async_sendmsg (Fd fd, const struct msghdr *msg, unsigned flags)
 See io_uring_prep_sendmsg.
template<FdLike Fd, typename FreeFunc>
auto condy::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 condy::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 condy::async_fsync (Fd fd, unsigned fsync_flags)
 See io_uring_prep_fsync.
auto condy::async_nop ()
 See io_uring_prep_nop.
auto condy::async_timeout (struct __kernel_timespec *ts, unsigned count, unsigned flags)
 See io_uring_prep_timeout.
template<typename MultiShotFunc>
auto condy::async_timeout_multishot (struct __kernel_timespec *ts, unsigned count, unsigned flags, MultiShotFunc &&func)
 See io_uring_prep_timeout.
template<FdLike Fd>
auto condy::async_accept (Fd fd, struct sockaddr *addr, socklen_t *addrlen, int flags)
 See io_uring_prep_accept.
template<FdLike Fd>
auto condy::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 condy::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 condy::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 condy::async_cancel_fd (Fd fd, unsigned int flags)
 See io_uring_prep_cancel_fd.
auto condy::async_link_timeout (struct __kernel_timespec *ts, unsigned flags)
 See io_uring_prep_link_timeout.
template<FdLike Fd>
auto condy::async_connect (Fd fd, const struct sockaddr *addr, socklen_t addrlen)
 See io_uring_prep_connect.
auto condy::async_files_update (int *fds, unsigned nr_fds, int offset)
 See io_uring_prep_files_update.
template<FdLike Fd>
auto condy::async_fallocate (Fd fd, int mode, __u64 offset, __u64 len)
 See io_uring_prep_fallocate.
auto condy::async_openat (int dfd, const char *path, int flags, mode_t mode)
 See io_uring_prep_openat.
auto condy::async_openat_direct (int dfd, const char *path, int flags, mode_t mode, unsigned file_index)
 See io_uring_prep_openat_direct.
auto condy::async_open (const char *path, int flags, mode_t mode)
 See io_uring_prep_openat.
auto condy::async_open_direct (const char *path, int flags, mode_t mode, unsigned file_index)
 See io_uring_prep_openat_direct.
auto condy::async_close (int fd)
 See io_uring_prep_close.
auto condy::async_close (detail::FixedFd fd)
 See io_uring_prep_close_direct.
template<FdLike Fd, BufferLike Buffer>
auto condy::async_read (Fd fd, Buffer &&buf, __u64 offset)
 See io_uring_prep_read.
template<FdLike Fd, BufferLike Buffer>
auto condy::async_read (Fd fd, detail::FixedBuffer< Buffer > buf, __u64 offset)
 See io_uring_prep_read_fixed.
template<FdLike Fd, NotBundledBufferRing Buffer>
auto condy::async_read (Fd fd, Buffer &buf, __u64 offset)
 See io_uring_prep_read.
template<FdLike Fd, NotBundledBufferRing Buffer, typename MultiShotFunc>
auto condy::async_read_multishot (Fd fd, Buffer &buf, __u64 offset, MultiShotFunc &&func)
 See io_uring_prep_read_multishot.
template<FdLike Fd, BufferLike Buffer>
auto condy::async_write (Fd fd, Buffer &&buf, __u64 offset)
 See io_uring_prep_write.
template<FdLike Fd, BufferLike Buffer>
auto condy::async_write (Fd fd, detail::FixedBuffer< Buffer > buf, __u64 offset)
 See io_uring_prep_write_fixed.
auto condy::async_statx (int dfd, const char *path, int flags, unsigned mask, struct statx *statxbuf)
 See io_uring_prep_statx.
template<FdLike Fd>
auto condy::async_fadvise (Fd fd, __u64 offset, off_t len, int advice)
 See io_uring_prep_fadvise.
template<FdLike Fd>
auto condy::async_fadvise64 (Fd fd, __u64 offset, off_t len, int advice)
 See io_uring_prep_fadvise64.
auto condy::async_madvise (void *addr, __u32 length, int advice)
 See io_uring_prep_madvise.
auto condy::async_madvise64 (void *addr, off_t length, int advice)
 See io_uring_prep_madvise64.
template<FdLike Fd, BufferLike Buffer>
auto condy::async_send (Fd sockfd, Buffer &&buf, int flags)
 See io_uring_prep_send.
template<FdLike Fd>
auto condy::async_send (Fd sockfd, ProvidedBufferQueue &buf, int flags)
 See io_uring_prep_send.
template<FdLike Fd>
auto condy::async_send (Fd sockfd, BundledProvidedBufferQueue &buf, int flags)
 See io_uring_prep_send.
template<FdLike Fd, BufferLike Buffer>
auto condy::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 condy::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 condy::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 condy::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 condy::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 condy::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 condy::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 condy::async_recv (Fd sockfd, Buffer &&buf, int flags)
 See io_uring_prep_recv.
template<FdLike Fd, NotBundledBufferRing Buffer>
auto condy::async_recv (Fd sockfd, Buffer &buf, int flags)
 See io_uring_prep_recv.
template<FdLike Fd, BundledBufferRing Buffer>
auto condy::async_recv (Fd sockfd, Buffer &buf, int flags)
 See io_uring_prep_recv.
template<FdLike Fd, NotBundledBufferRing Buffer, typename MultiShotFunc>
auto condy::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 condy::async_recv_multishot (Fd sockfd, Buffer &buf, int flags, MultiShotFunc &&func)
 See io_uring_prep_recv_multishot.
auto condy::async_openat2 (int dfd, const char *path, struct open_how *how)
 See io_uring_prep_openat2.
auto condy::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 condy::async_shutdown (Fd fd, int how)
 See io_uring_prep_shutdown.
auto condy::async_unlinkat (int dfd, const char *path, int flags)
 See io_uring_prep_unlinkat.
auto condy::async_unlink (const char *path, int flags)
 See io_uring_prep_unlinkat.
auto condy::async_renameat (int olddfd, const char *oldpath, int newdfd, const char *newpath, unsigned int flags)
 See io_uring_prep_renameat.
auto condy::async_rename (const char *oldpath, const char *newpath)
 See io_uring_prep_renameat.
template<FdLike Fd>
auto condy::async_sync_file_range (Fd fd, unsigned len, __u64 offset, int flags)
 See io_uring_prep_sync_file_range.
auto condy::async_mkdirat (int dfd, const char *path, mode_t mode)
 See io_uring_prep_mkdirat.
auto condy::async_mkdir (const char *path, mode_t mode)
 See io_uring_prep_mkdirat.
auto condy::async_symlinkat (const char *target, int newdirfd, const char *linkpath)
 See io_uring_prep_symlinkat.
auto condy::async_symlink (const char *target, const char *linkpath)
 See io_uring_prep_symlinkat.
auto condy::async_linkat (int olddfd, const char *oldpath, int newdfd, const char *newpath, int flags)
 See io_uring_prep_linkat.
auto condy::async_link (const char *oldpath, const char *newpath, int flags)
 See io_uring_prep_linkat.
auto condy::async_getxattr (const char *name, char *value, const char *path, unsigned int len)
 See io_uring_prep_getxattr.
auto condy::async_setxattr (const char *name, const char *value, const char *path, int flags, unsigned int len)
 See io_uring_prep_setxattr.
auto condy::async_fgetxattr (int fd, const char *name, char *value, unsigned int len)
 See io_uring_prep_fgetxattr.
auto condy::async_fsetxattr (int fd, const char *name, const char *value, int flags, unsigned int len)
 See io_uring_prep_fsetxattr.
auto condy::async_socket (int domain, int type, int protocol, unsigned int flags)
 See io_uring_prep_socket.
auto condy::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 condy::async_cmd_sock (int cmd_op, Fd fd, int level, int optname, void *optval, int optlen)
 See io_uring_prep_cmd_sock.
auto condy::async_waitid (idtype_t idtype, id_t id, siginfo_t *infop, int options, unsigned int flags)
 See io_uring_prep_waitid.
auto condy::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 condy::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 condy::async_futex_waitv (struct futex_waitv *futex, uint32_t nr_futex, unsigned int flags)
 See io_uring_prep_futex_waitv.
auto condy::async_fixed_fd_install (int fixed_fd, unsigned int flags)
 See io_uring_prep_fixed_fd_install.
auto condy::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 condy::async_ftruncate (Fd fd, loff_t len)
 See io_uring_prep_ftruncate.
template<FdLike Fd>
auto condy::async_cmd_discard (Fd fd, uint64_t offset, uint64_t nbytes)
 See io_uring_prep_cmd_discard.
template<FdLike Fd>
auto condy::async_bind (Fd fd, struct sockaddr *addr, socklen_t addrlen)
 See io_uring_prep_bind.
template<FdLike Fd>
auto condy::async_listen (Fd fd, int backlog)
 See io_uring_prep_listen.
auto condy::async_epoll_ctl (int epfd, int fd, int op, struct epoll_event *ev)
 See io_uring_prep_epoll_ctl.
auto condy::async_epoll_wait (int fd, struct epoll_event *events, int maxevents, unsigned flags)
 See io_uring_prep_epoll_wait.
auto condy::async_pipe (int *fds, int pipe_flags)
 See io_uring_prep_pipe.
auto condy::async_pipe_direct (int *fds, int pipe_flags, unsigned int file_index)
 See io_uring_prep_pipe_direct.

Detailed Description

Definitions of asynchronous operations.

This file defines a series of asynchronous operations, which are wrappers around liburing operations. Generally, each async_* function corresponds to a io_uring_prep_* function in liburing