r8brain-free-src
High-quality pro audio sample rate converter library
 
Loading...
Searching...
No Matches
r8b::CFixedBuffer< T > Class Template Reference

Templated memory buffer class for element buffers of fixed capacity. More...

#include <r8bbase.h>

Inheritance diagram for r8b::CFixedBuffer< T >:

Public Member Functions

 CFixedBuffer (const int Capacity)
 Constructor allocates memory so that the specified number of elements of type T can be stored in this buffer object.
 
void alloc (const int Capacity)
 Allocates memory so that the specified number of elements of type T can be stored in this buffer object.
 
void free ()
 Deallocates a previously allocated buffer.
 
 operator T* () const
 Returns pointer to the first element of the allocated buffer, nullptr, if not allocated.
 
void realloc (const int PrevCapacity, const int NewCapacity)
 Reallocates memory so that the specified number of elements of type T can be stored in this buffer object. Previously allocated data is copied to the new memory buffer.
 

Detailed Description

template<typename T>
class r8b::CFixedBuffer< T >

Templated memory buffer class for element buffers of fixed capacity.

Fixed memory buffer object. Supports allocation of a fixed amount of memory. Does not store buffer's capacity - the user should know the actual capacity of the buffer. Does not feature "internal" storage, memory is always allocated via the R8B_MEMALLOCCLASS class's functions. Thus the object of this class can be moved in memory.

This class manages memory space only - it does not perform element class construction nor destruction operations.

This class applies 64-byte memory address alignment to the allocated data block.

Template Parameters
TThe type of the stored elements (e.g., double).

Constructor & Destructor Documentation

◆ CFixedBuffer()

template<typename T>
r8b::CFixedBuffer< T >::CFixedBuffer ( const int Capacity)

Constructor allocates memory so that the specified number of elements of type T can be stored in this buffer object.

Parameters
CapacityStorage for this number of elements to allocate.

Member Function Documentation

◆ alloc()

template<typename T>
void r8b::CFixedBuffer< T >::alloc ( const int Capacity)

Allocates memory so that the specified number of elements of type T can be stored in this buffer object.

Parameters
CapacityStorage for this number of elements to allocate.

◆ realloc()

template<typename T>
void r8b::CFixedBuffer< T >::realloc ( const int PrevCapacity,
const int NewCapacity )

Reallocates memory so that the specified number of elements of type T can be stored in this buffer object. Previously allocated data is copied to the new memory buffer.

Parameters
PrevCapacityPrevious capacity of this buffer.
NewCapacityStorage for this number of elements to allocate.