Queue 2.1
Queue handling library
Loading...
Searching...
No Matches
cppQueue.h
Go to the documentation of this file.
1
8/****************************************************************/
9#ifndef CPPQUEUE_H_
10 #define CPPQUEUE_H_
11
12#include <cinttypes>
13#include <cstddef>
14/****************************************************************/
15
16
20typedef enum {
21 FIFO = 0,
22 LIFO = 1
24
25
30{
31private:
32 cppQueueType impl;
33 bool ovw;
34 bool dynamic;
35 size_t queue_sz;
36 size_t rec_sz;
37 uint16_t rec_nb;
38 uint8_t * queue;
39
40 uint16_t in;
41 uint16_t out;
42 uint16_t cnt;
43 uint16_t init;
44
45 inline bool _isInitialized(void) const __attribute__((always_inline));
46 inline bool _isEmpty(void) const __attribute__((always_inline));
47 inline bool _isFull(void) const __attribute__((always_inline));
48 inline uint16_t _getCount(void) const __attribute__((always_inline));
49public:
59 cppQueue(const size_t size_rec, const uint16_t nb_recs=20, const cppQueueType type=FIFO, const bool overwrite=false, void * const pQDat=NULL, const size_t lenQDat=0);
60
64
67 void flush(void);
68
72 inline void clean(void) __attribute__((always_inline)) {
73 flush(); }
74
80 bool isInitialized(void) const;
81
87 bool isEmpty(void) const;
88
94 bool isFull(void) const;
95
100 uint32_t sizeOf(void) const;
101
105 uint16_t getCount(void) const;
106
111 inline uint16_t nbRecs(void) const __attribute__((always_inline)) {
112 return getCount(); }
113
117 uint16_t getRemainingCount(void) const;
118
125 bool push(const void * const record) __attribute__((nonnull));
126
135 bool pop(void * const record) __attribute__((nonnull));
136
146 inline bool pull(void * const record) __attribute__((nonnull,always_inline)) {
147 return pop(record); }
148
158 bool peek(void * const record) __attribute__((nonnull));
159
168 bool drop(void);
169
180 bool peekIdx(void * const record, const uint16_t idx) __attribute__((nonnull));
181
191 bool peekPrevious(void * const record) __attribute__((nonnull));
192};
193
194
195/****************************************************************/
196#endif /* CPPQUEUE_H_ */
197/****************************************************************/
bool always_inline
Definition cppQueue.h:146
void clean(void) __attribute__((always_inline))
Clean queue, restarting from empty queue.
Definition cppQueue.h:72
bool isEmpty(void) const
get emptiness state of the queue
uint32_t sizeOf(void) const
get size of queue
bool peekIdx(void *const record, const uint16_t idx) __attribute__((nonnull))
Peek record at index from queue.
bool pop(void *const record) __attribute__((nonnull))
Pop record from queue.
uint16_t getRemainingCount(void) const
get number of records left in the queue
cppQueue(const size_t size_rec, const uint16_t nb_recs=20, const cppQueueType type=FIFO, const bool overwrite=false, void *const pQDat=NULL, const size_t lenQDat=0)
cppQueue constructor
bool pull(void *const record) __attribute__((nonnull
Pull record from queue (same as pop)
bool isFull(void) const
get fullness state of the queue
bool drop(void)
Drop current record from queue.
void flush(void)
Flush queue, restarting from empty queue.
bool peekPrevious(void *const record) __attribute__((nonnull))
Peek previous record from queue.
~cppQueue()
cppQueue destructor: release dynamically allocated queue
uint16_t nbRecs(void) const __attribute__((always_inline))
get number of records in the queue (same as getCount)
Definition cppQueue.h:111
uint16_t getCount(void) const
get number of records in the queue
bool push(const void *const record) __attribute__((nonnull))
Push record to queue.
bool isInitialized(void) const
get initialization state of the queue
bool peek(void *const record) __attribute__((nonnull))
Peek record from queue.
cppQueueType
cppQueue behavior enumeration (FIFO, LIFO)
Definition cppQueue.h:20
@ FIFO
First In First Out behavior.
Definition cppQueue.h:21
@ LIFO
Last In First Out behavior.
Definition cppQueue.h:22