18template<
class _TKey,
class _TValue>
44 return (((XnSizeT)key) & 0xff);
47 static XnInt32
Compare(TKey
const& key1, TKey
const& key2)
49 return XnInt32(XnSizeT(key1)-XnSizeT(key2));
305 nRetVal =
Set(it->Key(), it->Value());
315 for (XnUInt32 i = 0; i <
LAST_BIN; ++i)
317 if (m_apBins[i] != NULL)
329 return Iterator(m_apBins, m_nMinBin, m_apBins[m_nMinBin]->
Begin());
367 if (m_apBins[nHash] == NULL)
372 if (nHash < m_nMinBin)
381 if (TKeyManager::Compare(it->Key(), key) == 0)
427 return Iterator(m_apBins, nBin, it);
476 return XN_STATUS_NO_MATCH;
498 return XN_STATUS_NO_MATCH;
502 pValue = &it->
Value();
520 return XN_STATUS_NO_MATCH;
542 return XN_STATUS_NO_MATCH;
546 pValue = &it->
Value();
562 nRetVal =
Set(key, TValue());
566 XN_ASSERT(it !=
End());
578 return XN_STATUS_ILLEGAL_POSITION;
596 return XN_STATUS_NO_MATCH;
632 XnBool
Find(TKey
const& key, XnUInt32& nBin,
typename TPairList::ConstIterator& currIt)
const
636 if (m_apBins[nHash] != NULL)
639 for (
typename TPairList::ConstIterator it = m_apBins[nHash]->
Begin(); it != m_apBins[nHash]->
End(); ++it)
641 if (TKeyManager::Compare(it->Key(), key) == 0)
XnUInt8 XnHashCode
Definition XnHashT.h:13
#define XN_DELETE(p)
Definition XnOS.h:336
#define XN_VALIDATE_NEW(ptr, type,...)
Definition XnOS.h:168
XN_C_API void XN_C_DECL xnOSMemSet(void *pDest, XnUInt8 nValue, XnSizeT nCount)
XnUInt32 XnStatus
Definition XnStatus.h:34
#define XN_STATUS_OK
Definition XnStatus.h:37
static XnHashCode Hash(TKey const &key)
Definition XnHashT.h:42
static XnInt32 Compare(TKey const &key1, TKey const &key2)
Definition XnHashT.h:47
TPair const * operator->() const
Definition XnHashT.h:205
ConstIterator operator++(int)
Definition XnHashT.h:121
TPair const & operator*() const
Definition XnHashT.h:197
ConstIterator(const ConstIterator &other)
Definition XnHashT.h:85
XnUInt32 m_nCurrBin
Definition XnHashT.h:214
ConstIterator & operator++()
Definition XnHashT.h:92
TPairList::ConstIterator m_currIt
Definition XnHashT.h:215
ConstIterator operator--(int)
Definition XnHashT.h:167
ConstIterator(TPairList *const *apBins, XnUInt32 nCurrBin, typename TPairList::ConstIterator currIt)
Definition XnHashT.h:75
ConstIterator()
Definition XnHashT.h:72
XnBool operator==(const ConstIterator &other) const
Definition XnHashT.h:179
ConstIterator & operator--()
Definition XnHashT.h:131
TPairList *const * m_ppBins
Definition XnHashT.h:213
XnBool operator!=(const ConstIterator &other) const
Definition XnHashT.h:189
Iterator operator++(int)
Definition XnHashT.h:243
TPair * operator->() const
Definition XnHashT.h:280
Iterator & operator++()
Definition XnHashT.h:234
Iterator()
Definition XnHashT.h:221
TPair & operator*() const
Definition XnHashT.h:272
Iterator(TPairList **apBins, XnUInt32 nCurrBin, typename TPairList::Iterator currIt)
Definition XnHashT.h:224
Iterator operator--(int)
Definition XnHashT.h:262
Iterator & operator--()
Definition XnHashT.h:253
Iterator(const Iterator &other)
Definition XnHashT.h:228
@ LAST_BIN
Definition XnHashT.h:65
@ NUM_BINS
Definition XnHashT.h:66
~XnHashT()
Definition XnHashT.h:312
XnStatus Remove(TKey const &key)
Definition XnHashT.h:587
XnStatus Find(TKey const &key, ConstIterator &it) const
Definition XnHashT.h:443
ConstIterator End() const
Definition XnHashT.h:351
XnStatus Get(TKey const &key, TValue const *&pValue) const
Definition XnHashT.h:493
XnStatus Get(TKey const &key, TValue &value) const
Definition XnHashT.h:471
XnHashT & operator=(const XnHashT &other)
Definition XnHashT.h:297
XnStatus Set(const TKey &key, const TValue &value)
Definition XnHashT.h:362
XnHashT(const XnHashT &other)
Definition XnHashT.h:291
ConstIterator Find(TKey const &key) const
Definition XnHashT.h:400
XnKeyValuePair< TKey, TValue > TPair
Definition XnHashT.h:60
TValue & operator[](TKey const &key)
Definition XnHashT.h:556
XnStatus Get(TKey const &key, TValue &value)
Definition XnHashT.h:515
XnHashT()
Definition XnHashT.h:286
XnStatus Remove(ConstIterator it)
Definition XnHashT.h:572
XnListT< TPair, TAlloc > TPairList
Definition XnHashT.h:61
Iterator Find(TKey const &key)
Definition XnHashT.h:421
Iterator End()
Definition XnHashT.h:343
XnStatus Find(TKey const &key, Iterator &it)
Definition XnHashT.h:457
XnUInt32 Size() const
Definition XnHashT.h:622
XnStatus Clear()
Definition XnHashT.h:603
XnStatus Get(TKey const &key, TValue *&pValue)
Definition XnHashT.h:537
ConstIterator Begin() const
Definition XnHashT.h:335
Iterator Begin()
Definition XnHashT.h:327
XnBool IsEmpty() const
Definition XnHashT.h:614
XnStatus AddLast(T const &value)
Definition XnListT.h:383
Iterator End()
Definition XnListT.h:281
Iterator Begin()
Definition XnListT.h:265
XnStatus Remove(ConstIterator where)
Definition XnListT.h:426
TValue & Value()
Definition XnHashT.h:31
XnKeyValuePair()
Definition XnHashT.h:24
TValue const & Value() const
Definition XnHashT.h:30
XnKeyValuePair(TKey key, TValue value)
Definition XnHashT.h:25
_TValue TValue
Definition XnHashT.h:22
_TKey TKey
Definition XnHashT.h:21
XnKeyValuePair(const XnKeyValuePair &other)
Definition XnHashT.h:26
TKey const & Key() const
Definition XnHashT.h:29