#ifndef _QUEUE_H_ #define _QUEUE_H_ #include typedef struct _Queue Queue; typedef void (*QueueFreeFunc)(void*); Queue* queue_new(); Queue* queue_new_full(QueueFreeFunc free); void queue_destroy(Queue*); void* queue_dequeue(Queue*); void queue_enqueue(Queue*, void*); void* queue_front(Queue*); void* queue_back(Queue*); void queue_clear(Queue*); bool queue_empty(Queue*); int queue_size(Queue*); #endif