41 if (did_a > did_b)
return true;
42 if (did_a < did_b)
return false;
50 delete valuelists[--count];
65 return valuelists[0]->get_value();
83 if (current_docid == 0) {
88 valuelists[i]->next();
89 if (valuelists[i]->at_end()) {
94 swap(valuelists[i], valuelists[j]);
109 Heap::pop(valuelists, valuelists + count,
120 current_docid = valuelists[0]->get_merged_docid(n_shards);
131 valuelists[i]->skip_to(did, n_shards);
132 if (valuelists[i]->at_end()) {
133 delete valuelists[i];
137 swap(valuelists[i], valuelists[j]);
142 if (
rare(count == 0))
147 current_docid = valuelists[0]->get_merged_docid(n_shards);
161 return "MultiValueList()";
bool check(Xapian::docid did)
Check if the specified docid occurs in this valuestream.
Xapian::valueno get_valueno() const
Return the value slot for the current position/this iterator.
std::string get_value() const
Return the value at the current position.
std::string get_description() const
Return a string description of this object.
void next()
Advance the current position to the next document in the value stream.
~MultiValueList()
Destructor.
bool at_end() const
Return true if the current position is past the last entry in this list.
Xapian::docid get_docid() const
Return the docid at the current position.
void skip_to(Xapian::docid)
Skip forward to the specified docid.
A smart pointer that uses intrusive reference counting.
Hierarchy of classes which Xapian can throw as exceptions.
C++ STL heap implementation with extensions.
Class for merging ValueList objects from subdatabases.
void pop(_RandomAccessIterator first, _RandomAccessIterator last, _Compare comp)
void replace(_RandomAccessIterator first, _RandomAccessIterator last, _Compare comp)
void make(_RandomAccessIterator first, _RandomAccessIterator last, _Compare comp)
unsigned valueno
The number for a value slot in a document.
unsigned XAPIAN_DOCID_BASE_TYPE doccount
A count of documents.
unsigned XAPIAN_DOCID_BASE_TYPE docid
A unique identifier for a document.
Various assertion macros.
Comparison functor which orders SubValueList* by ascending docid.
bool operator()(const SubValueList *a, const SubValueList *b) const
Order by ascending docid.
Xapian::docid get_docid() const