diff options
Diffstat (limited to 'networking/isrv.h')
-rw-r--r-- | networking/isrv.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/networking/isrv.h b/networking/isrv.h new file mode 100644 index 000000000..780636d17 --- /dev/null +++ b/networking/isrv.h | |||
@@ -0,0 +1,23 @@ | |||
1 | /* opaque structure */ | ||
2 | struct isrv_state_t; | ||
3 | typedef struct isrv_state_t isrv_state_t; | ||
4 | |||
5 | /* callbacks */ | ||
6 | void isrv_want_rd(isrv_state_t *state, int fd); | ||
7 | void isrv_want_wr(isrv_state_t *state, int fd); | ||
8 | void isrv_dont_want_rd(isrv_state_t *state, int fd); | ||
9 | void isrv_dont_want_wr(isrv_state_t *state, int fd); | ||
10 | int isrv_register_fd(isrv_state_t *state, int peer, int fd); | ||
11 | void isrv_close_fd(isrv_state_t *state, int fd); | ||
12 | int isrv_register_peer(isrv_state_t *state, void *param); | ||
13 | |||
14 | /* driver */ | ||
15 | void isrv_run( | ||
16 | int listen_fd, | ||
17 | int (*new_peer)(isrv_state_t *state, int fd), | ||
18 | int (*do_rd)(int fd, void **), | ||
19 | int (*do_wr)(int fd, void **), | ||
20 | int (*do_timeout)(void **), | ||
21 | int timeout, | ||
22 | int linger_timeout | ||
23 | ); | ||