51 #ifndef QF_EQUEUE_CTR_SIZE
60 #define QF_EQUEUE_CTR_SIZE 1U
66 #if (QF_EQUEUE_CTR_SIZE == 1U)
73 #elif (QF_EQUEUE_CTR_SIZE == 2U)
75 #elif (QF_EQUEUE_CTR_SIZE == 4U)
78 #error "QF_EQUEUE_CTR_SIZE defined incorrectly, expected 1U, 2U, or 4U"
unsigned int uint16_t
exact-width 16-bit unsigned int
unsigned int uint_fast16_t
fast at-least 16-bit unsigned int
unsigned long int uint32_t
exact-width 32-bit unsigned int
unsigned char uint8_t
exact-width 8-bit unsigned int
unsigned int uint_fast8_t
fast at-least 8-bit unsigned int
QActive active object (based on QP::QHsm implementation)
Native QF Event Queue class.
QEQueueCtr volatile m_head
offset to where next event will be inserted into the buffer
QEQueueCtr getNFree(void) const noexcept
"raw" thread-safe QF event queue operation for obtaining the number of free entries still available i...
bool isEmpty(void) const noexcept
"raw" thread-safe QF event queue operation to find out if the queue is empty
QEQueue & operator=(QEQueue const &)=delete
disallow assignment of QEQueue
QEvt const *volatile m_frontEvt
pointer to event at the front of the queue
QEQueue(QEQueue const &)=delete
disallow copying of QEQueue
QEQueueCtr getNMin(void) const noexcept
"raw" thread-safe QF event queue operation for obtaining the minimum number of free entries ever in t...
QEvt const * get(std::uint_fast8_t const qs_id) noexcept
"raw" thread-safe QF event queue implementation for the Last-In-First-Out (LIFO) event posting.
void init(QEvt const *qSto[], std::uint_fast16_t const qLen) noexcept
Initializes the native QF event queue.
QEvt const ** m_ring
pointer to the start of the ring buffer
void postLIFO(QEvt const *const e, std::uint_fast8_t const qs_id) noexcept
"raw" thread-safe QF event queue implementation for the First-In-First-Out (FIFO) event posting....
QEQueueCtr m_nMin
minimum number of free events ever in the ring buffer.
bool post(QEvt const *const e, std::uint_fast16_t const margin, std::uint_fast8_t const qs_id) noexcept
"raw" thread-safe QF event queue implementation for the event posting (FIFO). You can call this funct...
QEQueue(void) noexcept
public default constructor
QEQueueCtr volatile m_tail
offset of where next event will be extracted from the buffer
QEQueueCtr m_end
offset of the end of the ring buffer from the start of the buffer
QEQueueCtr volatile m_nFree
number of free events in the ring buffer
Ticker Active Object class.
Extended (blocking) thread of the QXK preemptive kernel.
namespace associated with the QP/C++ framework
std::uint8_t QEQueueCtr
The data type to store the ring-buffer counters based on the macro QF_EQUEUE_CTR_SIZE.