18 #if !defined(XALAN_OBJECTSTACKCACHE_HEADER_GUARD) 19 #define XALAN_OBJECTSTACKCACHE_HEADER_GUARD 34 XALAN_CPP_NAMESPACE_BEGIN
39 #if defined(XALAN_NO_DEFAULT_TEMPLATE_ARGUMENTS) 40 class CreateFunctorType,
41 class DeleteFunctorType,
42 class ResetFunctorType>
58 MemoryManager& theManager,
59 XalanSize_t initialListSize = 0) :
63 m_numObjectsOnStack(0)
65 m_stack.
reserve(initialListSize);
70 #if !defined(XALAN_NO_STD_NAMESPACE) 83 if (m_stack.
size() == m_numObjectsOnStack)
87 ++m_numObjectsOnStack;
92 return m_stack[m_numObjectsOnStack++];
99 assert (m_numObjectsOnStack > 0);
101 return m_stack[m_numObjectsOnStack-1];
107 assert(m_numObjectsOnStack > 0);
109 return m_stack[--m_numObjectsOnStack];
117 for (iterator = m_stack.
begin(); iterator < m_stack.
end(); iterator++)
149 template<
class ObjectType>
158 BaseClassType(initialListSize)
165 XALAN_CPP_NAMESPACE_END
ResetFunctorType m_resetFunctor
CreateFunctorType m_createFunctor
void push_back(const value_type &data)
void reserve(size_type theSize)
XalanObjectStackCacheDefault(XalanSize_t initialListSize=0)
ObjectType CacheObjectType
const MemoryManager & getMemoryManager() const
XalanVector< ObjectType * > VectorType
DeleteFunctorType m_deleteFunctor
XalanObjectStackCache< ObjectType, DefaultCacheCreateFunctor< ObjectType >, DeleteFunctor< ObjectType >, DefaultCacheResetFunctor< ObjectType > > BaseClassType
XalanObjectStackCache(MemoryManager &theManager, XalanSize_t initialListSize=0)