Deki 1.3.0
Modular C++ 2D engine for embedded displays and desktop
Loading...
Searching...
No Matches
IMemoryProvider Class Referenceabstract

#include <IMemoryProvider.h>

Inherited by DesktopMemoryProvider.

Public Member Functions

virtual ~IMemoryProvider ()=default
virtual bool Initialize ()=0
 Initialize the memory backend.
virtual void Shutdown ()=0
 Shutdown the memory backend.
virtual bool HasExternalRAM () const =0
 Check if external RAM (PSRAM, SDRAM, etc.) is available.
virtual size_t GetTotalExternalRAM () const =0
 Get total external RAM size in bytes.
virtual size_t GetAvailableExternalRAM () const =0
 Get available (free) external RAM size in bytes.
virtual void * AllocateExternal (size_t size)=0
 Allocate memory from external RAM.
virtual void FreeExternal (void *ptr)=0
 Free memory allocated from external RAM.
virtual bool IsExternalPointer (void *ptr) const =0
 Check if a pointer is in external RAM address range.
virtual void * AllocateInternal (size_t size)
 Allocate memory from internal RAM only (never external).
virtual void FreeInternal (void *ptr)
 Frees a block from AllocateInternal.
virtual size_t GetAvailableInternalRAM () const
 Get available internal RAM size in bytes.

Constructor & Destructor Documentation

◆ ~IMemoryProvider()

virtual IMemoryProvider::~IMemoryProvider ( )
virtualdefault

Member Function Documentation

◆ Initialize()

virtual bool IMemoryProvider::Initialize ( )
pure virtual

Initialize the memory backend.

Returns
true if initialization succeeded

Implemented in DesktopMemoryProvider.

◆ Shutdown()

virtual void IMemoryProvider::Shutdown ( )
pure virtual

Shutdown the memory backend.

Implemented in DesktopMemoryProvider.

◆ HasExternalRAM()

virtual bool IMemoryProvider::HasExternalRAM ( ) const
pure virtual

Check if external RAM (PSRAM, SDRAM, etc.) is available.

Returns
true if external RAM is present and usable

Implemented in DesktopMemoryProvider.

◆ GetTotalExternalRAM()

virtual size_t IMemoryProvider::GetTotalExternalRAM ( ) const
pure virtual

Get total external RAM size in bytes.

Returns
Total external RAM size, 0 if none available

Implemented in DesktopMemoryProvider.

◆ GetAvailableExternalRAM()

virtual size_t IMemoryProvider::GetAvailableExternalRAM ( ) const
pure virtual

Get available (free) external RAM size in bytes.

Returns
Available external RAM size, 0 if none available

Implemented in DesktopMemoryProvider.

◆ AllocateExternal()

virtual void * IMemoryProvider::AllocateExternal ( size_t size)
pure virtual

Allocate memory from external RAM.

Parameters
sizeNumber of bytes to allocate
Returns
Pointer to allocated memory, nullptr if allocation failed

Implemented in DesktopMemoryProvider.

◆ FreeExternal()

virtual void IMemoryProvider::FreeExternal ( void * ptr)
pure virtual

Free memory allocated from external RAM.

Parameters
ptrPointer to memory to free (must have been allocated via AllocateExternal)

Implemented in DesktopMemoryProvider.

◆ IsExternalPointer()

virtual bool IMemoryProvider::IsExternalPointer ( void * ptr) const
pure virtual

Check if a pointer is in external RAM address range.

Parameters
ptrPointer to check
Returns
true if pointer is in external RAM

Implemented in DesktopMemoryProvider.

◆ AllocateInternal()

virtual void * IMemoryProvider::AllocateInternal ( size_t size)
inlinevirtual

Allocate memory from internal RAM only (never external).

Parameters
sizeNumber of bytes to allocate
Returns
Pointer to allocated memory, nullptr if allocation failed

◆ FreeInternal()

virtual void IMemoryProvider::FreeInternal ( void * ptr)
inlinevirtual

Frees a block from AllocateInternal.

Must match that allocator: the default pair is malloc/free; a backend that overrides one overrides both.

◆ GetAvailableInternalRAM()

virtual size_t IMemoryProvider::GetAvailableInternalRAM ( ) const
inlinevirtual

Get available internal RAM size in bytes.

Returns
Available internal RAM size, 0 if not supported

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