quaere.h
Go to the documentation of this file.
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

Make It A Bit Faster
Contact us
Disclaimers
FastBit source code
FastBit mailing list archive