1 #ifndef FIFO_H
2 #define FIFO_H
3 
4 typedef struct fifo Fifo;
5 typedef void (*FifoUserFreeFunction) (void *item_data);
6 
7 Fifo* fifo_new(void);
8 void fifo_free(Fifo* self, FifoUserFreeFunction data_free);
9 
10 void fifo_push(Fifo* self, void* data);
11 void* fifo_pop(Fifo* self);
12 
13 void* fifo_peek_first(Fifo *queue);
14 void* fifo_peek_last(Fifo *queue);
15 
16 #endif // FIFO_H
17