/
FairRuntimeDb.h
113 lines (93 loc) · 3.44 KB
/
FairRuntimeDb.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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#ifndef FAIRRUNTIMEDB_H
#define FAIRRUNTIMEDB_H
#include "TObject.h"
#include "TList.h"
#include "FairLogger.h"
class FairParIo;
class FairParSet;
class FairRtdbRun;
class FairContFact;
class FairParTSQLIo;
class FairDetParTSQLIo;
class FairGenericParTSQLIo;
static TList contFactories; //! list of container factories
class FairRuntimeDb : public TObject
{
private:
static FairRuntimeDb* gRtdb; //!
protected:
FairRuntimeDb(void);
TList* containerList; // list of parameter containers
TList* runs; // list of runs
FairParIo* firstInput; // first (prefered) input for parameters
FairParIo* secondInput; // second input (used if not found in first input)
FairParIo* output; // output for parameters
FairRtdbRun* currentRun; // Current run
TString currentFileName; // Name of current event file
Bool_t versionsChanged; // flag for write of list of runs (set kTRUE by each write)
Bool_t isRootFileOutput; // flag indicating that the output is a ROOT file
/** Fair Logger */
FairLogger* fLogger; //!
/**
* Select which IO type to use.
*/
typedef enum {
UNKNOWN_Type = 0,
AsciiFileOutput = 1,// Ascii in-out-put
RootFileOutput = 2,// Root Files
RootTSQLOutput = 3// Use a TSQL db
} ParamIOType;
ParamIOType ioType;//IO Type
public:
static FairRuntimeDb* instance(void);
~FairRuntimeDb(void);
Bool_t addParamContext(const char*);
void printParamContexts();
void addContFactory(FairContFact*);
FairContFact* getContFactory(const Text_t*);
Bool_t addContainer(FairParSet*);
FairParSet* getContainer(const Text_t*);
FairParSet* findContainer(const char*);
void removeContainer(Text_t*);
void removeAllContainers(void);
Bool_t initContainers(Int_t runId,Int_t refId=-1,const Text_t* fileName="");
void setContainersStatic(Bool_t f=kTRUE);
Bool_t writeContainers(void);
Bool_t writeContainer(FairParSet*,FairRtdbRun*,FairRtdbRun* refRun=0);
FairRtdbRun* addRun(Int_t runId,Int_t refId=-1);
FairRtdbRun* getRun(Int_t);
FairRtdbRun* getRun(Text_t*);
FairRtdbRun* getCurrentRun(void) {return currentRun;}
Text_t const* getCurrentFileName() {return currentFileName.Data();}
void clearRunList(void);
void removeRun(Text_t*);
Bool_t setInputVersion(Int_t run,Text_t* container,
Int_t version,Int_t inputNumber);
Bool_t setRootOutputVersion(Int_t run,Text_t* container,Int_t version);
void setVersionsChanged(Bool_t f=kTRUE) {versionsChanged=f;}
void resetInputVersions(void);
void resetOutputVersions(void);
void resetAllVersions(void);
Bool_t readAll(void);
void writeVersions(void);
void saveOutput(void);
Bool_t setFirstInput(FairParIo*);
Bool_t setSecondInput(FairParIo*);
Bool_t setOutput(FairParIo*);
FairParIo* getFirstInput(void);
FairParIo* getSecondInput(void);
FairParIo* getOutput(void);
void closeFirstInput(void);
void closeSecondInput(void);
void closeOutput(void);
void activateParIo(FairParIo*);
TList* getListOfContainers() {return containerList;}
void print(void);
Int_t findOutputVersion(FairParSet*);
private:
FairRuntimeDb(const FairRuntimeDb& M);
FairRuntimeDb& operator= (const FairRuntimeDb&) {return *this;}
Bool_t initContainers(void);
ClassDef(FairRuntimeDb,0) // Class for runtime database
};
#endif /* !FAIRRUNTIMEDB_H */