renamed inet.* -> network.*; bugfixes; began input system ...
[my-code/ivac.git] / src / event.h
index 00a134c..ac35535 100644 (file)
@@ -4,14 +4,42 @@
 #define EVENT_H
 
 /* includes */
-#include "ivac.h"
+#include <stdio.h>
 #include <sys/select.h>
 
+/* defines */
+
+/* return values */
+#define CALLBACK_ERROR -1
+#define E_ERROR -1
+#define E_SUCCESS 1
+
+/* event status */
+#define DISABLED 0
+#define ENABLED 1
+
+/* read write mode */
+#define READ 'r'
+#define WRITE 'w'
+/* add remove mode */
+#define ADD 'a'
+#define REMOVE 'r'
+
 /* event specific variables */
-typedef s_event {
+typedef struct s_event {
   int maxfd;
-  fd_set rfds,rfds_c;
-  fd_set wfds,wfds_c;
+  fd_set rfds,rfds_o;
+  fd_set wfds,wfds_o;
+  struct timeval timeout;
+  unsigned char status;
 } t_event;
 
+/* function prototypes */
+int event_init(t_event *event);
+int event_math(int fd,t_event *event,char rw,char ar);
+int event_start(t_event *event,void *ptr,
+                int (*callback0)(t_event *event,void *ptr),
+                int (*callback1)(t_event *event,void *ptr));
+int event_stop(t_event *event);
+
 #endif