Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

DbiDBProxy.h

Go to the documentation of this file.
00001 
00002 #ifndef DBIDBPROXY_H
00003 #define DBIDBPROXY_H
00004 
00036 #include <string>
00037 using std::string;
00038 #include <list>
00039 #include <vector>
00040 
00041 #include "DatabaseInterface/Dbi.h"
00042 
00043 class DbiCascader;
00044 class DbiResultSet;
00045 class DbiTableMetaData;
00046 class DbiTableProxy;
00047 class VldContext;
00048 class VldTimeStamp;
00049 
00050 class DbiDBProxy
00051 {
00052 
00053 public:
00054 
00055 #ifndef __CINT__
00056 typedef const std::vector<UInt_t> SeqList_t;
00057 #endif
00058 
00059 // Constructors.
00060            DbiDBProxy(DbiCascader& cascader, 
00061                       const string& tableName,
00062                       const DbiTableMetaData* metaData,
00063                       const DbiTableMetaData* metaValid,
00064                       const DbiTableProxy* tableProxy);
00065   virtual ~DbiDBProxy();
00066 
00067 // State testing member functions
00068               UInt_t GetNumDb() const;
00069        const string& GetTableName() const { return fTableNameUc; }
00070 const DbiTableProxy* GetTableProxy() const { return fTableProxy; }
00071                 void StoreMetaData(DbiTableMetaData& metaData) const;
00072               Bool_t TableExists(Int_t selectDbNo=-1) const;
00073 
00074 // Query (input) member functions
00075            void FindTimeBoundaries(const VldContext& vc, 
00076                                    const Dbi::Task& task,
00077                                    UInt_t dbNo,
00078                                    VldTimeStamp earliestCreate,
00079                                    VldTimeStamp& start,
00080                                    VldTimeStamp& end) const;
00081   DbiResultSet* QueryAllValidities(UInt_t dbNo,UInt_t seqNo=0) const;
00082   DbiResultSet* QuerySeqNo(UInt_t seqNo,UInt_t dbNo) const;
00083 #ifndef __CINT__
00084 
00085   DbiResultSet* QuerySeqNos(SeqList_t& seqNos,
00086                             UInt_t dbNo,
00087                             const string& sqlData = "",
00088                             const string& fillOpts = "") const;
00089 #endif
00090   DbiResultSet* QueryValidity(const VldContext& vc, 
00091                               const Dbi::Task& task,
00092                               UInt_t dbNo) const;
00093   DbiResultSet* QueryValidity(const string& context, 
00094                               const Dbi::Task& task,
00095                               UInt_t dbNo) const;
00096   DbiResultSet* QueryValidity(UInt_t seqNo,
00097                               UInt_t dbNo) const;
00098 
00099 // Store (output) member functions
00100          Bool_t ReplaceInsertDate(const VldTimeStamp& ts,
00101                                   UInt_t SeqNo,
00102                                   UInt_t dbNo) const;
00103          Bool_t RemoveSeqNo(UInt_t seqNo,
00104                             UInt_t dbNo) const;
00105          Bool_t ReplaceSeqNo(UInt_t oldSeqNo,
00106                              UInt_t newSeqNo,
00107                              UInt_t dbNo) const;
00108 
00109 // State changing member functions
00110            void SetSqlCondition(const string& sql) { 
00111                                                   fSqlCondition = sql; }
00112 
00113 private:
00114 
00115    Bool_t ReplaceSeqNoOracle(UInt_t oldSeqNo,
00116                              UInt_t newSeqNo,
00117                              UInt_t dbNo) const;
00118 // Disabled (not implemented) copy constructor and asignment.
00119 
00120  DbiDBProxy(const DbiDBProxy&);
00121  DbiDBProxy& operator=(const DbiDBProxy&);
00122 
00123 // Data members
00124  
00126   DbiCascader& fCascader;    
00127 
00129   const DbiTableMetaData* fMetaData;
00130 
00132   const DbiTableMetaData* fMetaValid; 
00133 
00136   string fSqlCondition;
00137 
00139   string fTableName; 
00140 
00142   string fTableNameUc; 
00143 
00145    const DbiTableProxy* fTableProxy;
00146 
00148   string fVldSuffix;
00149 
00150 ClassDef(DbiDBProxy,0)     //  Proxy for physical database.
00151 
00152 };
00153 
00154 #endif  // DBIDBPROXY_H

Generated on Mon Feb 15 11:06:34 2010 for loon by  doxygen 1.3.9.1