1
0
This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Files
2024-07-22 01:58:46 -03:00

44 lines
1.0 KiB
C

/*
* Event handler
*
* $Id: events.h,v 1.1.1.1 2007/04/12 09:42:38 ian Exp $
*
*/
#ifndef EVENTS_H
#define EVENTS_H
/* System includes needed for types */
/* Local includes needed for types */
#include "units.h"
/* Type definitions */
typedef enum {
CE_SVC_OPEN, CE_SVC_CLOSE, CE_DATA, CE_TIMER, CE_DUMP, CE_RESTART, CE_EXIT
} EventType_t;
#define CE_MAX CE_EXIT
typedef struct {
const Unit_t *unit;
EventType_t type;
void *data;
} Event_t;
/* Event handlers should return nonzero if they swallowed the event */
typedef int (* HandlerFunc_t)(const Event_t *event, void *funcdata);
/* Global function prototypes */
void add_event_handler(EventType_t type, HandlerFunc_t func, const char *name, void *funcdata);
const Event_t *event_get_next(void);
void event_put(const Unit_t *unit, EventType_t type, void *data);
const char *dump_event_type(EventType_t type);
int dispatch_handlers(const Event_t *event);
void event_add_fd(int fd, void *data);
void event_remove_fd(int fd);
/* Global data */
extern const Unit_t events_unit;
#endif