clang-tools 10.0.0

Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
clang::clangd::dex::Iterator Class Referenceabstract

Iterator is the interface for Query Tree node. More...

`#include <Iterator.h>`

## Public Types
enum | Kind { Kind::And, Kind::Or, Kind::True, Kind::False, Kind::Other }
| Inspect iterator type, used internally for optimizing query trees. More...

## Public Member Functions
virtual bool | reachedEnd () const =0
| Returns true if all valid DocIDs were processed and hence the iterator is exhausted. More...
virtual void | advance ()=0
| Moves to next valid DocID. More...
virtual void | advanceTo (DocID ID)=0
| Moves to the first valid DocID which is equal or higher than given ID. More...
virtual DocID | peek () const =0
| Returns the current element this iterator points to. More...
virtual float | consume ()=0
| Informs the iterator that the current document was consumed, and returns its boost. More...
virtual size_t | estimateSize () const =0
| Returns an estimate of advance() calls before the iterator is exhausted. More...
virtual | ~Iterator ()
Kind | kind () const

## Protected Member Functions
| Iterator (Kind MyKind=Kind::Other)

## Friends
llvm::raw_ostream & | operator<< (llvm::raw_ostream &OS, const Iterator &Iterator)
| Prints a convenient human-readable iterator representation by recursively dumping iterators in the following format: More...

## Detailed Description

Iterator is the interface for Query Tree node.

The simplest type of Iterator is DocumentIterator which is simply a wrapper around PostingList iterator and serves as the Query Tree leaf. More sophisticated examples of iterators can manage intersection, union of the elements produced by other iterators (their children) to form a multi-level Query Tree. The interface is designed to be extensible in order to support multiple types of iterators.

Definition at line 54 of file Iterator.h.

## Member Enumeration Documentation

## ◆ Kind

enum clang::clangd::dex::Iterator::Kind
| strong

Inspect iterator type, used internally for optimizing query trees.

Enumerator
And |
Or |
True |
False |
Other |

Definition at line 101 of file Iterator.h.

## Constructor & Destructor Documentation

## ◆ ~Iterator()

virtual clang::clangd::dex::Iterator::~Iterator | ( |  | ) |
| inline virtual

Definition at line 84 of file Iterator.h.

## ◆ Iterator()

clang::clangd::dex::Iterator::Iterator | ( | Kind | MyKind = `Kind::Other` | ) |
| inline protected

Definition at line 105 of file Iterator.h.

## Member Function Documentation

## ◆ advance()

virtual void clang::clangd::dex::Iterator::advance | ( |  | ) |
| pure virtual

Moves to next valid DocID.

If it doesn't exist, the iterator is exhausted and proceeds to the END.

Note: reachedEnd() must be false.

## ◆ advanceTo()

virtual void clang::clangd::dex::Iterator::advanceTo | ( | DocID | ID | ) |
| pure virtual

Moves to the first valid DocID which is equal or higher than given ID.

If it doesn't exist, the iterator is exhausted and proceeds to the END.

Note: reachedEnd() must be false.

## ◆ consume()

virtual float clang::clangd::dex::Iterator::consume | ( |  | ) |
| pure virtual

Informs the iterator that the current document was consumed, and returns its boost.

Note: If this iterator has any child iterators that contain the document, consume() should be called on those and their boosts incorporated. consume() must not be called on children that don't contain the current doc.

## ◆ estimateSize()

virtual size_t clang::clangd::dex::Iterator::estimateSize | ( |  | ) | const
| pure virtual

Returns an estimate of advance() calls before the iterator is exhausted.

## ◆ kind()

Kind clang::clangd::dex::Iterator::kind | ( |  | ) | const
| inline

Definition at line 102 of file Iterator.h.

## ◆ peek()

virtual DocID clang::clangd::dex::Iterator::peek | ( |  | ) | const
| pure virtual

Returns the current element this iterator points to.

Note: reachedEnd() must be false.

## ◆ reachedEnd()

virtual bool clang::clangd::dex::Iterator::reachedEnd | ( |  | ) | const
| pure virtual

Returns true if all valid DocIDs were processed and hence the iterator is exhausted.

## Friends And Related Function Documentation

## ◆ operator<<

llvm::raw_ostream& operator<< | ( | llvm::raw_ostream & | OS,
|  | const Iterator & | Iterator
| ) |  |
| friend

Prints a convenient human-readable iterator representation by recursively dumping iterators in the following format:

(Type Child1 Child2 ...)

Where Type is the iterator type representation: "&" for And, "|" for Or, ChildN is N-th iterator child. Raw iterators over PostingList are represented as "[... CurID ...]" where CurID is the current PostingList entry being inspected.

Definition at line 95 of file Iterator.h.

The documentation for this class was generated from the following file:

- Iterator.h