void pipe_callback (evutil_socket_t fd, short event, void *vmgr) { CEventManager *manager = (CEventManager *) vmgr; CEvent *cevent; char buf[CEVENT_SIZE]; if (ccnet_util_pipereadn(fd, buf, CEVENT_SIZE) != CEVENT_SIZE) { return; } cevent = (CEvent *)buf; Handler *h = g_hash_table_lookup (manager->handler_table, (gconstpointer)(long)cevent->id); if (h == NULL) { g_warning ("no handler for event type %d\n", cevent->id); return; } h->handler(cevent, h->handler_data); }
static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) { Handler *c = (Handler*)nc->user_data; c->handler(nc, ev, ev_data); }