X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=common%2Fserver.h;h=28f4c3566f7df3f415300faab2c9e355fe31dade;hb=4066718a655683e214f3c361ac71ca4466771281;hp=9599b90b46f9659e3e366796f0f74c3210826eb3;hpb=8977d252fc44ae953df4bde4a2f1c5895beea4e0;p=apps%2Fpfixtools.git diff --git a/common/server.h b/common/server.h index 9599b90..28f4c35 100644 --- a/common/server.h +++ b/common/server.h @@ -39,24 +39,39 @@ #include "buffer.h" typedef struct server_t server_t; +typedef int event_t; + +#define INVALID_EVENT (-1) typedef void *(*start_listener_t)(void); typedef void (*delete_client_t)(void*); typedef void *(*start_client_t)(server_t*); typedef int (*run_client_t)(server_t*, void*); +typedef bool (*refresh_t)(void*); +typedef bool (*event_handler_t)(void* data, void* config); struct server_t { unsigned listener : 1; + unsigned event : 1; + int fd; + int fd2; + buffer_t ibuf; buffer_t obuf; - void* data; + delete_client_t clear_data; + void* data; }; +ARRAY(server_t); int start_server(int port, start_listener_t starter, delete_client_t deleter); +event_t event_register(void *data); +bool event_fire(event_t event); + int server_loop(start_client_t starter, delete_client_t deleter, - run_client_t runner, void* config); + run_client_t runner, event_handler_t handler, + refresh_t refresh, void *config); #endif