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

DbiValidityRecBuilder.h

Go to the documentation of this file.
00001 #ifndef DBIVALIDITYRECBUILDER_H
00002 #define DBIVALIDITYRECBUILDER_H
00003 
00028 #include <string>
00029 #include <map>
00030 #include <vector>
00031 
00032 #include "DatabaseInterface/Dbi.h"
00033 #include "DatabaseInterface/DbiValidityRec.h"
00034 #include "Validity/VldContext.h"
00035 
00036 
00037 class DbiDBProxy;
00038 
00039 class DbiValidityRecBuilder
00040 {
00041 
00042 
00043 public:
00044 
00045 // Typedefs and enums
00046 
00047   enum { kMAX_AGGREGATE_NO = 1000 };
00048 
00049 // Constructors and destructors
00050            DbiValidityRecBuilder(const DbiDBProxy& proxy,
00051                                  const VldContext& vc, 
00052                                  const Dbi::Task& task,
00053                                  Int_t selectDbNo = -1,
00054                                  Bool_t findFullTimeWindow = true);
00055            DbiValidityRecBuilder(const DbiDBProxy& proxy,
00056                                  const string& context, 
00057                                  const Dbi::Task& task);
00058             DbiValidityRecBuilder(const DbiValidityRec& vr,
00059                                   const std::string tableName);
00060 
00061  virtual ~DbiValidityRecBuilder();
00062 
00063 // State testing member functions
00064           std::string GetL2CacheName() const;
00065             Dbi::Task GetTask() const { return fTask; }
00066                UInt_t GetNumValidityRec() const { 
00067                                                  return fVRecs.size(); }
00069                 Int_t IndexOfAggno(Int_t aggNo) const;
00070                Bool_t IsExtendedContext() const {
00071                                             return fIsExtendedContext; }
00072 const DbiValidityRec& GetValidityRec(Int_t rowNo) const;
00073 const DbiValidityRec& GetValidityRecFromAggNo(Int_t aggNo) const {
00074                return this->GetValidityRec(this->IndexOfAggno(aggNo)); }
00075  const DbiValidityRec& GetValidityRecFromSeqNo(UInt_t SeqNo) const;
00076                Bool_t NonAggregated() const {
00077                  return  ! this->IsExtendedContext()
00078                         && this->GetNumValidityRec() == 1; }
00079 
00080 // State changing member functions
00081 
00082 
00083 private:  
00084 
00085 // State changing member functions
00086 
00088 UInt_t AddNewAgg(const DbiValidityRec& vrec,Int_t aggNo);
00090 UInt_t AddNewGap(Int_t aggNo);
00091 
00092   void MakeGapRec(const VldContext& vc, 
00093                   const string& tableName,
00094                   Bool_t findFullTimeWindow = true);
00095 
00096 // Data members
00097 
00098              DbiValidityRec fGap;     // Default (gap) validity record 
00100                      Bool_t fIsExtendedContext;  
00101                   Dbi::Task fTask;    // Query task
00109 
00110 std::vector<DbiValidityRec> fVRecs;
00112  std::map<Int_t,UInt_t>  fAggNoToIndex;
00113 
00114 
00115 ClassDef(DbiValidityRecBuilder,0) // Creator of eff. ValidityRecs
00116 
00117 };
00118 
00119 
00120 #endif  // DBIVALIDITYRECBUILDER_H

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