aadd65f48e443a85ae43487a6641f985bb41e26b
[my-code/api.git] / event / event.h
1 /* event.h -- event headers */
2
3 #ifndef EVENT_H
4 #define EVENT_H
5
6 /* includes */
7 #define _GNU_SOURCE
8 #include <stdio.h>
9 #include <sys/select.h>
10 #include <unistd.h>
11
12 /* defines */
13
14 /* return values */
15 #define CALLBACK_ERROR -1
16 #define E_ERROR -1
17 #define E_SUCCESS 1
18
19 /* event status */
20 #define DISABLED 0
21 #define ENABLED 1
22
23 /* read write mode */
24 #define READ 'r'
25 #define WRITE 'w'
26 /* add remove mode */
27 #define ADD 'a'
28 #define REMOVE 'r'
29
30 /* event specific variables */
31 typedef struct s_event {
32   int outfd;
33   int maxfd;
34   fd_set rfds,rfds_o;
35   fd_set wfds,wfds_o;
36   struct timeval timeout;
37   unsigned char status;
38 } t_event;
39
40 /* function prototypes */
41 int event_init(t_event *event,int outfd);
42 int event_set_timeout(t_event *event,int sec,int usec);
43 int event_math(int fd,t_event *event,char rw,char ar);
44 int event_start(t_event *event,void *ptr,
45                 int (*callback0)(t_event *event,void *ptr),
46                 int (*callback1)(t_event *event,void *ptr));
47 int event_stop(t_event *event);
48
49 #endif