38template<
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));
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());
387 if (m_apBins[nHash] == NULL)
392 if (nHash < m_nMinBin)
401 if (TKeyManager::Compare(it->Key(), key) == 0)
447 return Iterator(m_apBins, nBin, it);
496 return XN_STATUS_NO_MATCH;
518 return XN_STATUS_NO_MATCH;
522 pValue = &it->
Value();
540 return XN_STATUS_NO_MATCH;
562 return XN_STATUS_NO_MATCH;
566 pValue = &it->
Value();
582 nRetVal =
Set(key, TValue());
586 XN_ASSERT(it !=
End());
598 return XN_STATUS_ILLEGAL_POSITION;
616 return XN_STATUS_NO_MATCH;
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)
XnUInt8 XnHashCode
Definition: XnHashT.h:33
#define XN_DELETE(p)
Definition: XnOS.h:339
#define XN_VALIDATE_NEW(ptr, type,...)
Definition: XnOS.h:171
XN_C_API void XN_C_DECL xnOSMemSet(void *pDest, XnUInt8 nValue, XnSizeT nCount)
XnUInt32 XnStatus
Definition: XnStatus.h:33
#define XN_STATUS_OK
Definition: XnStatus.h:36
static XnHashCode Hash(TKey const &key)
Definition: XnHashT.h:62
static XnInt32 Compare(TKey const &key1, TKey const &key2)
Definition: XnHashT.h:67
TPair const * operator->() const
Definition: XnHashT.h:225
ConstIterator operator++(int)
Definition: XnHashT.h:141
TPair const & operator*() const
Definition: XnHashT.h:217
ConstIterator(const ConstIterator &other)
Definition: XnHashT.h:105
XnUInt32 m_nCurrBin
Definition: XnHashT.h:234
ConstIterator & operator++()
Definition: XnHashT.h:112
TPairList::ConstIterator m_currIt
Definition: XnHashT.h:235
ConstIterator operator--(int)
Definition: XnHashT.h:187
ConstIterator(TPairList *const *apBins, XnUInt32 nCurrBin, typename TPairList::ConstIterator currIt)
Definition: XnHashT.h:95
ConstIterator()
Definition: XnHashT.h:92
XnBool operator==(const ConstIterator &other) const
Definition: XnHashT.h:199
ConstIterator & operator--()
Definition: XnHashT.h:151
TPairList *const * m_ppBins
Definition: XnHashT.h:233
XnBool operator!=(const ConstIterator &other) const
Definition: XnHashT.h:209
Definition: XnHashT.h:239
Iterator operator++(int)
Definition: XnHashT.h:263
TPair * operator->() const
Definition: XnHashT.h:300
Iterator & operator++()
Definition: XnHashT.h:254
Iterator()
Definition: XnHashT.h:241
TPair & operator*() const
Definition: XnHashT.h:292
Iterator(TPairList **apBins, XnUInt32 nCurrBin, typename TPairList::Iterator currIt)
Definition: XnHashT.h:244
Iterator operator--(int)
Definition: XnHashT.h:282
Iterator & operator--()
Definition: XnHashT.h:273
Iterator(const Iterator &other)
Definition: XnHashT.h:248
XnListT< TPair, TAlloc > TPairList
Definition: XnHashT.h:81
@ LAST_BIN
Definition: XnHashT.h:85
@ NUM_BINS
Definition: XnHashT.h:86
~XnHashT()
Definition: XnHashT.h:332
XnStatus Remove(TKey const &key)
Definition: XnHashT.h:607
XnStatus Find(TKey const &key, ConstIterator &it) const
Definition: XnHashT.h:463
ConstIterator End() const
Definition: XnHashT.h:371
XnStatus Get(TKey const &key, TValue const *&pValue) const
Definition: XnHashT.h:513
XnStatus Get(TKey const &key, TValue &value) const
Definition: XnHashT.h:491
XnHashT & operator=(const XnHashT &other)
Definition: XnHashT.h:317
XnStatus Set(const TKey &key, const TValue &value)
Definition: XnHashT.h:382
XnHashT(const XnHashT &other)
Definition: XnHashT.h:311
ConstIterator Find(TKey const &key) const
Definition: XnHashT.h:420
TValue & operator[](TKey const &key)
Definition: XnHashT.h:576
XnStatus Get(TKey const &key, TValue &value)
Definition: XnHashT.h:535
XnHashT()
Definition: XnHashT.h:306
XnStatus Remove(ConstIterator it)
Definition: XnHashT.h:592
Iterator Find(TKey const &key)
Definition: XnHashT.h:441
Iterator End()
Definition: XnHashT.h:363
XnStatus Find(TKey const &key, Iterator &it)
Definition: XnHashT.h:477
XnKeyValuePair< TKey, TValue > TPair
Definition: XnHashT.h:80
XnUInt32 Size() const
Definition: XnHashT.h:642
XnStatus Clear()
Definition: XnHashT.h:623
XnStatus Get(TKey const &key, TValue *&pValue)
Definition: XnHashT.h:557
ConstIterator Begin() const
Definition: XnHashT.h:355
Iterator Begin()
Definition: XnHashT.h:347
XnBool IsEmpty() const
Definition: XnHashT.h:634
Definition: XnListT.h:188
XnStatus AddLast(T const &value)
Definition: XnListT.h:403
Iterator End()
Definition: XnListT.h:301
Iterator Begin()
Definition: XnListT.h:285
XnStatus Remove(ConstIterator where)
Definition: XnListT.h:446
_TValue TValue
Definition: XnHashT.h:42
TValue & Value()
Definition: XnHashT.h:51
XnKeyValuePair()
Definition: XnHashT.h:44
TValue const & Value() const
Definition: XnHashT.h:50
XnKeyValuePair(TKey key, TValue value)
Definition: XnHashT.h:45
XnKeyValuePair(const XnKeyValuePair &other)
Definition: XnHashT.h:46
TKey const & Key() const
Definition: XnHashT.h:49
_TKey TKey
Definition: XnHashT.h:41