X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Fivac.git;a=blobdiff_plain;f=src%2Fevent.c;fp=src%2Fevent.c;h=0000000000000000000000000000000000000000;hp=03e96565d26a32462a46cbb55910c7e55b85593b;hb=21a073b6e9d464f3f11dfb290d27341bb4a203b6;hpb=40031b2d692a7b83e437535045ece6c58f8bf31e diff --git a/src/event.c b/src/event.c deleted file mode 100644 index 03e9656..0000000 --- a/src/event.c +++ /dev/null @@ -1,88 +0,0 @@ -/* event.c -- event management stuff - * - * author: hackbard@hackdaworld.dyndns.org - * - */ - -#include "event.h" - -int event_init(t_event *event) { - - puts("[event] initializing event system ..."); - - event->maxfd=0; - - FD_ZERO(&(event->rfds)); - FD_ZERO(&(event->rfds_o)); - FD_ZERO(&(event->wfds)); - FD_ZERO(&(event->wfds_o)); - - return E_SUCCESS; -} - -int event_math(int fd,t_event *event,char rw,char ar) { - - if(ar==ADD) { - if(rw==READ) FD_SET(fd,&(event->rfds_o)); - else FD_SET(fd,&(event->wfds_o)); - if(fd>event->maxfd) event->maxfd=fd; - } else { - if(rw==READ) FD_CLR(fd,&(event->rfds_o)); - else FD_CLR(fd,&(event->wfds_o)); - if(fd==event->maxfd) event->maxfd-=1; - } - - printf("[event] %c fd %d to %c file descriptor set\n",ar==ADD?'+':'-',fd, - rw==READ?'r':'w'); - - return E_SUCCESS; -} - -int event_start(t_event *event,void *ptr, - int (*callback0)(t_event *event,void *ptr), - int (*callback1)(t_event *event,void *ptr)) { - - int s_ret; - struct timeval tv; - - /* switch on event system */ - event->status=ENABLED; - - while(event->status&ENABLED) { - - event->rfds=event->rfds_o; - event->wfds=event->wfds_o; - tv=event->timeout; - - if((s_ret=select(event->maxfd+1,&(event->rfds),&(event->wfds),NULL, - &tv))==-1) { - perror("[event] select call"); - return E_ERROR; - } - - if(s_ret) { - /* 1+ fd(s) available for reading/writing */ - if(callback0(event,ptr)==CALLBACK_ERROR) { - puts("[event] callback0 returned error"); - return E_ERROR; - } - } - - /* usual stuff to be executed */ - if(callback1(event,ptr)==CALLBACK_ERROR) { - puts("[event] callback returned error"); - return E_ERROR; - } - - } - - return E_SUCCESS; -} - -int event_stop(t_event *event) { - - puts("[event] shutdown"); - event->status=DISABLED; - - return E_SUCCESS; -}