1#ifndef _EVENTS_H_INCLUDED_
2#define _EVENTS_H_INCLUDED_
3
4/*++
5/* NAME
6/*	events 3h
7/* SUMMARY
8/*	event manager
9/* SYNOPSIS
10/*	#include <events.h>
11/* DESCRIPTION
12/* .nf
13
14 /*
15  * System library.
16  */
17#include <time.h>
18
19 /*
20  * External interface.
21  */
22typedef void (*EVENT_NOTIFY_FN) (int, char *);
23
24#define EVENT_NOTIFY_TIME_FN EVENT_NOTIFY_FN	/* legacy */
25#define EVENT_NOTIFY_RDWR_FN EVENT_NOTIFY_FN	/* legacy */
26
27extern time_t event_time(void);
28extern void event_enable_read(int, EVENT_NOTIFY_RDWR_FN, char *);
29extern void event_enable_write(int, EVENT_NOTIFY_RDWR_FN, char *);
30extern void event_disable_readwrite(int);
31extern time_t event_request_timer(EVENT_NOTIFY_TIME_FN, char *, int);
32extern int event_cancel_timer(EVENT_NOTIFY_TIME_FN, char *);
33extern void event_loop(int);
34extern void event_drain(int);
35extern void event_fork(void);
36
37 /*
38  * Event codes.
39  */
40#define EVENT_READ	(1<<0)		/* read event */
41#define EVENT_WRITE	(1<<1)		/* write event */
42#define EVENT_XCPT	(1<<2)		/* exception */
43#define EVENT_TIME	(1<<3)		/* timer event */
44
45#define EVENT_ERROR	EVENT_XCPT
46
47 /*
48  * Dummies.
49  */
50#define EVENT_NULL_TYPE		(0)
51#define EVENT_NULL_CONTEXT	((char *) 0)
52#define EVENT_NULL_DELAY	(0)
53
54/* LICENSE
55/* .ad
56/* .fi
57/*	The Secure Mailer license must be distributed with this software.
58/* AUTHOR(S)
59/*	Wietse Venema
60/*	IBM T.J. Watson Research
61/*	P.O. Box 704
62/*	Yorktown Heights, NY 10598, USA
63/* CREATION DATE
64/*	Wed Jan 29 17:00:03 EST 1997
65/*--*/
66
67#endif
68