24 #ifndef OM_HGUARD_BRANCHPOSTLIST_H
25 #define OM_HGUARD_BRANCHPOSTLIST_H
112 if (!p)
return false;
bool next_handling_prune(PostList *&pl, double w_min, MultiMatch *matcher)
bool skip_to_handling_prune(PostList *&pl, Xapian::docid did, double w_min, MultiMatch *matcher)
bool check_handling_prune(PostList *&pl, Xapian::docid did, double w_min, MultiMatch *matcher, bool &valid)
Base class for postlists which are generated by merging two sub-postlists.
virtual ~BranchPostList()
PostList * r
Right sub-postlist.
BranchPostList & operator=(const BranchPostList &)
BranchPostList(const BranchPostList &)
BranchPostList(PostList *l_, PostList *r_, MultiMatch *matcher_)
void handle_prune(PostList *&kid, PostList *ret)
Utility method, to call recalc_maxweight() and do the pruning if a next() or skip_to() returns non-NU...
PostList * l
Left sub-postlist.
MultiMatch * matcher
The object which is using this postlist to perform a match.
void recalc_maxweight()
Called by postlists to indicate that they've rearranged themselves and the maxweight now possible is ...
Abstract base class for postlists.
virtual Internal * check(Xapian::docid did, double w_min, bool &valid)
Check if the specified docid occurs in this postlist.
virtual Internal * next(double w_min)=0
Advance the current position to the next document in the postlist.
virtual Internal * skip_to(Xapian::docid did, double w_min)=0
Skip forward to the specified docid.
class for performing a match
unsigned XAPIAN_DOCID_BASE_TYPE docid
A unique identifier for a document.
Abstract base class for postlists.