summaryrefslogtreecommitdiff
path: root/src/reactor.h
diff options
context:
space:
mode:
authorAlbert Cervin <albert@acervin.com>2022-11-26 00:03:10 +0100
committerAlbert Cervin <albert@acervin.com>2022-11-27 18:21:08 +0100
commit78410b18e5d4d117b714eb9f34c689920c32a985 (patch)
tree386f792af7dd8deccdb454182f047b63fc5bc2ce /src/reactor.h
parentc40a1cfa0f1ecfddac06c7143c2dd974126ddad3 (diff)
downloaddged-78410b18e5d4d117b714eb9f34c689920c32a985.tar.gz
dged-78410b18e5d4d117b714eb9f34c689920c32a985.tar.xz
dged-78410b18e5d4d117b714eb9f34c689920c32a985.zip
Implement the reactor
Currently only supports Linux through epoll.
Diffstat (limited to 'src/reactor.h')
-rw-r--r--src/reactor.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/reactor.h b/src/reactor.h
new file mode 100644
index 0000000..7e028e8
--- /dev/null
+++ b/src/reactor.h
@@ -0,0 +1,19 @@
+#include <stdbool.h>
+#include <stdint.h>
+
+enum interest {
+ ReadInterest = 1,
+ WriteInterest = 2,
+};
+
+struct reactor {
+ int epoll_fd;
+ void *events;
+};
+
+struct reactor reactor_create();
+void reactor_destroy(struct reactor *reactor);
+void reactor_update(struct reactor *reactor);
+bool reactor_poll_event(struct reactor *reactor, uint32_t ev_id);
+uint32_t reactor_register_interest(struct reactor *reactor, int fd,
+ enum interest interest);