git @ Cat's Eye Technologies beta-Juliet / master src / equeue.h
master

Tree @master (Download .tar.gz)

equeue.h @masterraw · history · blame

/*
 * equeue.h
 * Event queue structures and prototypes for 2Iota.
 * $Id: equeue.h 518 2010-04-28 17:48:38Z cpressey $
 */

#ifndef __EQUEUE_H
#define __EQUEUE_H

#include "etime.h"

struct equeue {
	struct equeue_entry	*head;
};

struct equeue_entry {
	struct equeue_entry	*next;
	struct equeue_entry	*prev;
	struct symstr		*name;		/* name of event to trigger */
	struct etime		delay;
};

struct equeue		*equeue_new(void);
void			 equeue_free(struct equeue *);
struct equeue_entry	*equeue_insert(struct equeue *, struct symstr *,
					struct etime *);
struct equeue_entry	*equeue_remove(struct equeue *);
void			 equeue_entry_free(struct equeue_entry *);
void			 equeue_transfer(struct equeue *, struct equeue *);
void			 equeue_time_passes(struct equeue *, struct etime *);

void			 equeue_dump(struct equeue *);

#endif /* !__EQUEUE_H */