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

DbiValidityRec.h

Go to the documentation of this file.
00001 #ifndef DBIVALIDITYREC_H
00002 #define DBIVALIDITYREC_H
00003 
00026 #include "DatabaseInterface/Dbi.h"
00027 #include "DatabaseInterface/DbiTableRow.h"
00028 #include "Validity/VldRange.h"
00029 #include "Validity/VldTimeStamp.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 VldRange& range,
00050                           Dbi::Task task,
00051                           Int_t aggNo,
00052                           UInt_t seqNo,
00053                           Int_t dbNo = -1,
00054                           Bool_t isGap = kFALSE,
00055                           VldTimeStamp time = VldTimeStamp());
00056   virtual ~DbiValidityRec();
00057 
00058 // State testing member functions
00059 
00060   virtual DbiTableRow* CreateTableRow() const {
00061                                            return new DbiValidityRec; }
00062                  Int_t GetAggregateNo() const { return fAggregateNo; }
00063           VldTimeStamp GetCreationDate() const { return fCreationDate; }
00064                 UInt_t GetDbNo() const { return fDbNo; }
00065           VldTimeStamp GetInsertDate() const { return fInsertDate; }
00066              Dbi::Task GetTask() const { return fTask; }
00067            std::string GetL2CacheName() const;
00068                 UInt_t GetSeqNo() const { return fSeqNo; }
00069   const DbiTableProxy* GetTableProxy() const { return fTableProxy; }
00070        const VldRange& GetVldRange() const { return fVldRange;}
00071                 Bool_t HasExpired(const DbiValidityRec& other) const;
00072                 Bool_t HasExpired(const VldContext& vc,
00073                                   const Dbi::Task& task) const;
00074                Bool_t IsCompatible(const VldContext& vc,
00075                                     const Dbi::Task& task) const;
00076                 Bool_t IsGap() const { return fIsGap; }
00077 
00078 static     std::string GetL2CacheName(UInt_t seqLo, UInt_t seqHi, VldTimeStamp ts);
00079 
00080 // State changing member functions
00081         void AndTimeWindow(const VldTimeStamp& start,
00082                            const VldTimeStamp& end);
00083         void SetAggregateNo(Int_t aggNo) { fAggregateNo = aggNo; }
00084         void SetDbNo(Int_t dbNo) { fDbNo = dbNo; }
00085         void SetTableProxy(const DbiTableProxy* tp) { fTableProxy = tp; }
00086         void SetTimeWindow(const VldTimeStamp& start,
00087                            const VldTimeStamp& end);
00088         void SetVldRange(const VldRange& range) { fVldRange=range;}
00089         void Trim(const VldTimeStamp& queryTime,
00090                   const DbiValidityRec& other);
00091 
00092 // I/O  member functions
00093   virtual void Fill(DbiResultSet& rs,
00094                     const DbiValidityRec* vrec);
00095   virtual void Store(DbiOutRowStream& ors,
00096                     const DbiValidityRec* vrec) const;
00097           void Streamer(DbiBinaryFile& file);
00098 
00099 private:  
00100 
00101 // Data members
00102 
00103 
00107   Int_t fAggregateNo;
00108 
00110   VldTimeStamp fCreationDate;
00111 
00113   Int_t fDbNo;  
00114 
00116   VldTimeStamp fInsertDate; 
00117 
00119     Bool_t fIsGap;
00120 
00122   Dbi::Task fTask;
00123 
00125   Int_t fSeqNo;
00126 
00128   const DbiTableProxy* fTableProxy;
00129 
00131   VldRange fVldRange;
00132 
00133 ClassDef(DbiValidityRec,0)  // Validity range table row. 
00134 
00135 };
00136 
00137 
00138 #endif  // DBIVALIDITYREC_H

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