Tramway SDK
Public Member Functions | Protected Attributes | List of all members
tram::StackPool< T > Class Template Reference

Allocator. More...

#include <stackpool.h>

Public Member Functions

constexpr StackPool (std::string name, size_t size)
 
constexpr StackPool (std::string name, size_t max_size, std::initializer_list< T > list)
 
T * AddNew (size_t units)
 
T * allocate (size_t units)
 
void Reset ()
 
void reset ()
 
size_t size ()
 
T * begin ()
 
T * end ()
 

Protected Attributes

std::string name
 
size_t allocated_size
 
size_t available_size
 
T * first
 
T * last
 

Detailed Description

template<typename T>
class tram::StackPool< T >

Allocator.

Very simple allocator for data types that don't need their destructors called. Just call allocate() and specify the size of the array that you want to allocated. Use the pointer to write and store data. After you are done, you can reset all of the allocated memory with reset().

Constructor & Destructor Documentation

◆ StackPool() [1/2]

template<typename T >
constexpr tram::StackPool< T >::StackPool ( std::string  name,
size_t  size 
)
inlineconstexpr

◆ StackPool() [2/2]

template<typename T >
constexpr tram::StackPool< T >::StackPool ( std::string  name,
size_t  max_size,
std::initializer_list< T >  list 
)
inlineconstexpr

Member Function Documentation

◆ AddNew()

template<typename T >
T * tram::StackPool< T >::AddNew ( size_t  units)
inline

◆ allocate()

template<typename T >
T * tram::StackPool< T >::allocate ( size_t  units)
inline

◆ begin()

template<typename T >
T * tram::StackPool< T >::begin ( )
inline

◆ end()

template<typename T >
T * tram::StackPool< T >::end ( )
inline

◆ Reset()

template<typename T >
void tram::StackPool< T >::Reset ( )
inline

◆ reset()

template<typename T >
void tram::StackPool< T >::reset ( )
inline

◆ size()

template<typename T >
size_t tram::StackPool< T >::size ( )
inline

Member Data Documentation

◆ allocated_size

template<typename T >
size_t tram::StackPool< T >::allocated_size
protected

◆ available_size

template<typename T >
size_t tram::StackPool< T >::available_size
protected

◆ first

template<typename T >
T* tram::StackPool< T >::first
protected

◆ last

template<typename T >
T* tram::StackPool< T >::last
protected

◆ name

template<typename T >
std::string tram::StackPool< T >::name
protected

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