EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FairDbValidityRecBuilder.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file FairDbValidityRecBuilder.h
1 #ifndef FAIRDBVALIDITYRECBUILDER_H
2 #define FAIRDBVALIDITYRECBUILDER_H
3 #include <string>
4 #include <map>
5 #include <vector>
6 
7 #include "FairDb.h"
8 #include "FairDbValidityRec.h"
9 #include "ValContext.h"
10 
11 
12 class FairDbProxy;
13 
15 {
16 
17 
18  public:
19 
20 // Typedefs and enums
21 
22  enum { kMAX_AGGREGATE_NO = 1000 };
23 
24 // Constructors and destructors
26  const ValContext& vc,
27  const FairDb::Task& task,
28  Int_t selectDbNo = -1,
29  Bool_t findFullTimeWindow = true);
31  const string& context,
32  const FairDb::Task& task);
34  const std::string tableName);
35 
36  virtual ~FairDbValidityRecBuilder();
37 
38 // State testing member functions
39  std::string GetL2CacheName() const;
40  FairDb::Task GetTask() const { return fTask; }
41  UInt_t GetNumValidityRec() const {
42  return fVRecs.size();
43  }
45  Int_t IndexOfAggno(Int_t aggNo) const;
46  Bool_t IsExtendedContext() const {
47  return fIsExtendedContext;
48  }
49  const FairDbValidityRec& GetValidityRec(Int_t rowNo) const;
50  const FairDbValidityRec& GetValidityRecFromAggNo(Int_t aggNo) const {
51  return this->GetValidityRec(this->IndexOfAggno(aggNo));
52  }
53  const FairDbValidityRec& GetValidityRecFromSeqNo(UInt_t SeqNo) const;
54  Bool_t NonAggregated() const {
55  return ! this->IsExtendedContext()
56  && this->GetNumValidityRec() == 1;
57  }
58 
59 // State changing member functions
60 
61 
62  private:
63 
64 // State changing member functions
65 
66  UInt_t AddNewAgg(const FairDbValidityRec& vrec,Int_t aggNo);
67  UInt_t AddNewGap(Int_t aggNo);
68 
69  void MakeGapRec(const ValContext& vc,
70  const string& tableName,
71  Bool_t findFullTimeWindow = true);
72 
73 
74  FairDbValidityRec fGap; // Default (gap) validity record
76  FairDb::Task fTask; // Query task
77 
78  std::vector<FairDbValidityRec> fVRecs;
79  std::map<Int_t,UInt_t> fAggNoToIndex;
80 
81 
82  ClassDef(FairDbValidityRecBuilder,0) // Creator of eff. ValidityRecs
83 
84 };
85 
86 
87 #endif // FAIRDBVALIDITYRECBUILDER_H