otsdaq  v1_01_03
 All Classes Namespaces Functions
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 ConfigurationBase;
16 
18  public:
19  using config_version_map_t = std::map<std::string /*name*/, ConfigurationVersion /*version*/>;
20 
23 
24  // read configuration from database
25  void fill(ConfigurationBase* /*configuration*/, ConfigurationVersion /*version*/) const throw(std::runtime_error);
26 
27  // write configuration to database
28  void saveActiveVersion(const ConfigurationBase* /*configuration*/, bool overwrite = false) const throw(std::runtime_error);
29 
30  // find the latest configuration version by configuration type
31  ConfigurationVersion findLatestVersion(const ConfigurationBase* /*configuration*/) const noexcept;
32 
33 
34  // returns a list of all configuration names
35  std::set<std::string /*name*/> getAllConfigurationNames() const throw(std::runtime_error);
36  // find all configuration versions by configuration type
37  std::set<ConfigurationVersion> getVersions(const ConfigurationBase* /*configuration*/) const noexcept;
38 
39  // find all configuration groups in database
40  std::set<std::string /*name+version*/> getAllConfigurationGroupNames(const std::string &filterString = "") const throw(std::runtime_error);
41  std::set<ConfigurationGroupKey> getKeys(const std::string &groupName) const;
42 
43  // return the contents of a configuration group
44  config_version_map_t getConfigurationGroupMembers(std::string const& /*configurationGroup*/, bool includeMetaDataTable = false) const
45  throw(std::runtime_error);
46 
47  // create a new configuration group from the contents map
48  void saveConfigurationGroup(config_version_map_t const& /*configurationMap*/,
49  std::string const& /*configurationGroup*/) const throw(std::runtime_error);
50 
51  private:
52 };
53 }
54 
55 #endif
56