47 return XN_NEW(LinkedNode, value);
63 template<
class T,
class TAlloc = XnLinkedNodeDefaultAllocatorT<T> >
248 for (ConstIterator it = other.
Begin(); it != other.
End(); ++it)
275 return ConstIterator(const_cast<LinkedNode*>(
m_anchor.
pNext));
291 return ConstIterator(const_cast<LinkedNode*>(&
m_anchor));
307 return ConstIterator(const_cast<LinkedNode*>(
m_anchor.
pPrev));
323 return ConstIterator(const_cast<LinkedNode*>(&
m_anchor));
339 return XN_STATUS_ILLEGAL_POSITION;
358 return XN_STATUS_ILLEGAL_POSITION;
361 return InsertAfter(where.m_pCurrent->pPrev, value);
395 ConstIterator
Find(T
const& value)
const
397 ConstIterator iter =
Begin();
398 for (; iter !=
End(); ++iter)
415 ConstIterator iter =
const_cast<const XnListT<T>*
>(
this)->
Find(value);
416 return Iterator(iter.m_pCurrent);
431 return XN_STATUS_ILLEGAL_POSITION;
443 TAlloc::Deallocate(pToRemove);
457 ConstIterator it =
Find(value);
464 return XN_STATUS_NO_MATCH;
503 XN_ASSERT(pArray != NULL);
506 for (ConstIterator iter =
Begin(); iter !=
End(); ++iter, ++i)
524 LinkedNode* pNewNode = TAlloc::Allocate(val);
525 if (pNewNode == NULL)
528 return XN_STATUS_ALLOC_FAILED;
530 pNewNode->
pPrev = pAfter;
535 pAfter->
pNext = pNewNode;
556 #endif // _XNLISTT_H_
XnStatus InsertAfter(LinkedNode *pAfter, T const &val)
Definition: XnListT.h:521
ConstIterator Find(T const &value) const
Definition: XnListT.h:395
Iterator(const Iterator &other)
Definition: XnListT.h:174
void CopyTo(T *pArray) const
Definition: XnListT.h:501
XnBool IsEmpty() const
Definition: XnListT.h:482
struct XnLinkedNodeT< T > * pPrev
Definition: XnListT.h:26
struct XnLinkedNodeT< T > * pNext
Definition: XnListT.h:27
ConstIterator ReverseBegin() const
Definition: XnListT.h:305
XnUInt32 Size() const
Definition: XnListT.h:490
Iterator & operator++()
Definition: XnListT.h:179
XnListT(const XnListT &other)
Definition: XnListT.h:236
XnStatus AddBefore(ConstIterator where, T const &value)
Definition: XnListT.h:354
#define XN_STATUS_OK
Definition: XnStatus.h:37
ConstIterator operator--(int)
Definition: XnListT.h:114
T const & operator*() const
Definition: XnListT.h:144
LinkedNode m_anchor
Definition: XnListT.h:543
ConstIterator(const ConstIterator &other)
Definition: XnListT.h:81
Iterator ReverseBegin()
Definition: XnListT.h:297
Iterator Find(T const &value)
Definition: XnListT.h:413
XnStatus Remove(T const &value)
Definition: XnListT.h:455
Iterator operator--(int)
Definition: XnListT.h:206
T * operator->() const
Definition: XnListT.h:224
XnUInt32 XnStatus
Definition: XnStatus.h:34
XnBool operator!=(const ConstIterator &other) const
Definition: XnListT.h:136
XnLinkedNodeT< T > LinkedNode
Definition: XnListT.h:43
T TValue
Definition: XnListT.h:68
XnUInt32 m_nSize
Definition: XnListT.h:545
XnLinkedNodeT(T const &value)
Definition: XnListT.h:24
XnStatus AddFirst(T const &value)
Definition: XnListT.h:371
XnStatus AddAfter(ConstIterator where, T const &value)
Definition: XnListT.h:335
#define XN_NEW(type,...)
Definition: XnOS.h:326
static LinkedNode * Allocate(T const &value)
Definition: XnListT.h:45
ConstIterator ReverseEnd() const
Definition: XnListT.h:321
XnLinkedNodeT< T > LinkedNode
Definition: XnListT.h:67
Iterator & operator--()
Definition: XnListT.h:198
T const * operator->() const
Definition: XnListT.h:152
Iterator Begin()
Definition: XnListT.h:265
ConstIterator Begin() const
Definition: XnListT.h:273
ConstIterator()
Definition: XnListT.h:77
XnStatus Clear()
Definition: XnListT.h:471
Iterator operator++(int)
Definition: XnListT.h:188
XnLinkedNodeT()
Definition: XnListT.h:23
T value
Definition: XnListT.h:28
ConstIterator & operator--()
Definition: XnListT.h:105
static void Deallocate(LinkedNode *pNode)
Definition: XnListT.h:50
#define XN_DELETE(p)
Definition: XnOS.h:336
Iterator(LinkedNode *pNode)
Definition: XnListT.h:172
XnStatus Remove(ConstIterator where)
Definition: XnListT.h:426
Definition: XnListT.h:167
ConstIterator(LinkedNode *pNode)
Definition: XnListT.h:79
Iterator End()
Definition: XnListT.h:281
TAlloc TAllocator
Definition: XnListT.h:69
ConstIterator End() const
Definition: XnListT.h:289
ConstIterator & operator++()
Definition: XnListT.h:86
Iterator()
Definition: XnListT.h:170
T & operator*() const
Definition: XnListT.h:216
~XnListT()
Definition: XnListT.h:257
XnBool operator==(const ConstIterator &other) const
Definition: XnListT.h:126
XnListT()
Definition: XnListT.h:231
XnListT & operator=(const XnListT &other)
Definition: XnListT.h:242
LinkedNode * m_pCurrent
Definition: XnListT.h:161
ConstIterator operator++(int)
Definition: XnListT.h:95
Iterator ReverseEnd()
Definition: XnListT.h:313
XnStatus AddLast(T const &value)
Definition: XnListT.h:383