lux/api/result.h

00001 #ifndef LUX_API_RESULT_H
00002 #define LUX_API_RESULT_H
00003 
00004 #include "lux/lux.h"
00005 #include "lux/document/document.h"
00006 #include <string>
00007 #include <vector>
00008 
00009 namespace Lux {
00010 
00011   class Paging;
00012 
00016   class Result {
00017   public:
00022     Result(Document &doc);
00028     Result(Document &doc, score_t score);
00032     ~Result() {}
00036     std::string get_id(void);
00040     std::string get(std::string field_name);
00044     score_t get_score(void);
00045 
00046   private:
00047     Document doc_;
00048     score_t score_;
00049   };
00050 
00051   typedef std::vector<Result> ResultList;
00052   typedef ResultList::iterator RLIterator;
00053 
00057   class ResultSet {
00058   public:
00062     ResultSet(void) {}
00069     ResultSet(uint32_t total_num, uint32_t base, uint32_t num);
00074     ResultSet(Paging &paging);
00078     ~ResultSet() {}
00082     void set_total_num(uint32_t total_num);
00086     void set_base(uint32_t base);
00090     void set_num(uint32_t num);
00094     uint32_t get_base(void);
00098     uint32_t get_base(void) const;
00102     uint32_t get_num(void);
00106     uint32_t get_num(void) const;
00110     uint32_t get_total_num(void);
00114     uint32_t get_total_num(void) const;
00118     void add(Result result);
00122     bool has_next(void);
00126     bool has_next(void) const;
00130     const Result get_next(void);
00134     const Result get_next(void) const;
00138     void init_iter(void);
00139 
00140   private:
00141     ResultList result_list_;
00142     mutable RLIterator rl_iterator_; 
00143     uint32_t total_num_;
00144     uint32_t base_;
00145     uint32_t num_;
00146   };
00147 
00148 }
00149 
00150 #endif

Generated on Fri Feb 5 15:50:30 2010 for Lux by  doxygen 1.4.7