diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2023-10-16 15:21:48 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2023-11-06 11:32:32 +0100 |
commit | f4f27f72b255834ab28395c32a69e4a959b9c588 (patch) | |
tree | 2cfb6785b52d45702b2637393965af16dc0469de /nio.h | |
parent | 17c21e1d27a90b394873a0e80e5d6992f4b985ee (diff) |
Finalize Event I/O abstraction layer.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'nio.h')
-rw-r--r-- | nio.h | 28 |
1 files changed, 23 insertions, 5 deletions
@@ -5,7 +5,7 @@ enum { - NIO_ERROR_SUCCESS = 0, + NIO_SUCCESS = 0, NIO_ERROR_INTERNAL = 1, NIO_ERROR_SYSTEM = -1 }; @@ -23,9 +23,9 @@ struct nio int nready; nfds_t poll_max_fds; - nfds_t poll_cur_fds; struct pollfd * poll_fds; void ** poll_ptrs; + nfds_t * poll_fds_set; int epoll_fd; int max_events; @@ -46,15 +46,33 @@ int nio_del_fd(struct nio * io, int fd); int nio_run(struct nio * io, int timeout); +static inline int nio_get_nready(struct nio * io) +{ + return io->nready; +} + int nio_check(struct nio * io, int index, int events); int nio_is_valid(struct nio * io, int index); -int nio_has_input(struct nio * io, int index); +int nio_get_fd(struct nio * io, int index); -int nio_can_output(struct nio * io, int index); +void * nio_get_ptr(struct nio * io, int index); + +static inline int nio_has_input(struct nio * io, int index) +{ + return nio_check(io, index, NIO_EVENT_INPUT); +} -int nio_has_error(struct nio * io, int index); +static inline int nio_can_output(struct nio * io, int index) +{ + return nio_check(io, index, NIO_EVENT_OUTPUT); +} + +static inline int nio_has_error(struct nio * io, int index) +{ + return nio_check(io, index, NIO_EVENT_ERROR); +} void nio_free(struct nio * io); |