19#if !defined(XALANLIST_HEADER_GUARD_1357924680)
20#define XALANLIST_HEADER_GUARD_1357924680
62template<
class XalanListTraits,
class Node>
66 typedef typename XalanListTraits::reference
reference;
67 typedef typename XalanListTraits::pointer
pointer;
107 while (decrement > 0)
198 MemoryManager& theManager) :
273 const_reverse_iterator
285 const_reverse_iterator
308 while (item !=
end())
355 assert(pos !=
end());
373 Node & posNode = pos.
node();
374 Node & toInsertNode = toInsert.node();
376 toInsertNode.prev->next = toInsertNode.next;
377 toInsertNode.next->prev = toInsertNode.prev;
379 toInsertNode.prev = posNode.prev;
380 toInsertNode.next = &posNode;
382 posNode.prev->next = &toInsertNode;
383 posNode.prev = &toInsertNode;
400 if (toInsertFirst != toInsertLast)
402 Node & posNode = pos.
node();
403 Node & toInsertFirstNode = toInsertFirst.node();
404 Node & toInsertLastNode = *(toInsertLast.
node().prev);
406 toInsertFirstNode.prev->next = toInsertLastNode.next;
407 toInsertLastNode.next->prev = toInsertFirstNode.prev;
409 toInsertFirstNode.prev = posNode.prev;
410 toInsertLastNode.next = &posNode;
412 posNode.prev->next = &toInsertFirstNode;
413 posNode.prev = &toInsertLastNode;
440 Node * nextFreeNode = 0;
454 new (&newNode->prev) Node*(pos.
node().prev);
455 new (&newNode->next) Node*(&(pos.
node()));
457 pos.
node().prev->next = newNode;
458 pos.
node().prev = newNode;
467 node.prev->next = node.next;
468 node.next->prev = node.prev;
#define XALAN_CPP_NAMESPACE
void deallocate(Node *pointer)
std::reverse_iterator< iterator > reverse_iterator_
XalanListIteratorBase< XalanListConstIteratorTraits< value_type >, Node > const_iterator
XalanListIteratorBase< XalanListIteratorTraits< value_type >, Node > iterator
void freeNode(Node &node)
const_reverse_iterator rbegin() const
const value_type * const_pointer
XalanList< value_type > ThisType
const_reverse_iterator rend() const
void push_back(const value_type &data)
CollationCacheStruct value_type
void splice(iterator pos, ThisType &list, iterator toInsertFirst, iterator toInsertLast)
reverse_iterator rbegin()
const_iterator end() const
void destroyNode(Node &node)
const value_type & const_reference
reverse_iterator_ reverse_iterator
const MemoryManager & getMemoryManager() const
std::reverse_iterator< const_iterator > const_reverse_iterator_
void swap(ThisType &theRHS)
const_reverse_iterator_ const_reverse_iterator
Node & constructNode(const value_type &data, iterator pos)
Node & getListHead() const
MemoryManagedConstructionTraits< value_type >::Constructor Constructor
void splice(iterator pos, ThisType &list, iterator toInsert)
MemoryManager * m_memoryManager
Node * allocate(size_type size)
XalanList(MemoryManager &theManager)
MemoryManager & getMemoryManager()
void push_front(const value_type &data)
iterator insert(const iterator &pos, const value_type &value)
const_iterator begin() const
static C * construct(C *address, MemoryManager &)
ConstructWithNoMemoryManager< C > Constructor
XalanListIteratorBase(Node &node)
std::bidirectional_iterator_tag iterator_category
bool operator!=(const XalanListIteratorBase &theRhs) const
XalanListIteratorBase operator--()
XalanListTraits::value_type value_type
reference operator*() const
XalanListIteratorBase(const iterator &theRhs)
XalanListIteratorBase operator-(difference_type decrement) const
const XalanListIteratorBase & operator=(const XalanListIteratorBase &theRhs)
pointer operator->() const
bool operator==(const XalanListIteratorBase &theRhs) const
ptrdiff_t difference_type
XalanListIteratorBase operator++()
XalanListIteratorBase< XalanListIteratorTraits< value_type >, Node > iterator
XalanListTraits::reference reference
XalanListIteratorBase operator++(int)
XalanListTraits::pointer pointer
Node(const value_type &theValue, Node &prevNode, Node &nextNode)