KEEL 1.0.0
Minimal C11 HTTP client/server library built on epoll/kqueue/io_uring/poll
Loading...
Searching...
No Matches
event.h
Go to the documentation of this file.
1#ifndef KEEL_EVENT_H
2#define KEEL_EVENT_H
3
4#include <keel/allocator.h>
5
6typedef enum {
10
11typedef struct {
12 void *udata;
14} KlEvent;
15
16typedef struct {
17 int fd;
18 void *_backend;
21
24
26int kl_event_add(KlEventLoop *loop, int fd, KlEventMask mask, void *udata);
27
29int kl_event_mod(KlEventLoop *loop, int fd, KlEventMask mask, void *udata);
30
32int kl_event_del(KlEventLoop *loop, int fd);
33
42int kl_event_wait(KlEventLoop *loop, KlEvent *out, int max, int timeout_ms);
43
46
47#endif
int kl_event_mod(KlEventLoop *loop, int fd, KlEventMask mask, void *udata)
Modify the event mask for a registered fd.
int kl_event_init(KlEventLoop *loop)
Initialize the platform event loop (epoll/kqueue/io_uring).
int kl_event_wait(KlEventLoop *loop, KlEvent *out, int max, int timeout_ms)
Wait for events.
KlEventMask
Definition event.h:6
@ KL_EVENT_WRITE
Definition event.h:8
@ KL_EVENT_READ
Definition event.h:7
int kl_event_add(KlEventLoop *loop, int fd, KlEventMask mask, void *udata)
Register a file descriptor for events.
int kl_event_del(KlEventLoop *loop, int fd)
Remove a file descriptor from the event loop.
void kl_event_close(KlEventLoop *loop)
Close and clean up the event loop.
Bring-your-own allocator vtable.
Definition allocator.h:12
Definition event.h:16
KlAllocator * alloc
Definition event.h:19
void * _backend
Definition event.h:18
int fd
Definition event.h:17
Definition event.h:11
void * udata
Definition event.h:12
KlEventMask ready
Definition event.h:13