The MessageQueue class. Implements a mechanism used to send/receive data between threads. Allows threads to block, waiting for messages to be sent from other contexts.
More...
#include <message.h>
The MessageQueue class. Implements a mechanism used to send/receive data between threads. Allows threads to block, waiting for messages to be sent from other contexts.
- Examples:
- lab8_messages/main.cpp.
Definition at line 210 of file message.h.
◆ ~MessageQueue()
Mark3::MessageQueue::~MessageQueue |
( |
| ) |
|
|
inline |
◆ GetCount()
uint16_t Mark3::MessageQueue::GetCount |
( |
| ) |
|
GetCount.
Return the number of messages pending in the "receive" queue.
- Returns
- Count of pending messages in the queue.
Definition at line 106 of file message.cpp.
◆ Init()
void Mark3::MessageQueue::Init |
( |
void |
| ) |
|
Init.
Initialize the message queue prior to use.
Definition at line 58 of file message.cpp.
◆ operator new()
void* Mark3::MessageQueue::operator new |
( |
size_t |
sz, |
|
|
void * |
pv |
|
) |
| |
|
inline |
◆ Receive() [1/2]
Message * Mark3::MessageQueue::Receive |
( |
| ) |
|
Receive.
Receive a message from the message queue. If the message queue is empty, the thread will block until a message is available.
- Returns
- Pointer to a message object at the head of the queue
- Examples:
- lab8_messages/main.cpp.
Definition at line 64 of file message.cpp.
◆ Receive() [2/2]
Message * Mark3::MessageQueue::Receive |
( |
uint32_t |
u32TimeWaitMS_ | ) |
|
Receive.
Receive a message from the message queue. If the message queue is empty, the thread will block until a message is available for the duration specified. If no message arrives within that duration, the call will return with nullptr.
- Parameters
-
u32TimeWaitMS_ | The amount of time in ms to wait for a message before timing out and unblocking the waiting thread. |
- Returns
- Pointer to a message object at the head of the queue or nullptr on timeout.
Definition at line 70 of file message.cpp.
◆ Receive_i()
Message * Mark3::MessageQueue::Receive_i |
( |
uint32_t |
u32TimeWaitMS_ | ) |
|
|
private |
Receive_i.
Internal function used to abstract timed and un-timed Receive calls.
- Parameters
-
u32TimeWaitMS_ | Time (in ms) to block, 0 for un-timed call. |
- Returns
- Pointer to a message, or 0 on timeout.
Definition at line 76 of file message.cpp.
◆ Send()
void Mark3::MessageQueue::Send |
( |
Message * |
pclSrc_ | ) |
|
Send.
Send a message object into this message queue. Will un-block the first waiting thread blocked on this queue if that occurs.
- Parameters
-
pclSrc_ | Pointer to the message object to add to the queue |
- Examples:
- lab8_messages/main.cpp.
Definition at line 92 of file message.cpp.
◆ m_clLinkList
List object used to store messages.
Definition at line 284 of file message.h.
◆ m_clSemaphore
Counting semaphore used to manage thread blocking.
Definition at line 281 of file message.h.
The documentation for this class was generated from the following files:
- /mnt/c/Users/moslevin/m3-repo2/kernel/src/public/message.h
- /mnt/c/Users/moslevin/m3-repo2/kernel/src/message.cpp