xapian-core  2.0.0
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
WrapperPostList Class Reference

Base class for a PostList which wraps another PostList. More...

#include <wrapperpostlist.h>

+ Inheritance diagram for WrapperPostList:
+ Collaboration diagram for WrapperPostList:

Public Member Functions

 WrapperPostList (PostList *pl_)
 
 ~WrapperPostList ()
 
Xapian::docid get_docid () const
 Return the current docid. More...
 
double get_weight (Xapian::termcount doclen, Xapian::termcount unique_terms, Xapian::termcount wdfdocmax) const
 Return the weight contribution for the current position. More...
 
bool at_end () const
 Return true if the current position is past the last entry in this list. More...
 
double recalc_maxweight ()
 Recalculate the upper bound on what get_weight() can return. More...
 
PositionListread_position_list ()
 Read the position list for the term in the current document and return a pointer to it (owned by the PostList). More...
 
PostListnext (double w_min)
 Advance the current position to the next document in the postlist. More...
 
PostListskip_to (Xapian::docid, double w_min)
 Skip forward to the specified docid. More...
 
std::string get_description () const
 Return a string description of this object. More...
 
Xapian::termcount get_wdf () const
 Return the wdf for the document at the current position. More...
 
Xapian::termcount count_matching_subqs () const
 Count the number of leaf subqueries which match at the current position. More...
 
- Public Member Functions inherited from Xapian::Internal::PostList
virtual ~PostList ()
 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...
 
Xapian::doccount get_termfreq () const
 Get an estimate of the number of documents this PostList will return. More...
 
virtual PositionListopen_position_list () const
 Read the position list for the term in the current document and return a pointer to it (not owned by the PostList). More...
 
virtual PostListcheck (Xapian::docid did, double w_min, bool &valid)
 Check if the specified docid occurs in this postlist. More...
 
PostListnext ()
 Advance the current position to the next document in the postlist. More...
 
PostListskip_to (Xapian::docid did)
 Skip forward to the specified docid. More...
 
virtual void gather_position_lists (OrPositionList *orposlist)
 Gather PositionList* objects for a subtree. More...
 
virtual void get_docid_range (docid &first, docid &last) const
 Get the bounds on the range of docids this PostList can return. More...
 

Protected Attributes

PostListpl
 
- Protected Attributes inherited from Xapian::Internal::PostList
Xapian::doccount termfreq
 Estimate of the number of documents this PostList will return. More...
 

Private Member Functions

void operator= (const WrapperPostList &)=delete
 Don't allow assignment. More...
 
 WrapperPostList (const WrapperPostList &)=delete
 Don't allow copying. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Xapian::Internal::PostList
 PostList ()
 Only constructable as a base class for derived classes. More...
 

Detailed Description

Base class for a PostList which wraps another PostList.

Generally methods are just forwarded to the wrapped PostList. For next() and skip_to(), the return value is also handled, so the wrapped PostList is updated when pruning happens.

Definition at line 32 of file wrapperpostlist.h.

Constructor & Destructor Documentation

◆ WrapperPostList() [1/2]

WrapperPostList::WrapperPostList ( const WrapperPostList )
privatedelete

Don't allow copying.

◆ WrapperPostList() [2/2]

WrapperPostList::WrapperPostList ( PostList pl_)
inlineexplicit

◆ ~WrapperPostList()

WrapperPostList::~WrapperPostList ( )
inline

Definition at line 47 of file wrapperpostlist.h.

References pl.

Member Function Documentation

◆ at_end()

bool WrapperPostList::at_end ( ) const
virtual

Return true if the current position is past the last entry in this list.

Implements Xapian::Internal::PostList.

Definition at line 40 of file wrapperpostlist.cc.

References Xapian::Internal::PostList::at_end(), and pl.

◆ count_matching_subqs()

Xapian::termcount WrapperPostList::count_matching_subqs ( ) const
virtual

