10#if !defined(EC_TARRAYSTACK_H)
11#define EC_TARRAYSTACK_H
13#include "GUIException.h"
43 : m_uiStackPointer(0),
53 : m_uiStackPointer(0),
56 m_aElements.SetQuantity(rkSource.
GetQuantity(),
false);
57 eC_Memcpy(m_aElements.GetArray(), rkSource.m_aElements.GetArray(),
58 m_aElements.GetQuantity() *
sizeof(T));
75 m_aElements.SetQuantity(rkSource.
GetQuantity(),
false);
76 eC_Memcpy(m_aElements.GetArray(), rkSource.m_aElements.GetArray(),
77 m_aElements.GetQuantity() *
sizeof(T));
78 m_uiStackPointer = rkSource.m_uiStackPointer;
88 {
return m_uiStackPointer; }
96 {
return (m_uiStackPointer == 0); }
105 if (m_uiStackPointer >= m_aElements.GetQuantity())
107 m_aElements.SetQuantity(
108 m_aElements.GetQuantity() + m_uiResizeBy,
true);
110 m_aElements[m_uiStackPointer] = e;
123#ifdef GUILIANI_USE_EXCEPTIONS
124 if (m_uiStackPointer == 0)
130 return m_aElements[m_uiStackPointer];
142#ifdef GUILIANI_USE_EXCEPTIONS
143 if (m_uiStackPointer == 0)
148 return m_aElements[m_uiStackPointer - 1];
153 eC_TArray<T> m_aElements;
155 eC_UInt m_uiStackPointer;
160 const eC_UInt m_uiResizeBy;
This is the base class for Guiliani exceptions.
Definition: GUIException.h:42
Exception thrown when read operations Pop() / Top() are called on an empty stack.
Definition: eC_TArrayStack.h:21
Am array based stack container.
Definition: eC_TArrayStack.h:37
eC_Bool IsEmpty() const
Definition: eC_TArrayStack.h:95
void Push(const T &e)
Definition: eC_TArrayStack.h:103
eC_TArrayStack()
Definition: eC_TArrayStack.h:42
eC_TArrayStack< T > & operator=(const eC_TArrayStack< T > &rkSource)
Definition: eC_TArrayStack.h:73
~eC_TArrayStack()
Definition: eC_TArrayStack.h:64
eC_UInt GetQuantity() const
Definition: eC_TArrayStack.h:87
T & Pop()
Definition: eC_TArrayStack.h:121
eC_TArrayStack(const eC_TArrayStack< T > &rkSource)
Definition: eC_TArrayStack.h:52
T & Top() const
Definition: eC_TArrayStack.h:140