/
FairDbValidityRec.h
97 lines (77 loc) · 3.1 KB
/
FairDbValidityRec.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#ifndef FAIRDBVALIDITYREC_H
#define FAIRDBVALIDITYREC_H
#include "FairDb.h"
#include "FairDbTableRow.h"
#include "ValRange.h"
#include "ValTimeStamp.h"
#include <iosfwd>
#include <string>
class FairDbBinaryFile;
class FairDbTableProxy;
class FairDbValidityRec;
ostream& operator<<(ostream& s, const FairDbValidityRec& vRec);
class FairDbValidityRec : public FairDbTableRow
{
public:
// Constructors and destructors.
FairDbValidityRec(Int_t dbNo = -1, Bool_t isGap = kTRUE);
FairDbValidityRec(const FairDbValidityRec& from);
FairDbValidityRec(const ValRange& range,
FairDb::Task task,
Int_t aggNo,
UInt_t seqNo,
Int_t dbNo = -1,
Bool_t isGap = kFALSE,
ValTimeStamp time = ValTimeStamp());
virtual ~FairDbValidityRec();
// State testing member functions
virtual FairDbTableRow* CreateTableRow() const {
return new FairDbValidityRec;
}
Int_t GetAggregateNo() const { return fAggregateNo; }
ValTimeStamp GetCreationDate() const { return fCreationDate; }
UInt_t GetDbNo() const { return fDbNo; }
ValTimeStamp GetInsertDate() const { return fInsertDate; }
FairDb::Task GetTask() const { return fTask; }
std::string GetL2CacheName() const;
UInt_t GetSeqNo() const { return fSeqNo; }
const FairDbTableProxy* GetTableProxy() const { return fTableProxy; }
const ValRange& GetValRange() const { return fValRange;}
Bool_t HasExpired(const FairDbValidityRec& other) const;
Bool_t HasExpired(const ValContext& vc,
const FairDb::Task& task) const;
Bool_t IsCompatible(const ValContext& vc,
const FairDb::Task& task) const;
Bool_t IsGap() const { return fIsGap; }
static std::string GetL2CacheName(UInt_t seqLo, UInt_t seqHi, ValTimeStamp ts);
// State changing member functions
void AndTimeWindow(const ValTimeStamp& start,
const ValTimeStamp& end);
void SetAggregateNo(Int_t aggNo) { fAggregateNo = aggNo; }
void SetDbNo(Int_t dbNo) { fDbNo = dbNo; }
void SetTableProxy(const FairDbTableProxy* tp) { fTableProxy = tp; }
void SetTimeWindow(const ValTimeStamp& start,
const ValTimeStamp& end);
void SetValRange(const ValRange& range) { fValRange=range;}
void Trim(const ValTimeStamp& queryTime,
const FairDbValidityRec& other);
// I/O member functions
virtual void Fill(FairDbResultSet& rs,
const FairDbValidityRec* vrec);
virtual void Store(FairDbOutRowStream& ors,
const FairDbValidityRec* vrec) const;
void Streamer(FairDbBinaryFile& file);
private:
Int_t fAggregateNo;
ValTimeStamp fCreationDate;
Int_t fDbNo;
ValTimeStamp fInsertDate;
Bool_t fIsGap;
FairDb::Task fTask;
Int_t fSeqNo;
const FairDbTableProxy* fTableProxy;
ValRange fValRange;
// FairDbValidityRec& operator=(const FairDbValidityRec& from);
ClassDef(FairDbValidityRec,0) // Validity range table row.
};
#endif // DBIVALIDITYREC_H