data_structures
queue.h
Go to the documentation of this file.
1 /* ************************************************************************** */
3 /* */
4 /* ::: :::::::: */
5 /* queue.h :+: :+: :+: */
6 /* +:+ +:+ +:+ */
7 /* By: unite <marvin@42.fr> +#+ +:+ +#+ */
8 /* +#+#+#+#+#+ +#+ */
9 /* Created: 2020/07/16 17:17:07 by unite #+# #+# */
10 /* Updated: 2020/09/07 22:21:59 by unite ### ########.fr */
11 /* */
12 /* ************************************************************************** */
13 
14 #ifndef QUEUE_H
15 
16 # define QUEUE_H
17 
18 # include <errno.h>
19 # include <sys/types.h>
20 # include "types.h"
21 # include "list.h"
22 # include "utils.h"
23 
29 typedef struct s_list t_queue;
30 
36 void queue_enqueue(t_queue *queue, const void *data);
37 
44 void *queue_dequeue(t_queue *queue);
45 
53 void *queue_peek(const t_queue *queue);
54 
60 void queue_delete(t_queue *queue);
61 
67 size_t queue_size(const t_queue *queue);
68 
75 t_queue *queue_new(const t_type *type);
76 
82 t_queue *queue_copy(const t_queue *queue);
83 
84 #endif
types.h
queue_new
t_queue * queue_new(const t_type *type)
Allocates memory and initializes an empty queue.
Definition: queue_new.c:16
utils.h
queue_peek
void * queue_peek(const t_queue *queue)
Returns the item in this queue that was least recently added.
Definition: queue_peek.c:16
s_list
Doubly-linked list of generic items.
Definition: list.h:54
s_type
A full representation of a data type, used to achieve polymorphism in the implementation of data stru...
Definition: types.h:47
queue_delete
void queue_delete(t_queue *queue)
Deletes the queue and frees all memory taken by its contents, or does nothing if the argument is NULL...
Definition: queue_delete.c:16
queue_size
size_t queue_size(const t_queue *queue)
Returns the number of items in this queue.
Definition: queue_size.c:16
queue_enqueue
void queue_enqueue(t_queue *queue, const void *data)
Copies the item and adds the copy to the queue.
Definition: queue_enqueue.c:16
s_list::type
const t_type * type
The type of items in this list.
Definition: list.h:59
queue_copy
t_queue * queue_copy(const t_queue *queue)
Copies a queue and all it contents.
Definition: queue_copy.c:16
queue_dequeue
void * queue_dequeue(t_queue *queue)
Removes and returns the item on this queue that was least recently added.
Definition: queue_dequeue.c:16
list.h