more job functions
[apps/madmutt.git] / lib-sys / evtloop.h
index f08f1e7..6c5e0d8 100644 (file)
@@ -30,10 +30,11 @@ typedef enum el_state {
 } el_state;
 
 typedef enum el_mode {
-    EL_IDLE    = 0,
+    EL_NEW     = 0,
     EL_READING = 1,
     EL_WRITING = 2,
     EL_RDWR    = 3,
+    EL_IDLE    = 4,
 } el_mode;
 
 typedef enum el_status {
@@ -55,13 +56,17 @@ typedef struct job_t {
     int fd;
 
     el_state state : 2;
-    el_mode  mode  : 2;
-    el_mode  emode : 2;
+    el_mode  mode  : 3;
+    el_mode  emode : 3;
 
     int (*llp)(struct job_t *);
     struct machine_t *m;
     void *ptr;
 } job_t;
+DO_INIT(job_t, job);
+DO_WIPE(job_t, job);
+DO_NEW(job_t, job);
+DO_DELETE(job_t, job);
 
 typedef struct machine_t {
     const char *name;
@@ -70,7 +75,11 @@ typedef struct machine_t {
     void (*finalize)(job_t *w, el_status);
 } machine_t;
 
+__must_check__ int el_job_setmode(job_t *w, el_mode);
 __must_check__ int el_job_release(job_t *j, el_status);
+__must_check__ int el_job_connect(job_t *w, struct sockaddr *, socklen_t len,
+                                  int type, int proto);
+
 int el_dispatch(int timeout);
 
 #endif