InMemoryPostList Class Reference

A PostList in an inmemory database. More...

#include <inmemory_database.h>

Inheritance diagram for InMemoryPostList:

Inheritance graph
[legend]
Collaboration diagram for InMemoryPostList:

Collaboration graph
[legend]

List of all members.

Public Member Functions

Xapian::doccount get_termfreq () const
 Return the exact term frequency.
Xapian::docid get_docid () const
 Return the current docid.
Xapian::termcount get_doclength () const
 Return the length of current document.
Xapian::termcount get_wdf () const
 Return the wdf for the document at the current position.
PositionListread_position_list ()
 Read the position list for the term in the current document and return a pointer to it (owned by the PostList).
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).
PostListnext (Xapian::weight w_min)
 Advance the current position to the next document in the postlist.
PostListskip_to (Xapian::docid did, Xapian::weight w_min)
 Skip forward to the specified docid.
bool at_end () const
 Return true if the current position is past the last entry in this list.
string get_description () const
 Return a string description of this object.

Private Member Functions

 InMemoryPostList (Xapian::Internal::RefCntPtr< const InMemoryDatabase > db, const InMemoryTerm &imterm, const std::string &term_)

Private Attributes

vector< InMemoryPosting >
::const_iterator 
pos
vector< InMemoryPosting >
::const_iterator 
end
Xapian::doccount termfreq
bool started
InMemoryPositionList mypositions
 List of positions of the current term.
Xapian::Internal::RefCntPtr
< const InMemoryDatabase
db

Friends

class InMemoryDatabase


Detailed Description

A PostList in an inmemory database.

Definition at line 135 of file inmemory_database.h.


Constructor & Destructor Documentation

InMemoryPostList::InMemoryPostList ( Xapian::Internal::RefCntPtr< const InMemoryDatabase db,
const InMemoryTerm imterm,
const std::string &  term_ 
) [private]

Definition at line 79 of file inmemory_database.cc.

References end, and pos.


Member Function Documentation

bool InMemoryPostList::at_end (  )  const [virtual]

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

Implements Xapian::PostingIterator::Internal.

Definition at line 140 of file inmemory_database.cc.

References db, end, and pos.

Referenced by get_docid(), next(), and skip_to().

string InMemoryPostList::get_description (  )  const [virtual]

Return a string description of this object.

Implements Xapian::PostingIterator::Internal.

Definition at line 147 of file inmemory_database.cc.

References Xapian::Internal::str(), and termfreq.

Xapian::docid InMemoryPostList::get_docid (  )  const [virtual]

Return the current docid.

Implements Xapian::PostingIterator::Internal.

Definition at line 99 of file inmemory_database.cc.

References Assert, at_end(), db, and started.

Referenced by get_doclength().

Xapian::termcount InMemoryPostList::get_doclength (  )  const [virtual]

Return the length of current document.

Implements Xapian::PostingIterator::Internal.

Definition at line 153 of file inmemory_database.cc.

References db, and get_docid().

Xapian::doccount InMemoryPostList::get_termfreq (  )  const [virtual]

Return the exact term frequency.

Leaf postlists have an exact termfreq, which get_termfreq_min(), get_termfreq_max(), and get_termfreq_est() all report.

Implements LeafPostList.

Definition at line 93 of file inmemory_database.cc.

References termfreq.

Xapian::termcount InMemoryPostList::get_wdf (  )  const [virtual]

Return the wdf for the document at the current position.

The default implementation throws Xapian::UnimplementedError.

Reimplemented from Xapian::PostingIterator::Internal.

Definition at line 175 of file inmemory_database.cc.

References db.

PostList * InMemoryPostList::next ( Xapian::weight  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() must be called before any methods which need the context of the current position.

Parameters:
w_min The 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::PostingIterator::Internal.

Definition at line 108 of file inmemory_database.cc.

References Assert, at_end(), db, end, pos, and started.

PositionList * InMemoryPostList::open_position_list (  )  const [virtual]

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

The default implementation throws Xapian::UnimplementedError.

Reimplemented from Xapian::PostingIterator::Internal.

Definition at line 168 of file inmemory_database.cc.

References db, and pos.

PositionList * InMemoryPostList::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::PostingIterator::Internal.

Definition at line 160 of file inmemory_database.cc.

References db, mypositions, pos, and InMemoryPositionList::set_data().

PostList * InMemoryPostList::skip_to ( Xapian::docid  ,
Xapian::weight  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_min The 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::PostingIterator::Internal.

Definition at line 122 of file inmemory_database.cc.

References Assert, at_end(), db, Xapian::PostingIterator::Internal::next(), and started.


Friends And Related Function Documentation

friend class InMemoryDatabase [friend]

Definition at line 136 of file inmemory_database.h.


Member Data Documentation

vector<InMemoryPosting>::const_iterator InMemoryPostList::end [private]

Definition at line 139 of file inmemory_database.h.

Referenced by at_end(), InMemoryPostList(), and next().

List of positions of the current term.

This list is populated when read_position_list() is called.

Definition at line 146 of file inmemory_database.h.

Referenced by read_position_list().

vector<InMemoryPosting>::const_iterator InMemoryPostList::pos [private]

bool InMemoryPostList::started [private]

Definition at line 141 of file inmemory_database.h.

Referenced by get_docid(), next(), and skip_to().

Definition at line 140 of file inmemory_database.h.

Referenced by get_description(), and get_termfreq().


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

Documentation for Xapian (version 1.2.13).
Generated on 9 Jan 2013 by Doxygen 1.5.9.