SuperTinyKernel™ RTOS 1.06.x
Lightweight, high-performance, deterministic, bare-metal C++ RTOS for resource-constrained embedded systems. MIT Open Source License.
Loading...
Searching...
No Matches
StkMessageQueue Class Reference
Collaboration diagram for StkMessageQueue:

Public Member Functions

 StkMessageQueue (uint32_t cap, uint32_t msz, const char *name, uint8_t *ext_buf)
 StkMessageQueue (uint32_t cap, uint32_t msz, const char *name)
 ~StkMessageQueue ()

Static Public Member Functions

static uint8_t * AllocBuffer (uint32_t cap, uint32_t msz)

Public Attributes

stk::sync::MessageQueue m_mq
bool m_bf_owned
bool m_cb_owned

Private Member Functions

 STK_NONCOPYABLE_CLASS (StkMessageQueue)

Detailed Description

Definition at line 405 of file cmsis_os2_stk.cpp.

Constructor & Destructor Documentation

◆ StkMessageQueue() [1/2]

StkMessageQueue::StkMessageQueue ( uint32_t cap,
uint32_t msz,
const char * name,
uint8_t * ext_buf )
inlineexplicit

Definition at line 411 of file cmsis_os2_stk.cpp.

412 : m_mq(ext_buf, static_cast<size_t>(cap), static_cast<size_t>(msz)),
413 m_bf_owned(false), m_cb_owned(true)
414 {
415 m_mq.SetTraceName(name);
416 }
stk::sync::MessageQueue m_mq

References m_bf_owned, m_cb_owned, and m_mq.

Referenced by STK_NONCOPYABLE_CLASS().

Here is the caller graph for this function:

◆ StkMessageQueue() [2/2]

StkMessageQueue::StkMessageQueue ( uint32_t cap,
uint32_t msz,
const char * name )
inlineexplicit

Definition at line 419 of file cmsis_os2_stk.cpp.

420 : m_mq(AllocBuffer(cap, msz), static_cast<size_t>(cap), static_cast<size_t>(msz)),
421 m_bf_owned(m_mq.IsStorageValid()), m_cb_owned(true)
422 {
423 m_mq.SetTraceName(name);
424 }
static uint8_t * AllocBuffer(uint32_t cap, uint32_t msz)

References AllocBuffer(), m_bf_owned, m_cb_owned, and m_mq.

Here is the call graph for this function:

◆ ~StkMessageQueue()

StkMessageQueue::~StkMessageQueue ( )
inline

Definition at line 426 of file cmsis_os2_stk.cpp.

427 {
428 if (m_bf_owned)
429 {
430 delete[] m_mq.GetBuffer();
431 }
432 }

References m_bf_owned, and m_mq.

Member Function Documentation

◆ AllocBuffer()

uint8_t * StkMessageQueue::AllocBuffer ( uint32_t cap,
uint32_t msz )
inlinestatic

Definition at line 434 of file cmsis_os2_stk.cpp.

435 {
436 uint8_t *const ret = new (std::nothrow) uint8_t[static_cast<size_t>(cap) * msz];
437 STK_ASSERT(ret != nullptr); // fail in Debug: increase Heap size in linker settings
438 return ret;
439 }
#define STK_ASSERT(e)
Runtime assertion. Halts execution if the expression e evaluates to false.
Definition stk_defs.h:409

References STK_ASSERT.

Referenced by StkMessageQueue().

Here is the caller graph for this function:

◆ STK_NONCOPYABLE_CLASS()

StkMessageQueue::STK_NONCOPYABLE_CLASS ( StkMessageQueue )
private

References StkMessageQueue().

Here is the call graph for this function:

Member Data Documentation

◆ m_bf_owned

bool StkMessageQueue::m_bf_owned

Definition at line 443 of file cmsis_os2_stk.cpp.

Referenced by StkMessageQueue(), StkMessageQueue(), and ~StkMessageQueue().

◆ m_cb_owned

bool StkMessageQueue::m_cb_owned

Definition at line 444 of file cmsis_os2_stk.cpp.

Referenced by StkMessageQueue(), and StkMessageQueue().

◆ m_mq


The documentation for this class was generated from the following file: