-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathqueue.c
More file actions
82 lines (70 loc) · 2.5 KB
/
queue.c
File metadata and controls
82 lines (70 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/* ************************************************************************** */
/* ____ _ _____ ____ _ _ _ _____ _ _ ____ ____ */
/* / ___| / \ | ___| _ \ / \ | \ | | |_ _| || | | _ \/ ___| */
/* \___ \ / _ \ | |_ | |_) | / _ \ | \| | | | | || |_| | | \___ \ */
/* ___) / ___ \| _| | _ < / ___ \| |\ | | | |__ _| |_| |___) | */
/* |____/_/ \_|_| |_| \_/_/ \_|_| \_| |_| |_| |____/|____/ */
/* */
/**
* @copyright 2023, SAFRAN T4DS, ALL RIGHTS RESERVED
* @file queue.c
* @author Antoine GAGNIERE
* @brief Realtime FIFO buffer
*/
/* ************************************************************************** */
#include "o2s/queue.h"
/** Release the allocated memory @see deque_free */
void queue_free(queue_t* self)
{
deque_free(self);
}
/** Add a single element to the queue @see deque_push_back */
bool queue_push(queue_t* self, const void* element)
{
return deque_push_back(self, element);
}
/** Add @p count elements to the queue @see deque_push_back_n */
bool queue_push_n(queue_t* self, const void* elements, size_t count)
{
return deque_push_back_n(self, elements, count);
}
/** Pop the first element of the queue @see deque_pop_front */
bool queue_pop(queue_t* self, void* destination)
{
return deque_pop_front(self, destination);
}
/** Pop the first @p count elements of the queue @see deque_pop_front_n */
bool queue_pop_n(queue_t* self, void* destination, size_t count)
{
return deque_pop_front_n(self, destination, count);
}
/** Number of elements that can be added @see deque_room */
size_t queue_room(const queue_t* self)
{
return deque_room(self);
}
/** Number of elements currently in the queue @see deque_count */
size_t queue_count(const queue_t* self)
{
return deque_count(self);
}
/** Number of elements that can be stored in the queue @see deque_capacity */
size_t queue_capacity(const queue_t* self)
{
return deque_capacity(self);
}
/** Next element to be popped @see deque_first */
void* queue_first(const queue_t* self)
{
return deque_first(self);
}
/** Access an arbitrary queue element @see deque_get */
void* queue_get(const queue_t* self, size_t index)
{
return deque_get(self, index);
}
/** Move the @p count first elements at the back of @p destination @see deque_pop_front_into_array */
bool queue_pop_into_array(queue_t* self, struct array* destination, size_t count)
{
return deque_pop_front_into_array(self, destination, count);
}