 |
OpenNI 1.5.7
|
Go to the documentation of this file.
38 template<
class _TKey,
class _TValue>
64 return (((XnSizeT)key) & 0xff);
67 static XnInt32
Compare(TKey
const& key1, TKey
const& key2)
69 return XnInt32(XnSizeT(key1)-XnSizeT(key2));
235 typename TPairList::ConstIterator
m_currIt;
244 Iterator(
TPairList** apBins, XnUInt32 nCurrBin,
typename TPairList::Iterator currIt)
294 return const_cast<TPair&>(*this->
m_currIt);
302 return const_cast<TPair*>(this->
m_currIt.operator->());
323 for (ConstIterator it = other.
Begin(); it != other.
End(); ++it)
325 nRetVal =
Set(it->Key(), it->Value());
335 for (XnUInt32 i = 0; i <
LAST_BIN; ++i)
337 if (m_apBins[i] != NULL)
349 return Iterator(m_apBins, m_nMinBin, m_apBins[m_nMinBin]->
Begin());
355 ConstIterator
Begin()
const
357 return ConstIterator(m_apBins, m_nMinBin, m_apBins[m_nMinBin]->
Begin());
371 ConstIterator
End()
const
387 if (m_apBins[nHash] == NULL)
392 if (nHash < m_nMinBin)
399 for (
typename TPairList::Iterator it = m_apBins[nHash]->
Begin(); it != m_apBins[nHash]->
End(); ++it)
401 if (TKeyManager::Compare(it->Key(), key) == 0)
420 ConstIterator
Find(TKey
const& key)
const
423 typename TPairList::ConstIterator it;
426 return ConstIterator(m_apBins, nBin, it);
441 Iterator
Find(TKey
const& key)
444 typename TPairList::Iterator it;
447 return Iterator(m_apBins, nBin, it);
493 ConstIterator it =
Find(key);
496 return XN_STATUS_NO_MATCH;
513 XnStatus Get(TKey
const& key, TValue
const*& pValue)
const
515 ConstIterator it =
Find(key);
518 return XN_STATUS_NO_MATCH;
522 pValue = &it->Value();
537 Iterator it =
Find(key);
540 return XN_STATUS_NO_MATCH;
559 Iterator it =
Find(key);
562 return XN_STATUS_NO_MATCH;
566 pValue = &it->Value();
579 Iterator it =
Find(key);
582 nRetVal =
Set(key, TValue());
586 XN_ASSERT(it !=
End());
598 return XN_STATUS_ILLEGAL_POSITION;
601 XN_ASSERT(m_apBins == it.m_ppBins);
602 XN_ASSERT(m_apBins[it.m_nCurrBin] != NULL);
604 return m_apBins[it.m_nCurrBin]->
Remove(it.m_currIt);
609 ConstIterator it =
Find(key);
616 return XN_STATUS_NO_MATCH;
642 XnUInt32
Size()
const
645 for (ConstIterator iter =
Begin(); iter !=
End(); ++iter, ++nSize)
652 XnBool
Find(TKey
const& key, XnUInt32& nBin,
typename TPairList::ConstIterator& currIt)
const
656 if (m_apBins[nHash] != NULL)
659 for (
typename TPairList::ConstIterator it = m_apBins[nHash]->
Begin(); it != m_apBins[nHash]->
End(); ++it)
661 if (TKeyManager::Compare(it->Key(), key) == 0)
688 #endif // _XN_HASH_T_H_
XnStatus Clear()
Definition: XnHashT.h:622
TPair const & operator*() const
Definition: XnHashT.h:216
Iterator & operator++()
Definition: XnHashT.h:253
Iterator & operator--()
Definition: XnHashT.h:272
static XnInt32 Compare(TKey const &key1, TKey const &key2)
Definition: XnHashT.h:66
Definition: XnHashT.h:237
TPair & operator*() const
Definition: XnHashT.h:291
Iterator End()
Definition: XnListT.h:300
#define XN_STATUS_OK
Definition: XnStatus.h:35
ConstIterator()
Definition: XnHashT.h:91
XnStatus Remove(ConstIterator where)
Definition: XnListT.h:445
TPair * operator->() const
Definition: XnHashT.h:299
ConstIterator Find(TKey const &key) const
Definition: XnHashT.h:419
TValue & Value()
Definition: XnHashT.h:50
ConstIterator & operator--()
Definition: XnHashT.h:150
#define XN_VALIDATE_NEW(ptr, type,...)
Definition: XnOS.h:170
XnUInt32 XnStatus
Definition: XnStatus.h:32
XnUInt32 m_nCurrBin
Definition: XnHashT.h:233
Iterator()
Definition: XnHashT.h:240
TValue const & Value() const
Definition: XnHashT.h:49
XnBool operator==(const ConstIterator &other) const
Definition: XnHashT.h:198
XnListT< TPair, TAlloc > TPairList
Definition: XnHashT.h:80
_TValue TValue
Definition: XnHashT.h:41
static XnHashCode Hash(TKey const &key)
Definition: XnHashT.h:61
XnStatus Set(const TKey &key, const TValue &value)
Definition: XnHashT.h:381
TPairList::ConstIterator m_currIt
Definition: XnHashT.h:234
_TKey TKey
Definition: XnHashT.h:40
ConstIterator & operator++()
Definition: XnHashT.h:111
XnStatus Get(TKey const &key, TValue &value) const
Definition: XnHashT.h:490
XnUInt32 Size() const
Definition: XnHashT.h:641
XnHashT()
Definition: XnHashT.h:305
XnHashT & operator=(const XnHashT &other)
Definition: XnHashT.h:316
Iterator End()
Definition: XnHashT.h:362
XnKeyValuePair()
Definition: XnHashT.h:43
~XnHashT()
Definition: XnHashT.h:331
XnBool operator!=(const ConstIterator &other) const
Definition: XnHashT.h:208
XnStatus AddLast(T const &value)
Definition: XnListT.h:402
TPairList *const * m_ppBins
Definition: XnHashT.h:232
XnKeyValuePair< TKey, TValue > TPair
Definition: XnHashT.h:79
XnKeyValuePair(const XnKeyValuePair &other)
Definition: XnHashT.h:45
XnStatus Remove(ConstIterator it)
Definition: XnHashT.h:591
XnBool IsEmpty() const
Definition: XnHashT.h:633
XnUInt8 XnHashCode
Definition: XnHashT.h:32
#define XN_DELETE(p)
Definition: XnOS.h:338
XnKeyValuePair(TKey key, TValue value)
Definition: XnHashT.h:44
Iterator Begin()
Definition: XnHashT.h:346
XN_C_API void XN_C_DECL xnOSMemSet(void *pDest, XnUInt8 nValue, XnSizeT nCount)
TValue & operator[](TKey const &key)
Definition: XnHashT.h:575
TKey const & Key() const
Definition: XnHashT.h:48
TPair const * operator->() const
Definition: XnHashT.h:224
Iterator Begin()
Definition: XnListT.h:284