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