TDbiDBProxy.hxx
Go to the documentation of this file.00001
00002 #ifndef DBIDBPROXY_H
00003 #define DBIDBPROXY_H
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include <string>
00036 using std::string;
00037 #include <list>
00038 #include <vector>
00039
00040 #include "TDbi.hxx"
00041
00042
00043 class TDbiCascader;
00044 class TDbiInRowStream;
00045 class TDbiTableMetaData;
00046 class TDbiTableProxy;
00047 class TDbiValidityRec;
00048 class TVldContext;
00049
00050 class TVldTimeStamp;
00051
00052 class TDbiDBProxy
00053 {
00054
00055 public:
00056
00057 #ifndef __CINT__
00058 typedef const std::vector<UInt_t> SeqList_t;
00059 #endif
00060
00061
00062 TDbiDBProxy(TDbiCascader& cascader,
00063 const string& tableName,
00064 const TDbiTableMetaData* metaData,
00065 const TDbiTableMetaData* metaValid,
00066 const TDbiTableProxy* tableProxy);
00067 virtual ~TDbiDBProxy();
00068
00069
00070 Bool_t HasEpoch() const;
00071 UInt_t GetNumDb() const;
00072 const string& GetTableName() const { return fTableName; }
00073 const TDbiTableProxy* GetTableProxy() const { return fTableProxy; }
00074 void StoreMetaData(TDbiTableMetaData& metaData) const;
00075 Bool_t TableExists(Int_t selectDbNo=-1) const;
00076
00077
00078 void FindTimeBoundaries(const TVldContext& vc,
00079 const TDbi::Task& task,
00080 UInt_t dbNo,
00081 const TDbiValidityRec& lowestPriorityVrec,
00082 Bool_t resolveByCreationDate,
00083 TVldTimeStamp& start,
00084 TVldTimeStamp& end) const;
00085 TDbiInRowStream* QueryAllValidities(UInt_t dbNo,UInt_t seqNo=0) const;
00086 TDbiInRowStream* QuerySeqNo(UInt_t seqNo,UInt_t dbNo) const;
00087 #ifndef __CINT__
00088
00089 TDbiInRowStream* QuerySeqNos(SeqList_t& seqNos,
00090 UInt_t dbNo,
00091 const string& sqlData = "",
00092 const string& fillOpts = "") const;
00093 #endif
00094 TDbiInRowStream* QueryValidity(const TVldContext& vc,
00095 const TDbi::Task& task,
00096 UInt_t dbNo) const;
00097 TDbiInRowStream* QueryValidity(const string& context,
00098 const TDbi::Task& task,
00099 UInt_t dbNo) const;
00100 TDbiInRowStream* QueryValidity(UInt_t seqNo,
00101 UInt_t dbNo) const;
00102
00103
00104 Bool_t ReplaceInsertDate(const TVldTimeStamp& ts,
00105 UInt_t SeqNo,
00106 UInt_t dbNo) const;
00107 Bool_t RemoveSeqNo(UInt_t seqNo,
00108 UInt_t dbNo) const;
00109 Bool_t ReplaceSeqNo(UInt_t oldSeqNo,
00110 UInt_t newSeqNo,
00111 UInt_t dbNo) const;
00112
00113
00114 void SetSqlCondition(const string& sql) {
00115 fSqlCondition = sql; }
00116
00117 private:
00118
00119
00120
00121 TDbiDBProxy(const TDbiDBProxy&);
00122 TDbiDBProxy& operator=(const TDbiDBProxy&);
00123
00124
00125
00126
00127 TDbiCascader& fCascader;
00128
00129
00130 const TDbiTableMetaData* fMetaData;
00131
00132
00133 const TDbiTableMetaData* fMetaValid;
00134
00135
00136
00137 string fSqlCondition;
00138
00139
00140 string fTableName;
00141
00142
00143 const TDbiTableProxy* fTableProxy;
00144
00145 ClassDef(TDbiDBProxy,0)
00146
00147 };
00148
00149
00150 #endif // DBIDBPROXY_H
00151