This is the documentation for Enlighten.

class Geo GeoAllocationPage

class Geo::GeoAllocationPage

A storage unit for a page based allocation system.

Despite looking like a std::allocator, you cannot fully implement an allocator using this kind of class alone (as allocators do not have state, and clearly, a page has state). As a result, this class is used by the GeoFixedPoolAllocator class, which is a std::allocator.

Note

This class knows nothing of the types of object that it may be storing, it is just raw memory. Hence no constructors or destructors are called, that is the responsibility of the allocator.

Typedefs

Name Description
Geo::s32 TIndexer

The indexing type for the pool.

Functions

Name Description
Allocate()

Assign a slot in this pool, and return a pointer to it.

Create(size_t, TIndexer)

Create a pool big enough to hold maxObjects, of size objectSize.

Deallocate(void *)

Release a single slot back to the pool.

Destroy()

Free the contents of the pool.

MaxObjects()

Returns maximum number of objects that can be held.


void* Geo::GeoAllocationPage::Allocate


public: void * Allocate()


Assign a slot in this pool, and return a pointer to it.


bool Geo::GeoAllocationPage::Create


public: bool Create
(
    size_t objectSize,
    TIndexer maxObjects
)


Create a pool big enough to hold maxObjects, of size objectSize.


void Geo::GeoAllocationPage::Deallocate


public: void Deallocate
(
    void * pStorage
)


Release a single slot back to the pool.


void Geo::GeoAllocationPage::Destroy


public: void Destroy()


Free the contents of the pool.


TIndexer Geo::GeoAllocationPage::MaxObjects


public: TIndexer MaxObjects() const


Returns maximum number of objects that can be held.