]> hackdaworld.org Git - my-code/api.git/blob - event/event.h
1ea07599f1432b2500a550853e3d23e46abd9720
[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 #define E_FD_YES 2
19 #define E_FD_NO 3
20
21 /* event status */
22 #define DISABLED 0
23 #define ENABLED 1
24
25 /* read write mode */
26 #define READ 'r'
27 #define WRITE 'w'
28 /* add remove mode */
29 #define ADD 'a'
30 #define REMOVE 'r'
31
32 /* event specific variables */
33 typedef struct s_event {
34   int outfd;
35   int maxfd;
36   fd_set rfds,rfds_o;
37   fd_set wfds,wfds_o;
38   struct timeval timeout;
39   unsigned char status;
40 } t_event;
41
42 /* function prototypes */
43 int event_init(t_event *event,int outfd);
44 int event_set_timeout(t_event *event,int sec,int usec);
45 int event_math(int fd,t_event *event,char rw,char ar);
46 int event_start(t_event *event,void *ptr,
47                 int (*callback0)(t_event *event,void *ptr),
48                 int (*callback1)(t_event *event,void *ptr));
49 int event_check(t_event *event,int fd);
50 int event_stop(t_event *event);
51
52 #endif