src/server/daemon/event.h

changeset 193
aa8393527b1e
parent 162
b169992137a8
parent 172
5580517faafc
child 256
19259b6c5cf7
--- a/src/server/daemon/event.h	Thu Aug 31 16:29:49 2017 +0200
+++ b/src/server/daemon/event.h	Sat Jan 13 19:01:00 2018 +0100
@@ -36,26 +36,11 @@
 extern "C" {
 #endif
 
-#define EVENT_POLLIN   0x1
-#define EVENT_POLLOUT  0x2
-    
-typedef struct event_handler event_handler_t;
-typedef struct event         event_t;
-
-typedef int(*event_func)(event_handler_t*, event_t*);
-
-struct event {
-    pblock       *pb;
-    Session      *sn;
-    Request      *rq;
-    event_func   fn;
-    event_func   finish;
-    intptr_t     object;
-    int          events;
-    int          poll;
-    void         *cookie;
-    int          error;
-};
+typedef struct EVHandler {
+    EventHandler **instances;
+    uint32_t     numins;
+    uint32_t     current;
+} EVHandler;
 
 typedef struct event_handler_conf {
     sstr_t   name;
@@ -63,27 +48,26 @@
     int      isdefault;
 } EventHandlerConfig;
 
-typedef struct event_handler_object {
-    event_handler_t   *handler;
-    int               nthreads;
-} EventHandlerObject;
-
 int create_event_handler(EventHandlerConfig *cfg);
 
 int check_event_handler_cfg();
 
-event_handler_t* get_default_event_handler();
+EVHandler* get_default_event_handler();
 
-event_handler_t* get_event_handler(char *name);
+EVHandler* get_event_handler(char *name);
+
+EventHandler* ev_instance(EVHandler *ev);
 
 /* implementation in event_$platform */
-event_handler_t* evhandler_create(int numthreads);
-
-int ev_pollin(event_handler_t *h, int fd, event_t *event);
+EVHandler* evhandler_create(EventHandlerConfig *cfg);
 
-int ev_pollout(event_handler_t *h, int fd, event_t *event);
+int ev_pollin(EventHandler *h, int fd, Event *event);
+int ev_pollout(EventHandler *h, int fd, Event *event);
+int ev_remove_poll(EventHandler *h, int fd);
+int ev_send(EventHandler *h, Event *event);
 
-int evt_send(event_handler_t *h, event_t *event);
+int ev_aioread(int fd, aiocb_s *cb);
+int ev_aiowrite(int fd, aiocb_s *cb);
 
 
 #ifdef	__cplusplus

mercurial