Go to the documentation of this file.00001
00002
00003
00004 #ifndef IBIS_QUAERE_H
00005 #define IBIS_QUAERE_H
00006
00013 #include "part.h"
00014
00015 namespace ibis {
00016 class quaere;
00017 }
00018
00035 class FASTBIT_CXX_DLLSPEC ibis::quaere {
00036 public:
00037 static quaere* create(const char* sel, const char* from, const char* where);
00039 static quaere* create(const ibis::part* partr, const ibis::part* parts,
00040 const char* colname, const char* condr = 0,
00041 const char* conds = 0, const char* sel = 0);
00042
00046 virtual void roughCount(uint64_t& nmin, uint64_t& nmax) const = 0;
00050 virtual int64_t count() const = 0;
00051
00053 virtual table* select() const = 0;
00065 virtual ibis::table* select(const ibis::table::stringList& colnames) const = 0;
00066
00067 virtual ~quaere() {};
00068
00069 protected:
00070 quaere() {}
00071
00072 private:
00073 quaere(const quaere&);
00074 quaere& operator=(const quaere&);
00075 };
00076 #endif