X-Git-Url: http://git.madism.org/?a=blobdiff_plain;ds=sidebyside;f=common%2Fserver.h;h=85cbae4edc3b2a346bc6d432e0ca96e46872aa55;hb=ae0c2eb5d2ea501fd9e458fc138696c268a14569;hp=239ae37cfc4438f79e2fd47e0408890212166855;hpb=7961b29b3aae8dee45748bf66e30a45c76a47272;p=apps%2Fpfixtools.git diff --git a/common/server.h b/common/server.h index 239ae37..85cbae4 100644 --- a/common/server.h +++ b/common/server.h @@ -40,12 +40,14 @@ typedef struct server_t server_t; +#define INVALID_EVENT (NULL) + 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); +typedef bool (*event_handler_t)(server_t *, void*); struct server_t { unsigned listener : 1; @@ -64,8 +66,13 @@ ARRAY(server_t); int start_server(int port, start_listener_t starter, delete_client_t deleter); -int event_register(void *data); -bool event_fire(int event); +void server_release(server_t *server); + +server_t *event_register(int fd, void *data); +bool event_fire(server_t *event); +bool event_cancel(server_t *event); +void event_release(server_t *event); +#define event_data(event) ((event)->data) int server_loop(start_client_t starter, delete_client_t deleter, run_client_t runner, event_handler_t handler,