/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef DBIVALIDITYREC_H 00002 #define DBIVALIDITYREC_H 00003 00026 #include "DatabaseInterface/Dbi.h" 00027 #include "DatabaseInterface/DbiTableRow.h" 00028 #include "Context/ContextRange.h" 00029 #include "Context/TimeStamp.h" 00030 00031 #include <iosfwd> 00032 #include <string> 00033 00034 class DbiBinaryFile; 00035 class DbiTableProxy; 00036 class DbiValidityRec; 00037 00038 ostream& operator<<(ostream& s, const DbiValidityRec& vRec); 00039 00040 class DbiValidityRec : public DbiTableRow 00041 { 00042 00043 00044 public: 00045 00046 // Constructors and destructors. 00047 DbiValidityRec(Int_t dbNo = -1, Bool_t isGap = kTRUE); 00048 DbiValidityRec(const DbiValidityRec& from); 00049 DbiValidityRec(const ContextRange& range, 00050 Dbi::SubSite subsite, 00051 Dbi::Task task, 00052 Int_t aggNo, 00053 UInt_t seqNo, 00054 Int_t dbNo = -1, 00055 Bool_t isGap = kFALSE, 00056 TimeStamp time = TimeStamp()); 00057 virtual ~DbiValidityRec(); 00058 00059 // State testing member functions 00060 00061 virtual DbiTableRow* CreateTableRow() const { 00062 return new DbiValidityRec; } 00063 Int_t GetAggregateNo() const { return fAggregateNo; } 00064 TimeStamp GetVersionDate() const { return fVersionDate; } 00065 UInt_t GetDbNo() const { return fDbNo; } 00066 TimeStamp GetInsertDate() const { return fInsertDate; } 00067 Dbi::SubSite GetSubSite() const { return fSubSite; } 00068 Dbi::Task GetTask() const { return fTask; } 00069 std::string GetL2CacheName() const; 00070 UInt_t GetSeqNo() const { return fSeqNo; } 00071 const DbiTableProxy* GetTableProxy() const { return fTableProxy; } 00072 const ContextRange& GetContextRange() const { return fContextRange;} 00073 Bool_t HasExpired(const DbiValidityRec& other) const; 00074 Bool_t HasExpired(const Context& vc, 00075 const Dbi::SubSite& subsite, 00076 const Dbi::Task& task ) const; 00077 Bool_t IsCompatible(const Context& vc, 00078 const Dbi::SubSite& subsite, 00079 const Dbi::Task& task ) const; 00080 Bool_t IsGap() const { return fIsGap; } 00081 00082 static std::string GetL2CacheName(UInt_t seqLo, UInt_t seqHi, TimeStamp ts); 00083 00084 // State changing member functions 00085 void AndTimeWindow(const TimeStamp& start, 00086 const TimeStamp& end); 00087 void SetAggregateNo(Int_t aggNo) { fAggregateNo = aggNo; } 00088 void SetDbNo(Int_t dbNo) { fDbNo = dbNo; } 00089 void SetTableProxy(const DbiTableProxy* tp) { fTableProxy = tp; } 00090 void SetTimeWindow(const TimeStamp& start, 00091 const TimeStamp& end); 00092 void SetContextRange(const ContextRange& range) { fContextRange=range;} 00093 void Trim(const TimeStamp& queryTime, 00094 const DbiValidityRec& other); 00095 00096 // I/O member functions 00097 virtual void Fill(DbiResultSet& rs, 00098 const DbiValidityRec* vrec); 00099 virtual void Store(DbiOutRowStream& ors, 00100 const DbiValidityRec* vrec) const; 00101 void Streamer(DbiBinaryFile& file); 00102 00103 private: 00104 00105 // Data members 00106 00107 00111 Int_t fAggregateNo; 00112 00114 TimeStamp fVersionDate; 00115 00117 Int_t fDbNo; 00118 00120 TimeStamp fInsertDate; 00121 00123 Bool_t fIsGap; 00124 00126 Dbi::SubSite fSubSite; 00127 00129 Dbi::Task fTask; 00130 00132 Int_t fSeqNo; 00133 00135 const DbiTableProxy* fTableProxy; 00136 00138 ContextRange fContextRange; 00139 00140 // Removed: ClassDef(DbiValidityRec,0) // Validity range table row. 00141 00142 }; 00143 00144 00145 #endif // DBIVALIDITYREC_H