have linear-type-safe source codes of mp3decoder
[IRC.git] / Robust / src / Tests / setjmpTest / Queue.h
1 #ifndef QUEUE_H
2 #define QUEUE_H
3
4 struct Queue {
5   struct QueueItem * head;
6   struct QueueItem * tail;
7 };
8
9 typedef struct Queue Q;
10
11 struct QueueItem {
12   void * objectptr;
13   struct Queue * queue;
14   struct QueueItem * next;
15   struct QueueItem * prev;
16 };
17
18 #define isEmpty(x) ((x)->head==NULL)
19
20 void * getItem(struct Queue * queue);
21 void freeQueue(struct Queue * q);
22 struct Queue * createQueue();
23 struct QueueItem * addNewItem(struct Queue * queue, void * ptr);
24 #ifdef RAW
25 struct QueueItem * addNewItem_I(struct Queue * queue, void * ptr);
26 #endif
27 struct QueueItem * findItem(struct Queue * queue, void * ptr);
28 void removeItem(struct Queue * queue, struct QueueItem * item);
29 struct QueueItem * getTail(struct Queue * queue);
30 struct QueueItem * getNextQueueItem(struct QueueItem * qi);
31
32 #endif