00001 /*========================================================================== 00002 * Copyright (c) 2003 Carnegie Mellon University. All Rights Reserved. 00003 * 00004 * Use of the Lemur Toolkit for Language Modeling and Information Retrieval 00005 * is subject to the terms of the software license set forth in the LICENSE 00006 * file included with this software, and also available at 00007 * http://www.lemurproject.org/license.html 00008 * 00009 *========================================================================== 00010 */ 00011 00012 00013 #ifndef _INVPROPTERMLIST_HPP 00014 #define _INVPROPTERMLIST_HPP 00015 00016 #include "InvFPTermList.hpp" 00017 00018 /* Some additional methods to make use of lists with properties in them a bit 00019 * easier to deal with. We assume that you have a term, and all properties 00020 * pertaining to a certain term indexed with the same position as what 00021 * PropIndexTH does. Term comes first, all properties for that term indexed 00022 * afters. 00023 * This is to be used with sequence (not bad of words) InvFPTermList as that 00024 * one would get from calling InvFPIndex::TermInfoListSeq(). Use with bag of 00025 * word lists will return error values. 00026 * 00027 */ 00028 class InvFPTermPropList: public InvFPTermList { 00029 public: 00030 00034 TermInfo* nextTerm() const; 00035 TermInfo* nextTerm(InvFPTermPropList::iterator &it) const; 00036 00040 bool hasMoreTerm() const; 00041 bool hasMoreTerm(InvFPTermPropList::iterator &it) const; 00042 00047 void skipTo(int pos) const; 00048 void skipTo(InvFPTermPropList::iterator &it, int pos) const; 00049 00053 int nextEntryPos() const; 00054 int nextEntryPos(InvFPTermPropList::iterator &it) const; 00055 00060 int nextTermPos() const; 00061 int nextTermPos(InvFPTermPropList::iterator &it) const; 00062 00063 }; 00064 00065 #endif