00001 00023 #ifndef XAPIAN_INCLUDED_EXPANDDECIDER_H 00024 #define XAPIAN_INCLUDED_EXPANDDECIDER_H 00025 00026 #include <set> 00027 #include <xapian/types.h> 00028 00029 namespace Xapian { 00030 00031 class TermIterator; 00032 class ExpandDecider; 00033 00037 class ExpandDeciderFilterTerms : public ExpandDecider { 00038 public: 00041 ExpandDeciderFilterTerms(TermIterator terms, TermIterator termsend); 00042 00043 virtual int operator()(const termname &tname) const; 00044 00045 private: 00046 std::set<termname> tset; 00047 }; 00048 00052 class ExpandDeciderAnd : public ExpandDecider { 00053 public: 00058 ExpandDeciderAnd(const ExpandDecider *left_, const ExpandDecider *right_); 00059 00060 virtual int operator()(const termname &tname) const; 00061 00062 private: 00063 const ExpandDecider *left; 00064 const ExpandDecider *right; 00065 }; 00066 00067 }; 00068 00069 #endif