Count the number of leaf subqueries which match at the current position.

Reimplemented from Xapian::Internal::PostList.

Definition at line 92 of file wrapperpostlist.cc.

References Xapian::Internal::PostList::count_matching_subqs(), and pl.

◆ get_description()

std::string WrapperPostList::get_description ( ) const
virtual

Return a string description of this object.

Implements Xapian::Internal::PostList.

Definition at line 80 of file wrapperpostlist.cc.

References Xapian::Internal::PostList::get_description(), and pl.

◆ get_docid()

Xapian::docid WrapperPostList::get_docid ( ) const
virtual

Return the current docid.

Implements Xapian::Internal::PostList.

Definition at line 26 of file wrapperpostlist.cc.

References Xapian::Internal::PostList::get_docid(), and pl.

◆ get_wdf()

Xapian::termcount WrapperPostList::get_wdf ( ) const
virtual

Return the wdf for the document at the current position.

The default implementation throws Xapian::UnimplementedError.

Reimplemented from Xapian::Internal::PostList.

Definition at line 86 of file wrapperpostlist.cc.

References Xapian::Internal::PostList::get_wdf(), and pl.

Referenced by SynonymPostList::get_weight().

◆ get_weight()

double WrapperPostList::get_weight ( Xapian::termcount  doclen,
Xapian::termcount  unique_terms,
Xapian::termcount  wdfdocmax 
) const
virtual

Return the weight contribution for the current position.

Implements Xapian::Internal::PostList.

Definition at line 32 of file wrapperpostlist.cc.

References Xapian::Internal::PostList::get_weight(), and pl.

◆ next()

PostList * WrapperPostList::next ( double  w_min)
virtual

Advance the current position to the next document in the postlist.

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.

Parameters
w_minThe minimum weight contribution that is needed (this is just a hint which PostList subclasses may ignore).
Returns
If a non-NULL pointer is returned, then the caller should substitute the returned pointer for its pointer to us, and then delete us. This "pruning" can only happen for a non-leaf subclass of this class.

Implements Xapian::Internal::PostList.

Definition at line 58 of file wrapperpostlist.cc.

References Xapian::Internal::PostList::next(), and pl.

◆ operator=()

void WrapperPostList::operator= ( const WrapperPostList )
privatedelete

Don't allow assignment.

◆ read_position_list()

PositionList * WrapperPostList::read_position_list ( )
virtual

Read the position list for the term in the current document and return a pointer to it (owned by the PostList).

The default implementation throws Xapian::UnimplementedError.

Reimplemented from Xapian::Internal::PostList.

Definition at line 52 of file wrapperpostlist.cc.

References pl, and Xapian::Internal::PostList::read_position_list().

◆ recalc_maxweight()

double WrapperPostList::recalc_maxweight ( )
virtual

Recalculate the upper bound on what get_weight() can return.

The maximum weight that get_weight() can return can decrease as the match progresses (typically when the PostList tree prunes) - calling this method calculates a current upper bound.

Note that this method may be called after the postlist has reached the end. In this situation, the method should return 0.

Implements Xapian::Internal::PostList.

Definition at line 46 of file wrapperpostlist.cc.

References pl, and Xapian::Internal::PostList::recalc_maxweight().

◆ skip_to()

PostList * WrapperPostList::skip_to ( Xapian::docid  did,
double  w_min 
)
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).

Parameters
w_minThe minimum weight contribution that is needed (this is just a hint which PostList subclasses may ignore).
Returns
If a non-NULL pointer is returned, then the caller should substitute the returned pointer for its pointer to us, and then delete us. This "pruning" can only happen for a non-leaf subclass of this class.

Implements Xapian::Internal::PostList.

Definition at line 69 of file wrapperpostlist.cc.

References pl, and Xapian::Internal::PostList::skip_to().

Referenced by SynonymPostList::skip_to().

Member Data Documentation

◆ pl

PostList* WrapperPostList::pl
protected

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