 |
OpenNI 1.5.7
|
Go to the documentation of this file.
152 class Iterator :
public ConstIterator
279 return XN_STATUS_ILLEGAL_POSITION;
282 return Add(where.m_pCurrent, val);
297 return XN_STATUS_ILLEGAL_POSITION;
300 return Add(where.m_pCurrent->Previous(), val);
319 for (; iter !=
end(); ++iter)
342 ConstIterator iter =
begin();
343 for (; iter !=
end(); ++iter)
378 return XN_STATUS_ILLEGAL_POSITION;
382 return XN_STATUS_IS_EMPTY;
385 XnNode* pToRemove = where.m_pCurrent;
440 ConstIterator
begin()
const
456 ConstIterator
end()
const
472 ConstIterator
rbegin()
const
488 ConstIterator
rend()
const
501 Init(pNodeAllocator);
530 if (pNewNode == NULL)
532 return XN_STATUS_ALLOC_FAILED;
535 pNewNode->
Data() = val;
539 pWhere->
Next() = pNewNode;
559 #define XN_DECLARE_LIST_WITH_TRANSLATOR_DECL(decl, Type, ClassName, Translator) \
560 class decl ClassName : public XnList \
563 class decl ConstIterator : public XnList::ConstIterator \
566 friend class ClassName; \
567 inline ConstIterator(const ConstIterator& other) : XnList::ConstIterator(other) {} \
568 inline ConstIterator& operator++() \
570 ++(*(XnList::ConstIterator*)this); \
573 inline ConstIterator operator++(int) \
575 ConstIterator result = *this; \
579 inline ConstIterator& operator--() \
581 --(*(XnList::ConstIterator*)this); \
584 inline ConstIterator operator--(int) \
586 ConstIterator result = *this; \
590 inline Type const& operator*() const \
592 return Translator::GetFromValue(**((XnList::ConstIterator*)this)); \
594 inline Type const* operator->() const { return (&**this); } \
596 inline ConstIterator(XnNode* pNode) : XnList::ConstIterator(pNode) {} \
597 inline ConstIterator(const XnList::ConstIterator& other) : \
598 XnList::ConstIterator(other) \
601 class decl Iterator : public ConstIterator \
604 friend class ClassName; \
605 Iterator(const Iterator& other) : ConstIterator(other) {} \
606 inline Iterator& operator++() \
608 ++(*(ConstIterator*)this); \
611 inline Iterator operator++(int) \
613 Iterator result = *this; \
617 inline Iterator& operator--() \
619 --(*(ConstIterator*)this); \
622 inline Iterator operator--(int) \
624 Iterator result = *this; \
628 inline Type& operator*() const { return ((Type&)**(ConstIterator*)this); } \
629 inline Type* operator->() const { return (&**this); } \
631 inline Iterator(XnNode* pNode) : ConstIterator(pNode) {} \
632 inline Iterator(const XnList::Iterator& other) : ConstIterator(other) {} \
643 inline XnStatus AddFirst(Type const& value) \
645 XnValue val = Translator::CreateValueCopy(value); \
646 XnStatus nRetVal = XnList::AddFirst(val); \
647 if (nRetVal != XN_STATUS_OK) \
649 Translator::FreeValue(val); \
652 return XN_STATUS_OK; \
654 inline XnStatus AddLast(Type const& value) \
656 XnValue val = Translator::CreateValueCopy(value); \
657 XnStatus nRetVal = XnList::AddLast(val); \
658 if (nRetVal != XN_STATUS_OK) \
660 Translator::FreeValue(val); \
663 return XN_STATUS_OK; \
665 inline XnStatus AddAfter(ConstIterator where, Type const& value) \
667 XnValue val = Translator::CreateValueCopy(value); \
668 XnStatus nRetVal = XnList::AddAfter(where, val); \
669 if (nRetVal != XN_STATUS_OK) \
671 Translator::FreeValue(val); \
674 return XN_STATUS_OK; \
676 inline XnStatus AddBefore(ConstIterator where, Type const& value) \
678 XnValue val = Translator::CreateValueCopy(value); \
679 XnStatus nRetVal = XnList::AddBefore(where, val); \
680 if (nRetVal != XN_STATUS_OK) \
682 Translator::FreeValue(val); \
685 return XN_STATUS_OK; \
687 inline ConstIterator Find(Type const& value) const \
689 XnValue _value = Translator::GetAsValue(value); \
690 return XnList::Find(_value); \
692 inline Iterator Find(Type const& value) \
694 XnValue _value = Translator::GetAsValue(value); \
695 return XnList::Find(_value); \
697 inline XnStatus Remove(ConstIterator where) \
699 XnValue val = Translator::GetAsValue(*where); \
700 XnStatus nRetVal = XnList::Remove(where); \
701 if (nRetVal != XN_STATUS_OK) return (nRetVal); \
702 Translator::FreeValue(val); \
703 return XN_STATUS_OK; \
705 inline XnStatus Remove(Type const& value) \
707 Iterator it = Find(value); \
710 inline Iterator begin() { return XnList::begin(); } \
711 inline ConstIterator begin() const { return XnList::begin(); } \
712 inline Iterator end() { return XnList::end(); } \
713 inline ConstIterator end() const { return XnList::end(); } \
714 inline Iterator rbegin() { return XnList::rbegin(); } \
715 inline ConstIterator rbegin() const { return XnList::rbegin(); } \
716 inline Iterator rend() { return XnList::rend(); } \
717 inline ConstIterator rend() const { return XnList::rend(); } \
719 virtual XnStatus Remove(XnList::ConstIterator where) \
721 return Remove(ConstIterator(where)); \
724 XN_DISABLE_COPY_AND_ASSIGN(ClassName); \
730 #define XN_DECLARE_LIST_WITH_TRANSLATOR(Type, ClassName, Translator) \
731 XN_DECLARE_LIST_WITH_TRANSLATOR_DECL(, Type, ClassName, Translator)
737 #define XN_DECLARE_LIST_DECL(decl, Type, ClassName) \
738 XN_DECLARE_DEFAULT_VALUE_TRANSLATOR_DECL(decl, Type, XN_DEFAULT_TRANSLATOR_NAME(ClassName)) \
739 XN_DECLARE_LIST_WITH_TRANSLATOR_DECL(decl, Type, ClassName, XN_DEFAULT_TRANSLATOR_NAME(ClassName))
744 #define XN_DECLARE_LIST(Type, ClassName) \
745 XN_DECLARE_LIST_DECL(, Type, ClassName)
XnStatus Remove(ConstIterator where, XnValue &value)
Definition: XnList.h:379
XnNode *& Previous()
Definition: XnNode.h:78
Iterator(const Iterator &other)
Definition: XnList.h:181
#define XN_STATUS_OK
Definition: XnStatus.h:36
XnNode * m_pBase
Definition: XnList.h:565
Iterator rend()
Definition: XnList.h:499
XnUInt32 XnStatus
Definition: XnStatus.h:33
virtual XnNode * Allocate()=0
XnNode *& Next()
Definition: XnNode.h:69
Iterator begin()
Definition: XnList.h:451
XnList()
Definition: XnList.h:237
Iterator & operator--()
Definition: XnList.h:204
XnBool m_bOwnsAllocator
Definition: XnList.h:568
Definition: XnNodeAllocator.h:27
ConstIterator & operator++()
Definition: XnList.h:96
XnBool operator==(const ConstIterator &other) const
Definition: XnList.h:136
Iterator & operator++()
Definition: XnList.h:186
Iterator end()
Definition: XnList.h:467
XnStatus AddLast(const XnValue &value)
Definition: XnList.h:280
XnBool IsEmpty() const
Definition: XnList.h:431
XnNode * m_pCurrent
Definition: XnList.h:184
#define XN_NEW(type, arg)
Definition: XnOS.h:335
XnValue & operator*() const
Definition: XnList.h:222
void Init(INiNodeAllocator *pNodeAllocator)
Definition: XnList.h:524
INiNodeAllocator * m_pNodeAllocator
Definition: XnList.h:567
Definition: IXnNodeAllocator.h:32
XnStatus Clear()
Definition: XnList.h:420
friend class XnNodeManager
Definition: XnList.h:513
XnValue & Data()
Definition: XnNode.h:87
XnStatus AddFirst(const XnValue &value)
Definition: XnList.h:268
XnBool operator!=(const ConstIterator &other) const
Definition: XnList.h:145
const XnNode * GetNode() const
Definition: XnList.h:162
#define XN_DISABLE_COPY_AND_ASSIGN(TypeName)
Definition: XnMacros.h:118
Iterator rbegin()
Definition: XnList.h:483
virtual void Deallocate(XnNode *pNode)=0
XnStatus Add(XnNode *pWhere, const XnValue &val)
Definition: XnList.h:545
Iterator Find(const XnValue &value)
Definition: XnList.h:330
XnStatus AddAfter(ConstIterator where, const XnValue &val)
Definition: XnList.h:294
#define XN_DELETE(p)
Definition: XnOS.h:339
ConstIterator & operator--()
Definition: XnList.h:115
XnUInt32 Size() const
Definition: XnList.h:439
virtual ~XnList()
Definition: XnList.h:247
ConstIterator(const ConstIterator &other)
Definition: XnList.h:91
const XnValue & operator*() const
Definition: XnList.h:153
void * XnValue
Definition: XnDataTypes.h:35
XnStatus AddBefore(ConstIterator where, const XnValue &val)
Definition: XnList.h:312