ddc
|
CQOccurrenceIterator (formerly CQNearEvalItem) is used to iterate over query occurrences; used by near() queries. More...
#include <QueryNode.h>
Public Member Functions | |
CQOccurrenceIterator (CQueryNode *node_=NULL) | |
CQOccurrenceIterator (const CQOccurrenceIterator &b) | |
virtual | ~CQOccurrenceIterator () |
void | bind (CQueryTokenNode *node_, const CQOccurrenceIterator &src, int minOffset, int maxOffset) |
CQOccurrenceIterator & | operator= (const CQOccurrenceIterator &b) |
void | assign (CQueryNode *node_) |
CQOccurrenceIterator & | operator= (CQueryNode *node_) |
bool | valid () const |
void | invalidate () |
operator bool () const | |
size_t | chunksize () const |
CTokenNo | tocc (DWORD occ) const |
CTokenNo | tmin () const |
CTokenNo | tmax () const |
CTokenNo | tmax_prev () const |
void | operator++ () |
void | seek (const CTokenNo Tok) |
bool | operator== (const CQOccurrenceIterator &b) const |
Public Attributes | |
CQueryNode * | node |
(sub)query node More... | |
int | cnt |
limit for node->m_Occurrences[] More... | |
int | cur |
index into node->m_Occurrences[] More... | |
DWORD | chpos |
index into node->m_ChunkLengths[] (match occurrence) More... | |
CQOccurrenceIterator (formerly CQNearEvalItem) is used to iterate over query occurrences; used by near() queries.
|
inline |
default constructor
|
inline |
copy constructor
|
inlinevirtual |
void CQOccurrenceIterator::bind | ( | CQueryTokenNode * | node_, |
const CQOccurrenceIterator & | src, | ||
int | minOffset, | ||
int | maxOffset | ||
) |
Create an iterator bound to the neighbors of src, used to avoid expensive EvaluateWithoutHits() for universal sub-queries as near() arguments. Destructively alters node_->m_Occurrences[] (and associated vectors). Generates a "bound" occurence in node_->m_Occurrences[] for each source-occurence occi = src.node->m_Occurrences[i]
and each offset off with minOffset <= off <= maxOffset
representing token *occi + off
, modulo off==0
.
node_ | universal wildcard node in which to create bound occurrences. |
src | source iterator to use for occurrence generation (should already have been populated by EvaluateWithoutHits()) |
minOffset | minimum offset for bound occurrences wrt source-occurrence |
maxOffset | maximum offset for bound occurrences wrt source-occurrence (inclusive) |
References cnt, CQueryTokenNode::m_bAny, CQueryTokenNode::m_MatchId, CQueryTokenNode::m_NodeIndex, CQueryNode::m_Occurrences, and node.
Referenced by CQueryNearNode::FindOccurrences2(), and CQueryNearNode::FindOccurrences3().
|
inline |
assignment operator
References chpos, cnt, cur, and node.
Referenced by CQTokenOccurrenceIterator::operator=().
|
inline |
node-assignment
References CQueryNode::m_Occurrences.
Referenced by CQTokenOccurrenceIterator::assign(), CQueryNearNode::FindOccurrences2(), and CQueryNearNode::FindOccurrences3().
|
inline |
|
inline |
test whether iterator is valid
Referenced by CQueryWithNode::EvaluateWithoutHits(), CQueryNearNode::FindOccurrences2(), and CQueryNearNode::FindOccurrences3().
|
inline |
invalidate iterator
|
inline |
bool typecast just wraps valid()
|
inline |
get size of current occurrence-chunk; assumes iterator is valid
References CQueryNode::m_ChunkLengths.
Referenced by CQueryNearNode::FindOccurrences2(), CQueryNearNode::FindOccurrences3(), and operator==().
References CQueryNode::m_Occurrences.
|
inline |
References CQueryNode::m_Occurrences.
Referenced by CQueryNearNode::FindOccurrences2(), and CQueryNearNode::FindOccurrences3().
|
inline |
References CQueryNode::m_ChunkLengths, and CQueryNode::m_Occurrences.
Referenced by CQueryNearNode::FindOccurrences2(), and CQueryNearNode::FindOccurrences3().
|
inline |
References CQueryNode::m_Occurrences.
|
inline |
References CQueryNode::m_ChunkLengths.
|
inline |
bool CQOccurrenceIterator::operator== | ( | const CQOccurrenceIterator & | b | ) | const |
References chunksize(), cur, CQueryNode::m_Occurrences, and node.
CQueryNode* CQOccurrenceIterator::node |
(sub)query node
Referenced by bind(), CQTokenOccurrenceIterator::bind(), CQueryNearNode::FindOccurrences2(), CQueryNearNode::FindOccurrences3(), operator=(), operator==(), and CQTokenOccurrenceIterator::operator==().
int CQOccurrenceIterator::cnt |
limit for node->m_Occurrences[]
Referenced by bind(), CQTokenOccurrenceIterator::bind(), CQueryNearNode::FindOccurrences2(), CQueryNearNode::FindOccurrences3(), and operator=().
int CQOccurrenceIterator::cur |
index into node->m_Occurrences[]
Referenced by CQueryWithNode::EvaluateWithoutHits(), CQueryNearNode::FindOccurrences2(), CQueryNearNode::FindOccurrences3(), operator=(), operator==(), and CQTokenOccurrenceIterator::operator==().
DWORD CQOccurrenceIterator::chpos |
index into node->m_ChunkLengths[] (match occurrence)
Referenced by operator=().