#ifndef QUEUE_H
#define QUEUE_H

/* le type queue représente une file */
typedef struct s_queue *queue;

/* crée une file vide. Renvoie NULL en cas d'échec */
queue create_queue(void);

/* ajoute un élément à la file. Renvoie 0 en cas d'échec */
int enqueue(queue, unsigned);

/* renvoie 1 si la file est vide */
int empty(queue);

/* retire un élément de la file. Renvoie l'élément retiré, ou -1 en cas d'échec */
long dequeue(queue);

/* détruit une file en libérant les ressources associées */
void destroy_queue(queue);

#endif /* QUEUE_H */