EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FairDbConfigSet.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file FairDbConfigSet.h
1 #ifndef FAIRDBCONFIGSET_H
2 #define FAIRDBCONFIGSET_H
3 
4 
5 #include <string>
6 using std::string;
7 
8 #include <vector>
9 using std::vector;
10 
11 #include "FairDbTableRow.h"
12 #include "FairDbFieldType.h"
13 #include <iosfwd>
14 
15 class FairDbConfigSet;
16 class FairDbValidityRec;
17 
18 std::ostream& operator<<(std::ostream& s, const FairDbConfigSet& cfSet);
19 
21 {
22 
23  public:
24 
25 // Constructors and destructors.
27  virtual ~FairDbConfigSet();
28 
29 // State testing member functions
30 
31  virtual FairDbTableRow* CreateTableRow() const {
32  return new FairDbConfigSet;
33  }
34  Int_t GetAggregateNo() const { return fAggregateNo; }
35  UInt_t GetNumParams() const { return fParams.size(); }
36  string GetParamName(UInt_t parNo) const;
37  FairDbFieldType GetParamType(UInt_t parNo) const;
38  string GetParamValue(UInt_t parNo) const;
39 
40 // State changing member functions
41  void Clear(const Option_t* = "") { fParams.clear(); }
42  void PushBack(const string& name,
43  const string& value,
44  const FairDbFieldType& type);
45  void SetAggregateNo(Int_t aggNo) { fAggregateNo = aggNo; }
46 
47 // I/O member functions
48  virtual void Fill(FairDbResultSet& rs,
49  const FairDbValidityRec* vrec);
50  virtual void Store(FairDbOutRowStream& ors,
51  const FairDbValidityRec* vrec) const;
52 
53  private:
54 // Constructors and destructors.
55  FairDbConfigSet(const FairDbConfigSet& from); // No! { LEA_CTOR; *this = from; }
56 
57 
58 // Internal structures.
59 
60  struct Param {
61  Param() : Name(), Value(), Type() {}
62  Param(const Param& that) : Name(that.Name), Value(that.Value), Type(that.Type) {
63  *this = that;
64  }
65  Param(const string& name,
66  const string& value,
67  const FairDbFieldType& type) : Name(name), Value(value), Type(type) {
68  }
69  ~Param() { }
70 
71  string Name;
72  string Value;
74  };
75 
76  vector<Param*> fParams;
77 
78  Int_t fAggregateNo;
79 
80  ClassDef(FairDbConfigSet,0) // Configuration data.
81 
82 };
83 
84 
85 #endif // FAIRDBCONFIGSET_H