otsdaq  v2_04_01
DatabaseConfigurationInterface.h
1 #ifndef _ots_DatabaseConfigurationInterface_h_
2 #define _ots_DatabaseConfigurationInterface_h_
3 
4 #include "otsdaq-core/ConfigurationInterface/ConfigurationInterface.h"
5 
6 //#include "ConfigurationInterface.h"
7 
8 #include <list>
9 #include <map>
10 #include <set>
11 #include <stdexcept>
12 
13 namespace ots
14 {
15 class TableBase;
16 
18 {
19  public:
20  using config_version_map_t = std::map<std::string /*name*/, TableVersion /*version*/>;
21 
24 
25  // read configuration from database
26  void fill(TableBase* /*configuration*/, TableVersion /*version*/) const;
27 
28  // write configuration to database
29  void saveActiveVersion(const TableBase* /*configuration*/,
30  bool overwrite = false) const;
31 
32  // find the latest configuration version by configuration type
33  TableVersion findLatestVersion(const TableBase* /*configuration*/) const noexcept;
34 
35  // returns a list of all configuration names
36  std::set<std::string /*name*/> getAllTableNames() const;
37  // find all configuration versions by configuration type
38  std::set<TableVersion> getVersions(const TableBase* /*configuration*/) const noexcept;
39 
40  // find all configuration groups in database
41  std::set<std::string /*name+version*/> getAllTableGroupNames(
42  const std::string& filterString = "") const;
43  std::set<TableGroupKey> getKeys(const std::string& groupName) const;
44  TableGroupKey findLatestGroupKey(const std::string& groupName) const noexcept;
45 
46  // return the contents of a configuration group
47  config_version_map_t getTableGroupMembers(std::string const& /*configurationGroup*/,
48  bool includeMetaDataTable = false) const;
49 
50  // create a new configuration group from the contents map
51  void saveTableGroup(config_version_map_t const& /*configurationMap*/,
52  std::string const& /*configurationGroup*/) const;
53 
54  private:
55 };
56 } // namespace ots
57 
58 #endif