|
Condy v1.9
C++ Asynchronous System Call Layer for Linux
|
Definitions of asynchronous operations. More...
#include "condy/awaiter_operations.hpp"#include "condy/concepts.hpp"#include "condy/condy_uring.hpp"#include "condy/detail/async_operations.hpp"#include "condy/detail/helpers.hpp"#include "condy/zcrx.hpp"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_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_recvmsg (Fd fd, struct msghdr *msg, unsigned flags) |
| See io_uring_prep_recvmsg. | |
| template<FdLike Fd, typename MultiShotFunc, AnySameAs< ProvidedBufferQueue, ProvidedBufferPool > 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> | |
| 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<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, const Buffer &buf, __u64 offset, int flags=0) |
| See io_uring_prep_read. | |
| template<FdLike Fd, BufferLike Buffer> | |
| auto | condy::async_read (Fd fd, detail::FixedBuffer< Buffer > buf, __u64 offset, int flags=0) |
| See io_uring_prep_read_fixed. | |
| template<FdLike Fd, AnySameAs< ProvidedBufferQueue, ProvidedBufferPool > Buffer> | |
| auto | condy::async_read (Fd fd, Buffer &buf, __u64 offset) |
| See io_uring_prep_read. | |
| template<FdLike Fd, BufferLike Buffer> | |
| auto | condy::async_write (Fd fd, const Buffer &buf, __u64 offset, int flags=0) |
| See io_uring_prep_write. | |
| template<FdLike Fd, BufferLike Buffer> | |
| auto | condy::async_write (Fd fd, detail::FixedBuffer< Buffer > buf, __u64 offset, int flags=0) |
| 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. | |
| auto | condy::async_madvise (void *addr, __u32 length, int advice) |
| See io_uring_prep_madvise. | |
| template<FdLike Fd, BufferLike Buffer> | |
| auto | condy::async_send (Fd sockfd, const Buffer &buf, int flags) |
| See io_uring_prep_send. | |
| template<FdLike Fd, BufferLike Buffer> | |
| auto | condy::async_send (Fd sockfd, detail::FixedBuffer< 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, BufferLike Buffer> | |
| auto | condy::async_sendto (Fd sockfd, const 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, BufferLike Buffer> | |
| auto | condy::async_sendto (Fd sockfd, detail::FixedBuffer< 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, typename Buffer, typename FreeFunc> | |
| auto | condy::async_send_zc (Fd sockfd, const 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, const 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, const Buffer &buf, int flags) |
| See io_uring_prep_recv. | |
| template<FdLike Fd, BufferLike Buffer> | |
| auto | condy::async_recv (Fd sockfd, detail::FixedBuffer< Buffer > buf, int flags) |
| See io_uring_prep_recv. | |
| template<FdLike Fd, AnySameAs< ProvidedBufferQueue, ProvidedBufferPool > Buffer> | |
| auto | condy::async_recv (Fd sockfd, Buffer &buf, int flags) |
| See io_uring_prep_recv. | |
| template<FdLike Fd, AnySameAs< ProvidedBufferQueue, ProvidedBufferPool > 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<CQEHandlerLike CQEHandler = SimpleCQEHandler, FdLike Fd, typename CmdFunc, typename... Args> | |
| auto | condy::async_uring_cmd (int cmd_op, Fd fd, CmdFunc &&cmd_func, Args &&...handler_args) |
| See io_uring_prep_uring_cmd. | |
| template<FdLike Fd, typename CmdFunc, CQEHandlerLike CQEHandler> | |
| auto | condy::async_uring_cmd (int cmd_op, Fd fd, CmdFunc &&cmd_func, CQEHandler &&cqe_handler) |
| See io_uring_prep_uring_cmd. | |
| template<CQEHandlerLike CQEHandler = SimpleCQEHandler, FdLike Fd, typename CmdFunc, typename MultiShotFunc, typename... Args> | |
| auto | condy::async_uring_cmd_multishot (int cmd_op, Fd fd, CmdFunc &&cmd_func, MultiShotFunc &&func, Args &&...handler_args) |
| See io_uring_prep_uring_cmd. | |
| template<FdLike Fd, typename CmdFunc, CQEHandlerLike CQEHandler, typename MultiShotFunc> | |
| auto | condy::async_uring_cmd_multishot (int cmd_op, Fd fd, CmdFunc &&cmd_func, CQEHandler &&cqe_handler, MultiShotFunc &&func) |
| See io_uring_prep_uring_cmd (multi-shot variant). | |
| auto | condy::async_epoll_ctl (int epfd, int fd, int op, struct epoll_event *ev) |
| See io_uring_prep_epoll_ctl. | |
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
Definition in file async_operations.hpp.