template<typename RECORD_TYPE, const uint_fast8_t MAX_LOOKAHEAD = 4, const unsigned char SMALLEST_CHAR = 'A', const unsigned char LARGEST_CHAR = 'Z', typename LT_KEY_COMPARE = FastLookupUtils::ltBinaryBlock>
class FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator
Iterator for FastLookupTable.
Allows traversal of entries in a FastLookupTable<>.
- Note
- Entries tend to be retrieved in lexiographic order, with the exception of those entries that need special handling. For example, adding an entry that begins with a digit into a table with a range of A-Z will create an exception record. Those records that begin with a digit will be retrieved after all of those that began with letters.
template<typename RECORD_TYPE , const uint_fast8_t MAX_LOOKAHEAD = 4, const unsigned char SMALLEST_CHAR = 'A', const unsigned char LARGEST_CHAR = 'Z', typename LT_KEY_COMPARE = FastLookupUtils::ltBinaryBlock>
FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::FastLookupTableIterator |
( |
FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE > * |
levelPtr | ) |
|
|
inline |
template<typename RECORD_TYPE , const uint_fast8_t MAX_LOOKAHEAD = 4, const unsigned char SMALLEST_CHAR = 'A', const unsigned char LARGEST_CHAR = 'Z', typename LT_KEY_COMPARE = FastLookupUtils::ltBinaryBlock>
bool FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::atEnd |
( |
| ) |
const |
|
inline |
Returns a Boolean indicator if the end of the table has been seen.
References FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::IteratorState::AT_END, and FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::stateStack.
Referenced by FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::nextElement().
template<typename RECORD_TYPE , const uint_fast8_t MAX_LOOKAHEAD = 4, const unsigned char SMALLEST_CHAR = 'A', const unsigned char LARGEST_CHAR = 'Z', typename LT_KEY_COMPARE = FastLookupUtils::ltBinaryBlock>
RECORD_TYPE* FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::nextElement |
( |
| ) |
|
|
inline |
Returns a pointer to the next element located by the iterator.
- Return values
-
0 | indicates the end of the table has been reached. |
References FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::IteratorState::AT_END, FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::atEnd(), FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::IteratorState::currentCharIndex, FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::currentLookaheadDepth, FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::ELEMENT_RANGE, FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::IteratorState::extra_it, FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::IteratorState::FIND_RECORD, FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::IteratorState::IN_CHILDREN, FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::IteratorState::IN_EXTRAS, FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::IteratorState::levelPtr, OME_EXPECT_FALSE, OME_EXPECT_TRUE, FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::IteratorState::reset(), FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::IteratorState::searchState, and FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::stateStack.
Referenced by FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::firstElement().
template<typename RECORD_TYPE , const uint_fast8_t MAX_LOOKAHEAD = 4, const unsigned char SMALLEST_CHAR = 'A', const unsigned char LARGEST_CHAR = 'Z', typename LT_KEY_COMPARE = FastLookupUtils::ltBinaryBlock>
void FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::resetIterator |
( |
FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE > * |
level | ) |
|
|
inline |
Reset the iterator so that the next call to nextElement() returns the first record.
- Parameters
-
level | points to the table to be associated with the iterator. |
References FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::currentLookaheadDepth, FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::IteratorState::reset(), and FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::stateStack.
Referenced by FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::FastLookupTableIterator(), and FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::firstElement().