FreeRTOS-Cpp
|
Class that encapsulates the functionality of a FreeRTOS message buffer. More...
#include <FreeRTOS/MessageBuffer.hpp>
Public Member Functions | |
MessageBuffer (size_t size) | |
Construct a new MessageBuffer object by calling MessageBufferHandle_t xMessageBufferCreate( size_t xBufferSizeBytes ) More... | |
MessageBuffer (const MessageBuffer &)=delete | |
MessageBuffer & | operator= (const MessageBuffer &)=delete |
MessageBuffer (MessageBuffer &&) noexcept=default | |
MessageBuffer & | operator= (MessageBuffer &&) noexcept=default |
![]() | |
MessageBufferBase (const MessageBufferBase &)=delete | |
MessageBufferBase & | operator= (const MessageBufferBase &)=delete |
bool | isValid () const |
Function that checks if the underlying message buffer handle is not NULL. This should be used to ensure a message buffer has been created correctly. More... | |
size_t | send (const void *data, const size_t length, const TickType_t ticksToWait=portMAX_DELAY) const |
Function that calls size_t xMessageBufferSend( MessageBufferHandle_t xMessageBuffer, const void *pvTxData, size_t xDataLengthBytes, TickType_t xTicksToWait ) More... | |
size_t | sendFromISR (bool &higherPriorityTaskWoken, const void *data, const size_t length) const |
Function that calls size_t xMessageBufferSendFromISR( MessageBufferHandle_t xMessageBuffer, const void *pvTxData, size_t xDataLengthBytes, BaseType_t *pxHigherPriorityTaskWoken ) More... | |
size_t | sendFromISR (const void *data, const size_t length) const |
Function that calls size_t xMessageBufferSendFromISR( MessageBufferHandle_t xMessageBuffer, const void *pvTxData, size_t xDataLengthBytes, BaseType_t *pxHigherPriorityTaskWoken ) More... | |
size_t | receive (void *buffer, const size_t bufferLength, const TickType_t ticksToWait=portMAX_DELAY) const |
Function that calls size_t xMessageBufferReceive( MessageBufferHandle_t xMessageBuffer, void *pvRxData, size_t xBufferLengthBytes, TickType_t xTicksToWait ) More... | |
size_t | receiveFromISR (bool &higherPriorityTaskWoken, void *buffer, const size_t bufferLength) const |
Function that calls size_t xMessageBufferReceiveFromISR( MessageBufferHandle_t xMessageBuffer, void *pvRxData, size_t xBufferLengthBytes, BaseType_t *pxHigherPriorityTaskWoken ) More... | |
size_t | receiveFromISR (void *buffer, const size_t bufferLength) const |
Function that calls size_t xMessageBufferReceiveFromISR( MessageBufferHandle_t xMessageBuffer, void *pvRxData, size_t xBufferLengthBytes, BaseType_t *pxHigherPriorityTaskWoken ) More... | |
size_t | spacesAvailable () const |
Function that calls size_t xMessageBufferSpacesAvailable( MessageBufferHandle_t xMessageBuffer ) More... | |
bool | reset () const |
Function that calls BaseType_t xMessageBufferReset( MessageBufferHandle_t xMessageBuffer ) More... | |
bool | isEmpty () const |
Function that calls BaseType_t xMessageBufferIsEmpty( MessageBufferHandle_t xMessageBuffer ) More... | |
bool | isFull () const |
Function that calls BaseType_t xMessageBufferIsFull( MessageBufferHandle_t xMessageBuffer ) More... | |
Additional Inherited Members | |
![]() | |
static void * | operator new (size_t, void *ptr) |
static void * | operator new[] (size_t, void *ptr) |
static void * | operator new (size_t)=delete |
static void * | operator new[] (size_t)=delete |
Class that encapsulates the functionality of a FreeRTOS message buffer.
A message buffer using dynamically allocated memory from the FreeRTOS heap. See FreeRTOS::StaticMessageBuffer for a version that uses statically allocated memory (memory that is allocated at compile time).
|
inlineexplicit |
Construct a new MessageBuffer object by calling MessageBufferHandle_t xMessageBufferCreate( size_t xBufferSizeBytes )
size | The total number of bytes (not messages) the message buffer will be able to hold at any one time. When a message is written to the message buffer an additional sizeof( size_t ) bytes are also written to store the message's length. sizeof( size_t ) is typically 4 bytes on a 32-bit architecture, so on most 32-bit architectures a 10 byte message will take up 14 bytes of message buffer space. |
Example Usage