/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

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 Context;
00048 class TimeStamp;
00049 class DbiValidityRec;
00050 
00051 class DbiDBProxy
00052 {
00053 
00054 public:
00055 
00056 #ifndef __CINT__
00057 typedef const std::vector<UInt_t> SeqList_t;
00058 #endif
00059 
00060 // Constructors.
00061            DbiDBProxy(DbiCascader& cascader, 
00062                       const string& tableName,
00063                       const DbiTableMetaData* metaData,
00064                       const DbiTableMetaData* metaValid,
00065                       const DbiTableProxy* tableProxy);
00066   virtual ~DbiDBProxy();
00067 
00068 // State testing member functions
00069               UInt_t GetNumDb() const;
00070        const string& GetTableName() const { return fTableName; }
00071 const DbiTableProxy* GetTableProxy() const { return fTableProxy; }
00072                 void StoreMetaData(DbiTableMetaData& metaData) const;
00073               Bool_t TableExists() const;
00074 
00075 // Query (input) member functions
00076 
00077            UInt_t FindSeqNoWithVersionDate( const TimeStamp& versionDate,
00078                                              const DbiValidityRec& vrec,
00079                                              UInt_t dbNo,
00080                                              UInt_t uniqingSiteMask=0,
00081                                              UInt_t uniqingSimMask=0,
00082                                              UInt_t excludingSeqno=0,
00083                                              UInt_t useTimeGate=0,
00084                                              Bool_t count=false
00085                                            ) const ;
00086 
00087            UInt_t FindSeqNoWithVersionDate( const TimeStamp& versionDate,
00088                                             const Context& vc, 
00089                                             const Dbi::SubSite& subsite,
00090                                             const Dbi::Task& task,
00091                                             UInt_t dbNo,
00092                                             UInt_t uniqingSiteMask,
00093                                             UInt_t uniqingSimMask,
00094                                             UInt_t excludingSeqno,
00095                                             UInt_t useTimeGate,
00096                                             Bool_t count
00097                                           ) const ;
00098 
00099 
00100            void FindTimeBoundaries(const Context& vc, 
00101                                    const Dbi::SubSite& subsite,
00102                                    const Dbi::Task& task,
00103                                    UInt_t dbNo,
00104                                    TimeStamp earliestCreate,
00105                                    TimeStamp& start,
00106                                    TimeStamp& end) const;
00107   DbiResultSet* QueryAllValidities(UInt_t dbNo,UInt_t seqNo=0) const;
00108   DbiResultSet* QuerySeqNo(UInt_t seqNo,UInt_t dbNo) const;
00109 #ifndef __CINT__
00110 
00111   DbiResultSet* QuerySeqNos(SeqList_t& seqNos,
00112                             UInt_t dbNo,
00113                             const string& sqlData = "",
00114                             const string& fillOpts = "") const;
00115 #endif
00116   DbiResultSet* QueryValidity(const Context& vc, 
00117                               const Dbi::SubSite& subsite,
00118                               const Dbi::Task& task,
00119                               UInt_t dbNo) const;
00120   DbiResultSet* QueryValidity(const string& context, 
00121                               const Dbi::SubSite& subsite,
00122                               const Dbi::Task& task,
00123                               UInt_t dbNo) const;
00124   DbiResultSet* QueryValidity(UInt_t seqNo,
00125                               UInt_t dbNo) const;
00126 
00127 // Store (output) member functions
00128          Bool_t ReplaceInsertDate(const TimeStamp& ts,
00129                                   UInt_t SeqNo,
00130                                   UInt_t dbNo) const;
00131          Bool_t RemoveSeqNo(UInt_t seqNo,
00132                             UInt_t dbNo) const;
00133          Bool_t ReplaceSeqNo(UInt_t oldSeqNo,
00134                              UInt_t newSeqNo,
00135                              UInt_t dbNo) const;
00136 
00137 // State changing member functions
00138            void SetSqlCondition(const string& sql) { 
00139                                                   fSqlCondition = sql; }
00140 
00141            void SetExtraOrdering(const string& sql) { 
00142                                                   fExtraOrdering = sql; }
00143 // Getters
00144 
00145            string GetSqlCondition(){ return fSqlCondition ; }
00146 
00147            string GetExtraOrdering(){ return fExtraOrdering ; }
00148 
00149 
00150 private:
00151 
00152    Bool_t ReplaceSeqNoOracle(UInt_t oldSeqNo,
00153                              UInt_t newSeqNo,
00154                              UInt_t dbNo) const;
00155 // Disabled (not implemented) copy constructor and asignment.
00156 
00157  DbiDBProxy(const DbiDBProxy&);
00158  DbiDBProxy& operator=(const DbiDBProxy&);
00159 
00160 // Data members
00161  
00163   DbiCascader& fCascader;    
00164 
00166   const DbiTableMetaData* fMetaData;
00167 
00169   const DbiTableMetaData* fMetaValid; 
00170 
00173   string fSqlCondition;
00174 
00176   string fTableName; 
00177 
00179    const DbiTableProxy* fTableProxy;
00180 
00182   string fVldSuffix;
00183 
00186   string fExtraOrdering ;
00187 
00188 // Removed: ClassDef(DbiDBProxy,0)     //  Proxy for physical database.
00189 
00190 };
00191 
00192 #endif  // DBIDBPROXY_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 09:56:45 for DatabaseInterface by doxygen 1.7.4