This is the documentation for Enlighten.

class Geo GeoMemoryPool

template<class T>
class Geo::GeoMemoryPool

A memory pool.

Variables

Name Description
const u32 MemoryAlignment = GEO_ALIGN_OF(T) > GEO_ALIGN_OF(Geo::u32) ? GEO_ALIGN_OF(T) : GEO_ALIGN_OF(Geo::u32)

The required memory alignment.

Functions

Name Description
Allocate()

Allocate object.

AllocateIndex()

Returns the index of a newly allocated object within the pool.

CalculateSize(Geo::u32)

Calculate required memory size.

Deallocate(T *)

Deallocate object.

DeallocateIndex(Geo::u32)

Deallocates the object at the specified index within the pool.

GeoMemoryPool(void *, Geo::u32)

Create a memory pool.

GetIndex(const T *)

Returns the index of the specified object within the pool.

GetObject(Geo::u32)

Returns the object at the specified index within the pool.

IsEmpty()

Returns true if no more blocks can be allocated.


T* Geo::GeoMemoryPool< T >::Allocate


public: T * Allocate()


Allocate object.


Geo::u32 Geo::GeoMemoryPool< T >::AllocateIndex


public: Geo::u32 AllocateIndex()


Returns the index of a newly allocated object within the pool.


static Geo::u32 Geo::GeoMemoryPool< T >::CalculateSize


public: Geo::u32 CalculateSize
(
    Geo::u32 count
)


Calculate required memory size.

Parameters
[in] count

The maximum number of objects the memory pool can allocate.


void Geo::GeoMemoryPool< T >::Deallocate


public: void Deallocate
(
    T * ptr
)


Deallocate object.


void Geo::GeoMemoryPool< T >::DeallocateIndex


public: void DeallocateIndex
(
    Geo::u32 index
)


Deallocates the object at the specified index within the pool.


Geo::GeoMemoryPool< T >::GeoMemoryPool


public: GeoMemoryPool
(
    void * memory,
    Geo::u32 count
)


Create a memory pool.

Parameters
[in] memory

The start of the allocated memory space.

[in] count

The maximum number of objects the memory pool can allocate.


Geo::u32 Geo::GeoMemoryPool< T >::GetIndex


public: Geo::u32 GetIndex
(
    const T * ptr
) const


Returns the index of the specified object within the pool.


T* Geo::GeoMemoryPool< T >::GetObject


public: T * GetObject
(
    Geo::u32 index
) const


Returns the object at the specified index within the pool.


bool Geo::GeoMemoryPool< T >::IsEmpty


public: bool IsEmpty() const


Returns true if no more blocks can be allocated.