Robot Agent  1.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
queue.h
Go to the documentation of this file.
1 
11 #ifndef __QUEUE_H
12 #define __QUEUE_H
13 
14 /* -- Includes -- */
15 
16 /* -- Enumurations -- */
17 
18 /* -- Types -- */
19 
23 typedef struct s_QUEUE_NODE_STRUCT
24 {
25  void *data;
26  int data_type;
28 
29 } queue_node_t;
30 
34 typedef struct s_QUEUE_STRUCT
35 {
36  queue_node_t *head; // Pointer to the head node of the queue
37  queue_node_t *tail; // Pointer to the tail node of the queue
38 
39  int count; // Number of nodes in the queue
40 
41 } queue_t;
42 
43 /* -- Constants -- */
44 
45 /* -- Function Prototypes -- */
46 
47 queue_t *queue_init(void); // Initialize FIFO queue
48 void queue_destroy(queue_t *qs); // Deinitialize FIFO queue
49 void queue_enqueue(queue_t *qs, void *data, int data_type); // Add data structure to the end of the queue
50 void queue_dequeue(queue_t *qs, void *data, int *data_type); // Remove data structure from queue
51 void queue_empty(queue_t *qs); // Empty the queue
52 
53 #endif /* __QUEUE_H */
queue_node_t * tail
Definition: queue.h:37
queue_node_t * head
Definition: queue.h:36
void queue_enqueue(queue_t *qs, void *data, int data_type)
Definition: queue.c:62
int count
Definition: queue.h:39
queue_t * queue_init(void)
Definition: queue.c:29
void queue_destroy(queue_t *qs)
Definition: queue.c:47
void queue_empty(queue_t *qs)
Definition: queue.c:193
Queue structure.
Definition: queue.h:34
struct s_QUEUE_NODE_STRUCT * next
Definition: queue.h:27
Queue node structure.
Definition: queue.h:23
struct s_QUEUE_STRUCT queue_t
Queue structure.
void queue_dequeue(queue_t *qs, void *data, int *data_type)
Definition: queue.c:132
struct s_QUEUE_NODE_STRUCT queue_node_t
Queue node structure.