xapian-core
1.4.27
|
Class for merging ValueList objects from subdatabases. More...
#include <multivaluelist.h>
Public Member Functions | |
MultiValueList (const std::vector< Xapian::Internal::intrusive_ptr< Xapian::Database::Internal > > &dbs, Xapian::valueno slot_) | |
Constructor. More... | |
~MultiValueList () | |
Destructor. More... | |
Xapian::docid | get_docid () const |
Return the docid at the current position. More... | |
std::string | get_value () const |
Return the value at the current position. More... | |
Xapian::valueno | get_valueno () const |
Return the value slot for the current position/this iterator. More... | |
bool | at_end () const |
Return true if the current position is past the last entry in this list. More... | |
void | next () |
Advance the current position to the next document in the value stream. More... | |
void | skip_to (Xapian::docid) |
Skip forward to the specified docid. More... | |
bool | check (Xapian::docid did) |
Check if the specified docid occurs in this valuestream. More... | |
std::string | get_description () const |
Return a string description of this object. More... | |
Public Member Functions inherited from Xapian::ValueIterator::Internal | |
virtual | ~Internal () |
We have virtual methods and want to be able to delete derived classes using a pointer to the base class, so we need a virtual destructor. More... | |
Public Member Functions inherited from Xapian::Internal::intrusive_base | |
intrusive_base () | |
Construct with no references. More... | |
Private Member Functions | |
void | operator= (const MultiValueList &) |
Don't allow assignment. More... | |
MultiValueList (const MultiValueList &) | |
Don't allow copying. More... | |
Private Attributes | |
Xapian::docid | current_docid |
Current docid (or 0 if we haven't started yet). More... | |
std::vector< SubValueList * > | valuelists |
Vector of sub-valuelists which we use as a heap. More... | |
Xapian::valueno | slot |
The value slot we're iterating over. More... | |
size_t | multiplier |
Additional Inherited Members | |
Public Attributes inherited from Xapian::Internal::intrusive_base | |
unsigned | _refs |
Reference count. More... | |
Protected Member Functions inherited from Xapian::ValueIterator::Internal | |
Internal () | |
Only constructable as a base class for derived classes. More... | |
Class for merging ValueList objects from subdatabases.
Definition at line 34 of file multivaluelist.h.
|
private |
Don't allow copying.
MultiValueList::MultiValueList | ( | const std::vector< Xapian::Internal::intrusive_ptr< Xapian::Database::Internal > > & | dbs, |
Xapian::valueno | slot_ | ||
) |
Constructor.
Definition at line 84 of file multi_valuelist.cc.
References AssertRel, multiplier, slot, and valuelists.
MultiValueList::~MultiValueList | ( | ) |
|
virtual |
Return true if the current position is past the last entry in this list.
Implements Xapian::ValueIterator::Internal.
Definition at line 131 of file multi_valuelist.cc.
References valuelists.
Referenced by get_docid(), and get_value().
|
virtual |
Check if the specified docid occurs in this valuestream.
The caller is required to ensure that the specified docid actually exists in the database.
This method acts like skip_to() if that can be done at little extra cost, in which case it then sets valid to true.
Otherwise it simply checks if a particular docid is present. If it is, it returns true. If it isn't, it returns false, and leaves the position unspecified (and hence the result of calling methods which depend on the current position, such as get_docid(), are also unspecified). In this state, next() will advance to the first matching position after docid, and skip_to() will act as it would if the position was the first matching position after docid.
The default implementation calls skip_to().
Reimplemented from Xapian::ValueIterator::Internal.
Definition at line 204 of file multi_valuelist.cc.
References skip_to().
|
virtual |
Return a string description of this object.
Implements Xapian::ValueIterator::Internal.
Definition at line 212 of file multi_valuelist.cc.
|
virtual |
Return the docid at the current position.
Implements Xapian::ValueIterator::Internal.
Definition at line 111 of file multi_valuelist.cc.
References Assert, at_end(), and current_docid.
|
virtual |
Return the value at the current position.
Implements Xapian::ValueIterator::Internal.
Definition at line 118 of file multi_valuelist.cc.
References Assert, at_end(), and valuelists.
|
virtual |
Return the value slot for the current position/this iterator.
Implements Xapian::ValueIterator::Internal.
Definition at line 125 of file multi_valuelist.cc.
References slot.
|
virtual |
Advance the current position to the next document in the value stream.
The list starts before the first entry in the list, so next(), skip_to() or check() must be called before any methods which need the context of the current position.
Implements Xapian::ValueIterator::Internal.
Definition at line 137 of file multi_valuelist.cc.
References current_docid, multiplier, rare, and valuelists.
|
private |
Don't allow assignment.
|
virtual |
Skip forward to the specified docid.
If the specified docid isn't in the list, position ourselves on the first document after it (or at_end() if no greater docids are present).
Implements Xapian::ValueIterator::Internal.
Definition at line 178 of file multi_valuelist.cc.
References current_docid, multiplier, and valuelists.
Referenced by check().
|
private |
Current docid (or 0 if we haven't started yet).
Definition at line 42 of file multivaluelist.h.
Referenced by get_docid(), next(), and skip_to().
|
private |
Definition at line 50 of file multivaluelist.h.
Referenced by MultiValueList(), next(), and skip_to().
|
private |
The value slot we're iterating over.
Definition at line 48 of file multivaluelist.h.
Referenced by get_valueno(), and MultiValueList().
|
private |
Vector of sub-valuelists which we use as a heap.
Definition at line 45 of file multivaluelist.h.
Referenced by at_end(), get_value(), MultiValueList(), next(), skip_to(), and ~MultiValueList().