21 #if !defined(XALANDEQUE_HEADER_GUARD_1357924680)
22 #define XALANDEQUE_HEADER_GUARD_1357924680
36 XALAN_CPP_NAMESPACE_BEGIN
40 template <
class Value>
49 template <
class Value>
58 template <
class XalanDequeTraits,
class XalanDeque>
62 typedef typename XalanDequeTraits::value_type
value_type;
63 typedef typename XalanDequeTraits::reference
reference;
64 typedef typename XalanDequeTraits::pointer
pointer;
149 return !(theRhs == *
this);
159 template <
class Type,
class ConstructionTraits = MemoryManagedConstructionTraits<Type> >
179 #if defined(XALAN_HAS_STD_ITERATORS)
182 #elif defined(XALAN_RW_NO_CLASS_PARTIAL_SPEC)
185 XALAN_STD_QUALIFIER random_access_iterator_tag,
189 XALAN_STD_QUALIFIER random_access_iterator_tag,
206 initialSize / blockSize + (initialSize % blockSize == 0 ? 0 : 1)),
209 typename ConstructionTraits::Constructor::ConstructableType defaultValue(*
m_memoryManager);
211 XALAN_STD_QUALIFIER fill_n(XALAN_STD_QUALIFIER back_inserter(*
this), initialSize, defaultValue.value);
221 XALAN_STD_QUALIFIER copy(theRhs.
begin(), theRhs.
end(), XALAN_STD_QUALIFIER back_inserter(*
this));
234 ThisType* theResult = theGuard.
get();
236 new (theResult)
ThisType(theManager, initialSize, blockSize);
250 (*iter)->~XalanVector<Type, ConstructionTraits>();
352 if (lastBlock.
empty())
361 typename ConstructionTraits::Constructor::ConstructableType defaultValue(*
m_memoryManager);
362 if (newSize >
size())
391 XALAN_STD_QUALIFIER copy(theRhs.
begin(), theRhs.
end(), XALAN_STD_QUALIFIER back_inserter(*
this));
419 assert (newBlock != 0);
431 assert(pointer != 0);
457 XALAN_CPP_NAMESPACE_END
461 #endif // XALANDEQUE_HEADER_GUARD_1357924680
Value value_type
Definition: XalanDeque.hpp:52
XalanVector< BlockType * > BlockIndexType
Definition: XalanDeque.hpp:173
const size_type m_blockSize
Definition: XalanDeque.hpp:443
Value & reference
Definition: XalanDeque.hpp:44
Definition: XalanDeque.hpp:41
XalanDequeIterator & operator=(const Iterator &iterator)
Definition: XalanDeque.hpp:85
XALAN_CPP_NAMESPACE_BEGIN typedef XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager MemoryManagerType
Definition: XalanMemoryManagement.hpp:39
iterator end()
Definition: XalanVector.hpp:701
const Value * pointer
Definition: XalanDeque.hpp:54
BlockType * getNewBlock()
Definition: XalanDeque.hpp:404
const_iterator end() const
Definition: XalanDeque.hpp:271
void deallocate(BlockType *pointer)
Definition: XalanDeque.hpp:437
value_type & back()
Definition: XalanDeque.hpp:304
value_type * iterator
Definition: XalanVector.hpp:91
void resize(size_type newSize)
Definition: XalanDeque.hpp:359
XALAN_STD_QUALIFIER reverse_iterator< const_iterator, value_type, const_reference > const_reverse_iterator_
Definition: XalanDeque.hpp:193
bool operator==(const XalanDequeIterator &theRhs) const
Definition: XalanDeque.hpp:141
XalanDequeIterator< XalanDequeConstIteratorTraits< value_type >, ThisType > const_iterator
Definition: XalanDeque.hpp:177
XalanDequeIterator operator+(difference_type difference) const
Definition: XalanDeque.hpp:126
BlockIndexType m_blockIndex
Definition: XalanDeque.hpp:445
XalanDeque(MemoryManagerType &memoryManager, size_type initialSize=0, size_type blockSize=10)
Definition: XalanDeque.hpp:199
reference back()
Definition: XalanVector.hpp:673
MemoryManagerType & getMemoryManager()
Definition: XalanDeque.hpp:396
void push_back(const value_type &value)
Definition: XalanDeque.hpp:337
void pop_back()
Definition: XalanVector.hpp:256
reference operator*()
Definition: XalanDeque.hpp:116
Type & reference
Definition: XalanDeque.hpp:168
XalanVector< Type, ConstructionTraits > BlockType
Definition: XalanDeque.hpp:171
XALAN_STD_QUALIFIER reverse_iterator< iterator, value_type > reverse_iterator_
Definition: XalanDeque.hpp:192
bool empty() const
Definition: XalanVector.hpp:636
Definition: XalanDeque.hpp:50
void push_back(const value_type &data)
Definition: XalanVector.hpp:246
XalanDequeTraits::pointer pointer
Definition: XalanDeque.hpp:64
value_type & operator[](size_type index)
Definition: XalanDeque.hpp:309
Value value_type
Definition: XalanDeque.hpp:43
iterator begin()
Definition: XalanVector.hpp:685
size_type size() const
Definition: XalanDeque.hpp:291
Value * pointer
Definition: XalanDeque.hpp:45
size_t size_type
Definition: XalanDeque.hpp:61
size_t size_type
Definition: XalanDeque.hpp:165
const Value & const_reference
Definition: XalanDeque.hpp:46
const value_type & operator[](size_type index) const
Definition: XalanDeque.hpp:315
reverse_iterator_ reverse_iterator
Definition: XalanDeque.hpp:196
XalanDequeTraits::value_type value_type
Definition: XalanDeque.hpp:62
XalanDeque(const XalanDeque &theRhs, MemoryManagerType &memoryManager)
Definition: XalanDeque.hpp:214
void reserve(size_type theSize)
Definition: XalanVector.hpp:644
XalanDequeIterator operator++(int)
Definition: XalanDeque.hpp:98
const Value & const_reference
Definition: XalanDeque.hpp:55
const Type & const_reference
Definition: XalanDeque.hpp:169
XalanDeque< Type, ConstructionTraits > ThisType
Definition: XalanDeque.hpp:175
difference_type operator-(const XalanDequeIterator &theRhs) const
Definition: XalanDeque.hpp:136
Type * get() const
Definition: XalanMemMgrAutoPtr.hpp:164
const_reverse_iterator_ const_reverse_iterator
Definition: XalanDeque.hpp:197
XalanDeque & operator=(const XalanDeque &theRhs)
Definition: XalanDeque.hpp:388
XalanDequeIterator & operator++()
Definition: XalanDeque.hpp:92
size_type size() const
Definition: XalanVector.hpp:571
BlockIndexType m_freeBlockVector
Definition: XalanDeque.hpp:446
Definition: XalanMemMgrAutoPtr.hpp:46
void clear()
Definition: XalanDeque.hpp:321
bool empty() const
Definition: XalanDeque.hpp:286
BlockType * allocate(size_type size)
Definition: XalanDeque.hpp:425
static XalanDeque * create(MemoryManagerType &theManager, size_type initialSize=0, size_type blockSize=10)
Definition: XalanDeque.hpp:225
const_iterator begin() const
Definition: XalanDeque.hpp:261
XalanDequeIterator< XalanDequeIteratorTraits< value_type >, ThisType > iterator
Definition: XalanDeque.hpp:176
XalanDequeIterator< XalanDequeIteratorTraits< value_type >, XalanDeque > Iterator
Definition: XalanDeque.hpp:68
void swap(ThisType &theOther)
Definition: XalanVector.hpp:848
XalanDequeIterator(const Iterator &iterator)
Definition: XalanDeque.hpp:79
size_type m_pos
Definition: XalanDeque.hpp:153
const_reverse_iterator rbegin() const
Definition: XalanDeque.hpp:276
ptrdiff_t difference_type
Definition: XalanDeque.hpp:66
const_reference operator*() const
Definition: XalanDeque.hpp:121
XalanDeque * m_deque
Definition: XalanDeque.hpp:152
Type value_type
Definition: XalanDeque.hpp:167
const_reverse_iterator rend() const
Definition: XalanDeque.hpp:281
void clear()
Definition: XalanVector.hpp:788
void swap(XalanDeque &theRhs)
Definition: XalanDeque.hpp:378
XALAN_STD_QUALIFIER random_access_iterator_tag iterator_category
Definition: XalanDeque.hpp:70
This class is deprecated.
Definition: XercesBridgeNavigator.hpp:53
pointer operator->()
Definition: XalanDeque.hpp:111
iterator end()
Definition: XalanDeque.hpp:266
const Value & reference
Definition: XalanDeque.hpp:53
void pop_back()
Definition: XalanDeque.hpp:348
bool operator!=(const XalanDequeIterator &theRhs) const
Definition: XalanDeque.hpp:147
Definition: XalanVector.hpp:61
iterator begin()
Definition: XalanDeque.hpp:256
MemoryManagerType * m_memoryManager
Definition: XalanDeque.hpp:442
XalanDequeIterator(XalanDeque *deque, size_type pos)
Definition: XalanDeque.hpp:72
Xalan implementation of deque.
Definition: XalanDeque.hpp:160
~XalanDeque()
Definition: XalanDeque.hpp:243
XalanDequeTraits::const_reference const_reference
Definition: XalanDeque.hpp:65
XalanDequeTraits::reference reference
Definition: XalanDeque.hpp:63
XalanDequeIterator & operator--()
Definition: XalanDeque.hpp:105
XalanDequeIterator operator-(difference_type difference) const
Definition: XalanDeque.hpp:131
Definition: XalanDeque.hpp:59