aboutsummaryrefslogtreecommitdiff
path: root/nio.h
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2023-10-16 15:21:48 +0200
committerToni Uhlig <matzeton@googlemail.com>2023-11-06 11:32:32 +0100
commitf4f27f72b255834ab28395c32a69e4a959b9c588 (patch)
tree2cfb6785b52d45702b2637393965af16dc0469de /nio.h
parent17c21e1d27a90b394873a0e80e5d6992f4b985ee (diff)
Finalize Event I/O abstraction layer.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'nio.h')
-rw-r--r--nio.h28
1 files changed, 23 insertions, 5 deletions
diff --git a/nio.h b/nio.h
index d1f5add72..ae7b1e9e9 100644
--- a/nio.h
+++ b/nio.h
@@ -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);