00001 // File: $Id$ 00002 // Author: John Wu <John.Wu at ACM.org> 00003 // Copyright 2010-2011 the Regents of the University of California 00004 #ifndef IBIS_QUAERE_H 00005 #define IBIS_QUAERE_H 00006 00013 #include "part.h" // ibis::part 00014 00015 namespace ibis { 00016 class quaere; // forward definition 00017 } // namespace ibis 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() {} //< Default constructor. Only used by derived classes. 00071 00072 private: 00073 quaere(const quaere&); // no copying 00074 quaere& operator=(const quaere&); // no assignment 00075 }; // class ibis::quaere 00076 #endif
![]() |