17 #if !defined(REUSABLEARENAALLOCATOR_INCLUDE_GUARD_1357924680)
18 #define REUSABLEARENAALLOCATOR_INCLUDE_GUARD_1357924680
31 XALAN_CPP_NAMESPACE_BEGIN
35 template<
class ObjectType>
37 ReusableArenaBlock<ObjectType> >
66 bool destroyBlocks =
false) :
88 assert ( theObject != 0 );
98 while( iTerator != iEnd
99 && (*iTerator)->blockAvailable() )
101 if ((*iTerator)->ownsBlock(theObject) ==
true)
103 (*iTerator)->destroyObject(theObject);
136 while ( !bResult && rIterator != rEnd )
138 if ((*rIterator)->ownsBlock(theObject))
140 (*rIterator)->destroyObject(theObject);
165 if ( *rIterator == *iTerator)
222 assert( this->
m_blocks.
front()->ownsBlock(theObject) == true );
230 assert ( fullBlock != 0 );
249 while( iTerator != iEnd
250 && (*iTerator)->blockAvailable() )
252 if ((*iTerator)->ownsBlock(theObject) )
264 while( rIterator != rEnd )
266 if ((*rIterator)->ownsBlock(theObject) )
271 if ( *iTerator == *rIterator )
300 if ( (*iTerator)->isEmpty() )
305 (*iTerator)->blockAvailable() )
330 XALAN_CPP_NAMESPACE_END
334 #endif // !defined(REUSABLEARENAALLOCATOR_INCLUDE_GUARD_1357924680)
ReusableArenaAllocator< ObjectType > ThisType
Definition: ReusableArenaAllocator.hpp:48
const_reverse_iterator_ const_reverse_iterator
Definition: XalanList.hpp:210
bool empty() const
Definition: XalanList.hpp:334
ReusableArenaAllocator(MemoryManagerType &theManager, size_type theBlockSize, bool destroyBlocks=false)
Definition: ReusableArenaAllocator.hpp:63
XALAN_CPP_NAMESPACE_BEGIN typedef XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager MemoryManagerType
Definition: XalanMemoryManagement.hpp:39
void push_front(const value_type &data)
Definition: XalanList.hpp:346
ArenaAllocator< ObjectType, ReusableArenaBlockType > BaseClassType
Definition: ReusableArenaAllocator.hpp:46
BaseClassType::size_type size_type
Definition: ReusableArenaBlock.hpp:46
const bool m_destroyBlocks
Definition: ReusableArenaAllocator.hpp:314
void pop_front()
Definition: XalanList.hpp:352
ReusableArenaBlockType::size_type size_type
Definition: ReusableArenaAllocator.hpp:43
static ThisType * create(MemoryManagerType &theManager, size_type theBlockSize)
Definition: ReusableArenaBlock.hpp:128
iterator end()
Definition: XalanList.hpp:273
reverse_iterator_ reverse_iterator
Definition: XalanList.hpp:209
reference front()
Definition: XalanList.hpp:309
virtual bool ownsObject(const ObjectType *theObject) const
Definition: ReusableArenaAllocator.hpp:240
ArenaBlockListType::const_iterator const_iterator
Definition: ReusableArenaAllocator.hpp:53
reverse_iterator rend()
Definition: XalanList.hpp:297
virtual ~ReusableArenaAllocator()
Definition: ReusableArenaAllocator.hpp:73
XalanList< ReusableArenaBlockType * > ArenaBlockListType
Definition: ReusableArenaAllocator.hpp:50
Definition: ReusableArenaAllocator.hpp:36
iterator begin()
Definition: XalanList.hpp:261
Definition: ArenaAllocator.hpp:45
ArenaBlockListType m_blocks
Definition: ArenaAllocator.hpp:213
Xalan implementation of a doubly linked list.
Definition: XalanList.hpp:157
void destroyBlock()
Definition: ReusableArenaAllocator.hpp:292
ArenaBlockListType::reverse_iterator reverse_iterator
Definition: ReusableArenaAllocator.hpp:54
virtual void commitAllocation(ObjectType *theObject)
Definition: ReusableArenaAllocator.hpp:217
ReusableArenaBlock< ObjectType > ReusableArenaBlockType
Definition: ReusableArenaAllocator.hpp:41
void push_back(const value_type &data)
Definition: XalanList.hpp:340
virtual ObjectType * allocateBlock()
Definition: ReusableArenaAllocator.hpp:191
MemoryManagerType & getMemoryManager()
Definition: ArenaAllocator.hpp:75
reverse_iterator rbegin()
Definition: XalanList.hpp:285
ArenaBlockListType::iterator iterator
Definition: ReusableArenaAllocator.hpp:52
Definition: XalanList.hpp:65
bool destroyObject(ObjectType *theObject)
Definition: ReusableArenaAllocator.hpp:84
ArenaBlockListType::const_reverse_iterator const_reverse_iterator
Definition: ReusableArenaAllocator.hpp:55
ReusableArenaBlock< data_type >::size_type size_type
Definition: ArenaAllocator.hpp:53
void erase(iterator pos)
Definition: XalanList.hpp:370
size_type m_blockSize
Definition: ArenaAllocator.hpp:211