QDb.hh

Go to the documentation of this file.
00001 /*
00002 * APOLLO: A complete DAQ and Online Data Analysis Framework for Cuore 
00003 * $Id: QDb.hh 631 2006-12-19 11:54:27Z giacher $
00004 * M.P. created 21/9/4
00005 * 
00006 * Class QDb: base class for data base interface for Apollo & Diana
00007 *            protected class. To be used only through inheritance.
00008 * 
00009 */
00010 
00019 #ifndef _QDB_HH_
00020 #define _QDB_HH_
00021 
00022 #include <string>
00023 #include <vector>
00024 #include <map>
00025 
00026 #include "QCuore.hh"
00027 #include "QVdt.hh"
00028 
00029 
00030 // Postgres include file
00031 #include "libpq-fe.h"
00032 
00033 
00034 class QDb {
00035 public:
00036 
00037   virtual ~QDb();
00038 
00039   typedef std::vector<QVdt> column;
00040   typedef std::map<std::string, column> QDbTable;
00041 
00045   double DoQueryDouble(const std::string& Query); 
00049   int DoQueryInt(const std::string& Query); 
00053   bool DoQueryBool(const std::string& Query); 
00057   std::string DoQueryString(const std::string& Query); 
00061   std::vector<double>& DoQueryVectorDouble( const std::string& Query); 
00062 
00063 
00076   const QDbTable DoQuery( const std::string& Query, int MaxLines=1000); 
00080   bool DoSQLNoReturn(const std::string& query);
00085   int DoExec(const std::string& Query);
00086 
00087 
00088 protected:
00089 
00098   QDb(const std::string& ip, const std::string& port, const std::string& usr,
00099                   const std::string& pwd, const std::string& db); 
00100 
00104   bool Connect();
00108   bool DisConnect();
00109 
00114   inline bool isConnected() const { return fConnected;}
00115 
00119   const QDbTable DoQuery(const std::string& Table, const std::string& Where, 
00120                   const std::string& Fields, const std::string& Order, 
00121                   int MaxLines); 
00122 
00123 private:
00124 
00125   PGconn *fConnection;
00126   bool fConnected;
00127 
00128   std::string fServerIpAddress;
00129   std::string fServerIpPort;
00130   std::string fUserName;
00131   std::string fPasswd;
00132   std::string fDataBase;
00133 
00134   inline const char* Server() const { return fServerIpAddress.c_str(); }
00135   inline const char* Port() const { return fServerIpPort.c_str(); }
00136   inline const char* User() const { return fUserName.c_str(); }
00137   inline const char* Passwd() const { return fPasswd.c_str(); }
00138 
00139 protected:
00140   inline const char* DataBase() const { return fDataBase.c_str(); }
00141 
00142 };
00143 
00147 std::string TimeToTimestamp( unsigned int t);
00148 
00149 #endif // _QDB_HH_

Generated on Tue Nov 16 10:49:56 2010 for CUORE Software by  doxygen 1.5.6