MCPcopy Create free account
hub / github.com/defold/defold / Iterator

Class Iterator

engine/dlib/src/dmsdk/dlib/hashtable.h:451–490  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

449 * @member GetValue()
450 */
451 struct Iterator
452 {
453 // public
454 const KEY& GetKey() { return m_EntryPtr->m_Key; }
455 const T& GetValue() { return m_EntryPtr->m_Value; }
456
457 Iterator(dmHashTable<KEY, T>& table)
458 : m_Table(table)
459 , m_EntryPtr(0)
460 , m_Entry(INVALID_INDEX)
461 , m_BucketIndex(0)
462 {
463 }
464
465 bool Next() {
466 if (m_EntryPtr)
467 m_Entry = m_EntryPtr->m_Next;
468
469 if (m_Entry == INVALID_INDEX)
470 {
471 for (uint32_t i = m_BucketIndex; i < m_Table.m_HashTableSize; ++i)
472 {
473 if (m_Table.m_HashTable[i] != INVALID_INDEX)
474 {
475 m_Entry = m_Table.m_HashTable[i];
476 m_BucketIndex = i+1;
477 break;
478 }
479 }
480 }
481 m_EntryPtr = m_Entry == INVALID_INDEX ? 0 : &m_Table.m_InitialEntries[m_Entry];
482 return m_EntryPtr != 0;
483 }
484
485 // private
486 dmHashTable<KEY, T>& m_Table;
487 Entry* m_EntryPtr;
488 uint32_t m_Entry;
489 uint32_t m_BucketIndex;
490 };
491
492 /*#
493 * Get an iterator for the key/value pairs

Callers 1

GetIteratorMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected