virtmem
virtual memory library for Arduino
virtmem::StaticVAllocP< poolSize, Properties > Class Template Reference

Virtual memory allocator that uses a static array (in regular RAM) as memory pool. More...

#include <static_alloc.h>

Inheritance diagram for virtmem::StaticVAllocP< poolSize, Properties >:
virtmem::VAlloc< Properties, StaticVAllocP< poolSize, Properties > > virtmem::BaseVAlloc

Public Member Functions

 StaticVAllocP (void)
 Constructs (but not initializes) the allocator.
 
- Public Member Functions inherited from virtmem::VAlloc< Properties, StaticVAllocP< poolSize, Properties > >
VPtr< T, StaticVAllocP< poolSize, Properties > > alloc (VPtrSize size=sizeof(T))
 Allocates memory from the linked virtual memory allocator. More...
 
void free (VPtr< T, StaticVAllocP< poolSize, Properties > > &p)
 Frees a block of virtual memory. More...
 
VPtr< T, StaticVAllocP< poolSize, Properties > > newClass (VPtrSize size=sizeof(T))
 Allocates memory and constructs data type. More...
 
void deleteClass (VPtr< T, StaticVAllocP< poolSize, Properties > > &p)
 Destructs data type and frees memory. More...
 
VPtr< T, StaticVAllocP< poolSize, Properties > > newArray (VPtrSize elements)
 Allocates and constructs an array of objects. More...
 
void deleteArray (VPtr< T, StaticVAllocP< poolSize, Properties > > &p)
 Destructs and frees an array of objects. More...
 
- Public Member Functions inherited from virtmem::BaseVAlloc
void start (void)
 Starts the allocator. More...
 
void stop (void)
 Deinitializes the allocator. More...
 
void setPoolSize (VPtrSize ps)
 Sets the total size of the memory pool. More...
 
VPtrNum allocRaw (VPtrSize size)
 Allocates a piece of raw (virtual) memory. More...
 
void freeRaw (VPtrNum ptr)
 Frees a memory block for re-usage. More...
 
void * read (VPtrNum p, VPtrSize size)
 Reads a raw block of (virtual) memory. More...
 
void write (VPtrNum p, const void *d, VPtrSize size)
 Writes a piece of raw data to (virtual) memory. More...
 
void flush (void)
 Synchronizes all big memory pages. More...
 
void clearPages (void)
 Synchronizes and clears all big memory pages. More...
 
uint8_t getFreeBigPages (void) const
 
uint8_t getUnlockedSmallPages (void) const
 Returns amount of small pages which are not locked.
 
uint8_t getUnlockedMediumPages (void) const
 Returns amount of medium pages which are not locked.
 
uint8_t getUnlockedBigPages (void) const
 Returns amount of big pages which are not locked.
 
uint8_t getSmallPageCount (void) const
 Returns total amount of small pages.
 
uint8_t getMediumPageCount (void) const
 Returns total amount of medium pages.
 
uint8_t getBigPageCount (void) const
 Returns total amount of big pages.
 
VirtPageSize getSmallPageSize (void) const
 Returns the size of a small page.
 
VirtPageSize getMediumPageSize (void) const
 Returns the size of a medium page.
 
VirtPageSize getBigPageSize (void) const
 Returns the size of a big page.
 
VPtrSize getPoolSize (void) const
 Returns the size the memory pool. More...
 
VPtrSize getMemUsed (void) const
 Returns total memory used.
 
VPtrSize getMaxMemUsed (void) const
 Returns the maximum memory used so far.
 
uint32_t getBigPageReads (void) const
 Returns the times big pages were read (swapped).
 
uint32_t getBigPageWrites (void) const
 Returns the times big pages written (synchronized).
 
uint32_t getBytesRead (void) const
 Returns the amount of bytes read as a result of page swaps.
 
uint32_t getBytesWritten (void) const
 Returns the amount of bytes written as a results of page swaps.
 
void resetStats (void)
 Reset all statistics. Called by start()
 

Additional Inherited Members

- Public Types inherited from virtmem::VAlloc< Properties, StaticVAllocP< poolSize, Properties > >
using VPtr = virtmem::VPtr< T, StaticVAllocP< poolSize, Properties > >
 
- Static Public Member Functions inherited from virtmem::VAlloc< Properties, StaticVAllocP< poolSize, Properties > >
static VAllocgetInstance (void)
 Returns a pointer to the instance of the class. More...
 
- Protected Member Functions inherited from virtmem::BaseVAlloc
void writeZeros (VPtrNum start, VPtrSize n)
 Writes zeros to raw virtual memory. Can be used to initialize the memory pool. More...
 

Detailed Description

template<uint32_t poolSize = VIRTMEM_DEFAULT_POOLSIZE, typename Properties = DefaultAllocProperties>
class virtmem::StaticVAllocP< poolSize, Properties >

Virtual memory allocator that uses a static array (in regular RAM) as memory pool.

This allocator does not have any dependencies and is mainly provided for testing.

Template Parameters
poolSizeThe size of the memory pool.
PropertiesAllocator properties, see DefaultAllocProperties
Note
Since the pool size must be given when instantiating the allocator, the setPoolSize function is not available for this allocator.
See also
Using virtual memory (tutorial)

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