orca-software
queue.h
1 #ifndef _QUEUE_H
2 #define _QUEUE_H
3 
7 struct queue {
8  int32_t size;
9  int32_t elem;
10  int32_t head;
11  int32_t tail;
12  void **data;
13 };
14 
15 struct queue *hf_queue_create(int32_t size);
16 int32_t hf_queue_destroy(struct queue *q);
17 int32_t hf_queue_count(struct queue *q);
18 int32_t hf_queue_addtail(struct queue *q, void *ptr);
19 void *hf_queue_remhead(struct queue *q);
20 void *hf_queue_remtail(struct queue *q);
21 void *hf_queue_get(struct queue *q, int32_t elem);
22 int32_t hf_queue_set(struct queue *q, int32_t elem, void *ptr);
23 int32_t hf_queue_swap(struct queue *q, int32_t elem1, int32_t elem2);
24 
25 #endif
int32_t hf_queue_count(struct queue *q)
Counts the number of nodes in a queue.
Definition: queue.c:74
int32_t hf_queue_swap(struct queue *q, int32_t elem1, int32_t elem2)
Swap the position of two nodes in the queue.
Definition: queue.c:185
void * hf_queue_get(struct queue *q, int32_t elem)
Returns a node from the queue.
Definition: queue.c:149
void * hf_queue_remtail(struct queue *q)
Removes a node from the tail of the queue.
Definition: queue.c:128
int32_t head
Definition: queue.h:10
Queue data structure.
Definition: queue.h:7
void ** data
Definition: queue.h:12
int32_t hf_queue_addtail(struct queue *q, void *ptr)
Adds a node to the tail of the queue.
Definition: queue.c:87
int32_t tail
Definition: queue.h:11
struct queue * hf_queue_create(int32_t size)
Creates a queue of specified size.
Definition: queue.c:30
int32_t size
Definition: queue.h:8
int32_t elem
Definition: queue.h:9
void * hf_queue_remhead(struct queue *q)
Removes a node from the head of the queue.
Definition: queue.c:108
int32_t hf_queue_destroy(struct queue *q)
Destroys a queue.
Definition: queue.c:56
int32_t hf_queue_set(struct queue *q, int32_t elem, void *ptr)
Updates a node on the queue.
Definition: queue.c:168