FreeRTOS-Cpp
Public Member Functions | Private Attributes | List of all members
FreeRTOS::StaticMessageBuffer< N > Class Template Reference

Class that encapsulates the functionality of a FreeRTOS message buffer. More...

#include <FreeRTOS/MessageBuffer.hpp>

Inheritance diagram for FreeRTOS::StaticMessageBuffer< N >:
Inheritance graph
[legend]
Collaboration diagram for FreeRTOS::StaticMessageBuffer< N >:
Collaboration graph
[legend]

Public Member Functions

 StaticMessageBuffer ()
 Construct a new StaticMessageBuffer object by calling MessageBufferHandle_t xMessageBufferCreateStatic( size_t xBufferSizeBytes, uint8_t *pucMessageBufferStorageArea, StaticMessageBuffer_t *pxStaticMessageBuffer ) More...
 
 StaticMessageBuffer (const StaticMessageBuffer &)=delete
 
StaticMessageBufferoperator= (const StaticMessageBuffer &)=delete
 
 StaticMessageBuffer (StaticMessageBuffer &&) noexcept=default
 
StaticMessageBufferoperator= (StaticMessageBuffer &&) noexcept=default
 
- Public Member Functions inherited from FreeRTOS::MessageBufferBase
 MessageBufferBase (const MessageBufferBase &)=delete
 
MessageBufferBaseoperator= (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...
 

Private Attributes

StaticMessageBuffer_t staticMessageBuffer
 
uint8_t storage [N] = {0}
 

Additional Inherited Members

- Static Public Member Functions inherited from FreeRTOS::MessageBufferBase
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
 

Detailed Description

template<size_t N>
class FreeRTOS::StaticMessageBuffer< N >

Class that encapsulates the functionality of a FreeRTOS message buffer.

If a message buffer is created using this class then the RAM is provided by the application writer as part of the object instance and allows the RAM to be statically allocated at compile time.

Template Parameters
NThe size, in bytes, of the storage for the message buffer.

Constructor & Destructor Documentation

◆ StaticMessageBuffer()

template<size_t N>
FreeRTOS::StaticMessageBuffer< N >::StaticMessageBuffer ( )
inline

Construct a new StaticMessageBuffer object by calling MessageBufferHandle_t xMessageBufferCreateStatic( size_t xBufferSizeBytes, uint8_t *pucMessageBufferStorageArea, StaticMessageBuffer_t *pxStaticMessageBuffer )

MessageBuffer.hpp

See also
https://www.freertos.org/xMessageBufferCreateStatic.html
Warning
This class contains the storage buffer for the message buffer, so the user should create this object as a global object or with the static storage specifier so that the object instance is not on the stack.

Example Usage

#include <FreeRTOS/MessageBuffer.hpp>
#include <FreeRTOS/Task.hpp>
class MyTask : public FreeRTOS::Task {
public:
void taskFunction() final;
};
void MyTask::taskFunction() {
// Variable to hold the message buffer and it's underlying storage.
// Other code that uses the message buffer can go here.
}
Class that encapsulates the functionality of a FreeRTOS message buffer.
Definition: MessageBuffer.hpp:478
Class that encapsulates the functionality of a FreeRTOS task.
Definition: Task.hpp:1323

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