00001 // File: $Id$ 00002 // Author: John Wu <John.Wu at ACM.org> 00003 // Copyright 2010-2012 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); 00038 static quaere* create(const char* sel, const char* from, const char* where, 00039 const ibis::partList& prts); 00040 static quaere* create(const ibis::part* partr, const ibis::part* parts, 00041 const char* colname, const char* condr = 0, 00042 const char* conds = 0, const char* sel = 0); 00043 00047 virtual void roughCount(uint64_t& nmin, uint64_t& nmax) const = 0; 00051 virtual int64_t count() const = 0; 00052 00061 virtual table* select() const = 0; 00065 virtual table* select(const char*) const = 0; 00072 virtual ibis::table* 00073 select(const ibis::table::stringList& colnames) const = 0; 00074 00075 virtual ~quaere() {}; 00076 00077 protected: 00078 quaere() {} //< Default constructor. Only used by derived classes. 00079 00080 private: 00081 quaere(const quaere&); // no copying 00082 quaere& operator=(const quaere&); // no assignment 00083 }; // class ibis::quaere 00084 00085 namespace ibis { 00086 ibis::part* findDataset(const char*); 00087 ibis::part* findDataset(const char*, const ibis::partList&); 00088 } 00089 #endif
![]() |