/*
 * See ``COPYRIGHT.mpd''
 *
 * $Id: event.h,v 1.6 2007/03/19 23:04:32 amotin Exp $
 *
 */

#ifndef _EVENT_H_
#define _EVENT_H_

/*
 * DEFINITIONS
 */

/* Types of events */

  #define EVENT_READ		PEVENT_READ	/* value = file descriptor */
  #define EVENT_WRITE		PEVENT_WRITE	/* value = file descriptor */
  #define EVENT_TIMEOUT		PEVENT_TIME	/* value = time in miliseconds */
  
  #define EVENT_RECURRING	PEVENT_RECURRING

  typedef void		(*EventHdlr)(int type, void *cookie);

  struct event_ref
  {
    int			type;
    EventHdlr		handler;
    struct pevent	*pe;
    void		*arg;
  };
  typedef struct event_ref	*EventRef;

/*
 * FUNCTIONS
 */

  extern int	EventInit(void);
  extern void	EventStop(void);
  extern int	EventRegister(EventRef *ref, int type, int value,
		  int flags, EventHdlr action, void *cookie);
  extern int	EventUnRegister(EventRef *ref);
  extern int	EventIsRegistered(EventRef *ref);
  extern int	EventTimerRemain(EventRef *ref);
  extern void	EventDump(Context ctx, const char *msg);

  extern void	EventSetLog(int sanity, void (*warnx)(const char *fmt, ...));

#endif



syntax highlighted by Code2HTML, v. 0.9.1