00001
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef XAPIAN_INCLUDED_FLINT_MODIFIEDPOSTLIST_H
00022 #define XAPIAN_INCLUDED_FLINT_MODIFIEDPOSTLIST_H
00023
00024 #include <map>
00025 #include <string>
00026
00027 using namespace std;
00028
00029 #include "flint_postlist.h"
00030
00031 class FlintModifiedPostList : public FlintPostList {
00033
00034 map<Xapian::docid, pair<char, Xapian::termcount> > mods;
00035 map<Xapian::docid, pair<char, Xapian::termcount> >::const_iterator it;
00037
00039 PositionList * poslist;
00040
00042 void skip_deletes(Xapian::weight w_min);
00043
00044 public:
00046 FlintModifiedPostList(Xapian::Internal::RefCntPtr<const FlintDatabase> this_db_,
00047 const string & tname_,
00048 const map<Xapian::docid, pair<char, Xapian::termcount> > & mods_)
00049 : FlintPostList(this_db_, tname_),
00050 mods(mods_), it(mods.begin()), poslist(0)
00051 { }
00052
00053 ~FlintModifiedPostList();
00054
00055 Xapian::doccount get_termfreq() const;
00056
00057 Xapian::docid get_docid() const;
00058
00059 Xapian::doclength get_doclength() const;
00060
00061 Xapian::termcount get_wdf() const;
00062
00063 PositionList *read_position_list();
00064
00065 PositionList *open_position_list() const;
00066
00067 PostList * next(Xapian::weight w_min);
00068
00069 PostList * skip_to(Xapian::docid desired_did, Xapian::weight w_min);
00070
00071 bool at_end() const;
00072
00073 std::string get_description() const;
00074 };
00075
00076 #endif // XAPIAN_INCLUDED_FLINT_MODIFIEDPOSTLIST_H