FARGOS/VISTA Object Management Environment Core  ..
FARGOS/VISTA Object Management Environment Core Table of Contents
FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator Class Reference

Iterator for FastLookupTable. More...

#include <fastLookupTable.hpp>

Classes

class  IteratorState
 Internal class for iterator state. More...
 

Public Member Functions

void resetIterator (FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE > *level)
 Reset the iterator so that the next call to nextElement() returns the first record. More...
 
bool atEnd () const OME_ALWAYS_INLINE
 Returns a Boolean indicator if the end of the table has been seen. More...
 
RECORD_TYPE * nextElement ()
 Returns a pointer to the next element located by the iterator. More...
 
 FastLookupTableIterator (FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE > *levelPtr)
 Constructor for FastLookupTable iterator. More...
 
 ~FastLookupTableIterator ()
 Destructor for FastLookupTable iterator. More...
 
RECORD_TYPE * firstElement ()
 Return first element in table. More...
 

Private Attributes

IteratorState stateStack [MAX_LOOKAHEAD]
 
int_fast16_t currentLookaheadDepth
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ FastLookupTableIterator()

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

Constructor for FastLookupTable iterator.

Parameters
levelPtrpoints to the table to be associated with the iterator.

References FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::resetIterator().

◆ ~FastLookupTableIterator()

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 ( )
inline

Destructor for FastLookupTable iterator.

Member Function Documentation

◆ atEnd()

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

◆ 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>
RECORD_TYPE* FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::firstElement ( )
inline

◆ 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
0indicates 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().

◆ resetIterator()

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

Member Data Documentation

◆ currentLookaheadDepth

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>
int_fast16_t FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::currentLookaheadDepth
private

◆ stateStack

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>
IteratorState FastLookupTable< RECORD_TYPE, MAX_LOOKAHEAD, SMALLEST_CHAR, LARGEST_CHAR, LT_KEY_COMPARE >::FastLookupTableIterator::stateStack[MAX_LOOKAHEAD]
private

The documentation for this class was generated from the following file:
Generated: Tue Jul 28 2020 16:03:27
Support Information