Proto  3.2
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
Proto::Stack< MEM > Class Template Reference

#include <Proto_Stack.H>

Public Member Functions

 Stack (size_t a_capacity)
 Constructor. More...
 
 ~Stack ()
 Destructor. More...
 
void * alloc (size_t a_sz)
 Public Allocate. More...
 
void toggleStack (bool a_flag)
 Toggle Stack. More...
 
bool enabled ()
 Query Stack Active. More...
 
size_t unused ()
 Query Unused. More...
 
size_t used ()
 Query Unused. More...
 

Static Public Member Functions

static Stack< MEM > & getStack ()
 Get Stack Singleton. More...
 

Private Member Functions

void * doAlloc (size_t a_increment)
 Private Allocate. More...
 
void freeStack ()
 Free Stack. More...
 

Private Attributes

bool m_useStack
 
char * m_stack
 
char * m_top
 
size_t m_capacity
 
std::stack< size_t > m_increments
 
int m_bufferIndex
 
bool m_hasOverflow
 
std::shared_ptr< Stack< MEM > > m_overflow
 

Constructor & Destructor Documentation

◆ Stack()

template<MemType MEM = MEMTYPE_DEFAULT>
Proto::Stack< MEM >::Stack ( size_t  a_capacity)
inline

◆ ~Stack()

template<MemType MEM = MEMTYPE_DEFAULT>
Proto::Stack< MEM >::~Stack ( )
inline

Destructor.

References Proto::Stack< MEM >::m_stack, and protoFree.

Member Function Documentation

◆ getStack()

template<MemType MEM = MEMTYPE_DEFAULT>
static Stack<MEM>& Proto::Stack< MEM >::getStack ( )
inlinestatic

Get Stack Singleton.

References PR_STACK_ALLOC.

◆ alloc()

template<MemType MEM = MEMTYPE_DEFAULT>
void* Proto::Stack< MEM >::alloc ( size_t  a_sz)
inline

◆ toggleStack()

template<MemType MEM = MEMTYPE_DEFAULT>
void Proto::Stack< MEM >::toggleStack ( bool  a_flag)
inline

◆ enabled()

template<MemType MEM = MEMTYPE_DEFAULT>
bool Proto::Stack< MEM >::enabled ( )
inline

Query Stack Active.

References Proto::Stack< MEM >::m_useStack.

◆ unused()

template<MemType MEM = MEMTYPE_DEFAULT>
size_t Proto::Stack< MEM >::unused ( )
inline

◆ used()

template<MemType MEM = MEMTYPE_DEFAULT>
size_t Proto::Stack< MEM >::used ( )
inline

◆ doAlloc()

template<MemType MEM = MEMTYPE_DEFAULT>
void* Proto::Stack< MEM >::doAlloc ( size_t  a_increment)
inlineprivate

◆ freeStack()

template<MemType MEM = MEMTYPE_DEFAULT>
void Proto::Stack< MEM >::freeStack ( )
inlineprivate

Member Data Documentation

◆ m_useStack

template<MemType MEM = MEMTYPE_DEFAULT>
bool Proto::Stack< MEM >::m_useStack
private

◆ m_stack

template<MemType MEM = MEMTYPE_DEFAULT>
char* Proto::Stack< MEM >::m_stack
private

◆ m_top

template<MemType MEM = MEMTYPE_DEFAULT>
char* Proto::Stack< MEM >::m_top
private

◆ m_capacity

template<MemType MEM = MEMTYPE_DEFAULT>
size_t Proto::Stack< MEM >::m_capacity
private

◆ m_increments

template<MemType MEM = MEMTYPE_DEFAULT>
std::stack<size_t> Proto::Stack< MEM >::m_increments
private

◆ m_bufferIndex

template<MemType MEM = MEMTYPE_DEFAULT>
int Proto::Stack< MEM >::m_bufferIndex
private

◆ m_hasOverflow

template<MemType MEM = MEMTYPE_DEFAULT>
bool Proto::Stack< MEM >::m_hasOverflow
private

◆ m_overflow

template<MemType MEM = MEMTYPE_DEFAULT>
std::shared_ptr<Stack<MEM> > Proto::Stack< MEM >::m_overflow
private

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