libqueue 1.0.0
Queue in C
All Data Structures Files Functions Variables Typedefs Pages
queue.h
Go to the documentation of this file.
1
9#ifndef __LIBQUEUE_H
10#define __LIBQUEUE_H
11
12/* libc */
13#include <stdbool.h>
14#include <sys/types.h>
15
27typedef struct queue_node_t {
28 void* value;
31
38typedef struct {
39 u_int32_t size;
42} queue_t;
43
49void queue_new(queue_t *queue);
50
51/* CRUD */
52
59void queue_push(queue_t *queue, void *value);
60
67void* queue_pop(queue_t *queue);
68
75void* queue_front(queue_t *queue);
76
83void* queue_back(queue_t *queue);
84
92bool queue_empty(queue_t *queue);
93
103void queue_free(queue_t *queue);
104
105#endif
void * queue_front(queue_t *queue)
Peek the front element of the queue.
Definition: queue.c:61
bool queue_empty(queue_t *queue)
Check if queue is empty.
Definition: queue.c:15
void queue_new(queue_t *queue)
Initialize a queue.
Definition: queue.c:7
void queue_push(queue_t *queue, void *value)
Push elements to the back of the queue.
Definition: queue.c:21
void * queue_pop(queue_t *queue)
Pop elements from the front of the queue.
Definition: queue.c:39
void queue_free(queue_t *queue)
Free the queue's elements.
Definition: queue.c:89
void * queue_back(queue_t *queue)
Peek the last element of the queue.
Definition: queue.c:75
Nodes in the queue.
Definition: queue.h:27
void * value
Definition: queue.h:28
struct queue_node_t * next
Definition: queue.h:29
Queue instance.
Definition: queue.h:38
queue_node_t * tail
Definition: queue.h:41
queue_node_t * head
Definition: queue.h:40
u_int32_t size
Definition: queue.h:39