 |
OpenNI 1.5.4
|
Go to the documentation of this file.
18 template<
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));
303 for (ConstIterator it = other.
Begin(); it != other.
End(); ++it)
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());
337 return ConstIterator(m_apBins, m_nMinBin, m_apBins[m_nMinBin]->
Begin());
367 if (m_apBins[nHash] == NULL)
372 if (nHash < m_nMinBin)
379 for (
typename TPairList::Iterator it = m_apBins[nHash]->
Begin(); it != m_apBins[nHash]->
End(); ++it)
381 if (TKeyManager::Compare(it->Key(), key) == 0)
400 ConstIterator
Find(TKey
const& key)
const
403 typename TPairList::ConstIterator it;
406 return ConstIterator(m_apBins, nBin, it);
424 typename TPairList::Iterator it;
427 return Iterator(m_apBins, nBin, it);
473 ConstIterator it =
Find(key);
476 return XN_STATUS_NO_MATCH;
495 ConstIterator it =
Find(key);
498 return XN_STATUS_NO_MATCH;
502 pValue = &it->Value();
517 Iterator it =
Find(key);
520 return XN_STATUS_NO_MATCH;
539 Iterator it =
Find(key);
542 return XN_STATUS_NO_MATCH;
546 pValue = &it->Value();
559 Iterator it =
Find(key);
562 nRetVal =
Set(key, TValue());
566 XN_ASSERT(it !=
End());
578 return XN_STATUS_ILLEGAL_POSITION;
581 XN_ASSERT(m_apBins == it.m_ppBins);
582 XN_ASSERT(m_apBins[it.m_nCurrBin] != NULL);
584 return m_apBins[it.m_nCurrBin]->
Remove(it.m_currIt);
589 ConstIterator it =
Find(key);
596 return XN_STATUS_NO_MATCH;
625 for (ConstIterator iter =
Begin(); iter !=
End(); ++iter, ++nSize)
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)
668 #endif // _XN_HASH_T_H_
XnStatus Clear()
Definition: XnHashT.h:603
TPair const & operator*() const
Definition: XnHashT.h:197
XnStatus Find(TKey const &key, ConstIterator &it) const
Definition: XnHashT.h:443
Iterator & operator++()
Definition: XnHashT.h:234
Iterator & operator--()
Definition: XnHashT.h:253
static XnInt32 Compare(TKey const &key1, TKey const &key2)
Definition: XnHashT.h:47
Iterator(const Iterator &other)
Definition: XnHashT.h:228
ConstIterator End() const
Definition: XnHashT.h:351
Definition: XnHashT.h:218
TPair & operator*() const
Definition: XnHashT.h:272
Iterator End()
Definition: XnListT.h:281
#define XN_STATUS_OK
Definition: XnStatus.h:37
ConstIterator()
Definition: XnHashT.h:72
XnStatus Get(TKey const &key, TValue const *&pValue) const
Definition: XnHashT.h:493
XnStatus Remove(ConstIterator where)
Definition: XnListT.h:426
TPair * operator->() const
Definition: XnHashT.h:280
ConstIterator Find(TKey const &key) const
Definition: XnHashT.h:400
XnStatus Remove(TKey const &key)
Definition: XnHashT.h:587
TValue & Value()
Definition: XnHashT.h:31
ConstIterator & operator--()
Definition: XnHashT.h:131
XnUInt32 XnStatus
Definition: XnStatus.h:34
XnUInt32 m_nCurrBin
Definition: XnHashT.h:214
Iterator()
Definition: XnHashT.h:221
TValue const & Value() const
Definition: XnHashT.h:30
Iterator Find(TKey const &key)
Definition: XnHashT.h:421
XnHashT(const XnHashT &other)
Definition: XnHashT.h:291
XnBool operator==(const ConstIterator &other) const
Definition: XnHashT.h:179
XnListT< TPair, TAlloc > TPairList
Definition: XnHashT.h:61
_TValue TValue
Definition: XnHashT.h:22
ConstIterator operator++(int)
Definition: XnHashT.h:121
static XnHashCode Hash(TKey const &key)
Definition: XnHashT.h:42
XnStatus Set(const TKey &key, const TValue &value)
Definition: XnHashT.h:362
TPairList::ConstIterator m_currIt
Definition: XnHashT.h:215
ConstIterator Begin() const
Definition: XnHashT.h:335
_TKey TKey
Definition: XnHashT.h:21
#define XN_VALIDATE_NEW(ptr, type)
Definition: XnOS.h:196
ConstIterator & operator++()
Definition: XnHashT.h:92
Iterator operator--(int)
Definition: XnHashT.h:262
XnStatus Get(TKey const &key, TValue &value) const
Definition: XnHashT.h:471
XnUInt32 Size() const
Definition: XnHashT.h:622
XnHashT()
Definition: XnHashT.h:286
XnHashT & operator=(const XnHashT &other)
Definition: XnHashT.h:297
Iterator End()
Definition: XnHashT.h:343
Iterator(TPairList **apBins, XnUInt32 nCurrBin, typename TPairList::Iterator currIt)
Definition: XnHashT.h:224
XnKeyValuePair()
Definition: XnHashT.h:24
~XnHashT()
Definition: XnHashT.h:312
XnStatus Find(TKey const &key, Iterator &it)
Definition: XnHashT.h:457
Iterator operator++(int)
Definition: XnHashT.h:243
XnBool operator!=(const ConstIterator &other) const
Definition: XnHashT.h:189
ConstIterator(const ConstIterator &other)
Definition: XnHashT.h:85
XnStatus AddLast(T const &value)
Definition: XnListT.h:383
TPairList *const * m_ppBins
Definition: XnHashT.h:213
XnKeyValuePair< TKey, TValue > TPair
Definition: XnHashT.h:60
@ NUM_BINS
Definition: XnHashT.h:66
XnKeyValuePair(const XnKeyValuePair &other)
Definition: XnHashT.h:26
@ LAST_BIN
Definition: XnHashT.h:65
XnStatus Remove(ConstIterator it)
Definition: XnHashT.h:572
ConstIterator operator--(int)
Definition: XnHashT.h:167
XnBool IsEmpty() const
Definition: XnHashT.h:614
XnUInt8 XnHashCode
Definition: XnHashT.h:13
ConstIterator(TPairList *const *apBins, XnUInt32 nCurrBin, typename TPairList::ConstIterator currIt)
Definition: XnHashT.h:75
#define XN_DELETE(p)
Definition: XnOS.h:336
XnKeyValuePair(TKey key, TValue value)
Definition: XnHashT.h:25
XnStatus Get(TKey const &key, TValue &value)
Definition: XnHashT.h:515
Iterator Begin()
Definition: XnHashT.h:327
XN_C_API void XN_C_DECL xnOSMemSet(void *pDest, XnUInt8 nValue, XnSizeT nCount)
TValue & operator[](TKey const &key)
Definition: XnHashT.h:556
XnStatus Get(TKey const &key, TValue *&pValue)
Definition: XnHashT.h:537
TKey const & Key() const
Definition: XnHashT.h:29
TPair const * operator->() const
Definition: XnHashT.h:205
Definition: XnListT.h:167
Iterator Begin()
Definition: XnListT.h:265