Rtos API example

Embed: (wiki syntax)

« Back to documentation index

MemoryPool< T, pool_sz > Class Template Reference

MemoryPool< T, pool_sz > Class Template Reference
[MemoryPool class]

Define and manage fixed-size memory pools of objects of a given type. More...

#include <MemoryPool.h>

Inherits NonCopyable< MemoryPool< T, pool_sz > >.

Public Member Functions

 MemoryPool ()
 Create and Initialize a memory pool.
 ~MemoryPool ()
 Destroy a memory pool.
T * alloc (void)
 Allocate a memory block of type T from a memory pool.
T * calloc (void)
 Allocate a memory block of type T from a memory pool and set memory block to zero.
osStatus free (T *block)
 Free a memory block.

Private Member Functions

 MBED_DEPRECATED ("Invalid copy construction of a NonCopyable resource.") NonCopyable(const NonCopyable &)
 NonCopyable copy constructor.
 MBED_DEPRECATED ("Invalid copy assignment of a NonCopyable resource.") NonCopyable &operator
 NonCopyable copy assignment operator.

Detailed Description

template<typename T, uint32_t pool_sz>
class rtos::MemoryPool< T, pool_sz >

Define and manage fixed-size memory pools of objects of a given type.

Template Parameters:
Tdata type of a single object (element).
queue_szmaximum number of objects (elements) in the memory pool.
Note:
Memory considerations: The memory pool data store and control structures will be created on current thread's stack, both for the mbed OS and underlying RTOS objects (static or dynamic RTOS memory pools are not being used).

Definition at line 50 of file MemoryPool.h.


Constructor & Destructor Documentation

MemoryPool (  )

Create and Initialize a memory pool.

Definition at line 54 of file MemoryPool.h.

~MemoryPool (  )

Destroy a memory pool.

Definition at line 67 of file MemoryPool.h.


Member Function Documentation

T* alloc ( void   )

Allocate a memory block of type T from a memory pool.

Returns:
address of the allocated memory block or NULL in case of no memory available.

Definition at line 74 of file MemoryPool.h.

T* calloc ( void   )

Allocate a memory block of type T from a memory pool and set memory block to zero.

Returns:
address of the allocated memory block or NULL in case of no memory available.

Definition at line 81 of file MemoryPool.h.

osStatus free ( T *  block )

Free a memory block.

Parameters:
blockaddress of the allocated memory block to be freed.
Returns:
osOK on successful deallocation, osErrorParameter if given memory block id is NULL or invalid, or osErrorResource if given memory block is in an invalid memory pool state.

Definition at line 96 of file MemoryPool.h.