$treeview $search $mathjax $extrastylesheet
otsdaq
v2_03_00
$projectbrief
|
$projectbrief
|
$searchbox |
00001 #ifndef _ots_DatabaseConfigurationInterface_h_ 00002 #define _ots_DatabaseConfigurationInterface_h_ 00003 00004 #include "otsdaq-core/ConfigurationInterface/ConfigurationInterface.h" 00005 00006 //#include "ConfigurationInterface.h" 00007 00008 #include <list> 00009 #include <map> 00010 #include <set> 00011 #include <stdexcept> 00012 00013 namespace ots 00014 { 00015 class TableBase; 00016 00017 class DatabaseConfigurationInterface : public ConfigurationInterface 00018 { 00019 public: 00020 using config_version_map_t = std::map<std::string /*name*/, TableVersion /*version*/>; 00021 00022 DatabaseConfigurationInterface(); 00023 ~DatabaseConfigurationInterface() { ; } 00024 00025 // read configuration from database 00026 void fill(TableBase* /*configuration*/, TableVersion /*version*/) const 00027 throw(std::runtime_error); 00028 00029 // write configuration to database 00030 void saveActiveVersion(const TableBase* /*configuration*/, 00031 bool overwrite = false) const throw(std::runtime_error); 00032 00033 // find the latest configuration version by configuration type 00034 TableVersion findLatestVersion(const TableBase* /*configuration*/) const noexcept; 00035 00036 // returns a list of all configuration names 00037 std::set<std::string /*name*/> getAllTableNames() const throw(std::runtime_error); 00038 // find all configuration versions by configuration type 00039 std::set<TableVersion> getVersions(const TableBase* /*configuration*/) const noexcept; 00040 00041 // find all configuration groups in database 00042 std::set<std::string /*name+version*/> getAllTableGroupNames( 00043 const std::string& filterString = "") const throw(std::runtime_error); 00044 std::set<TableGroupKey> getKeys(const std::string& groupName) const; 00045 TableGroupKey findLatestGroupKey(const std::string& groupName) const noexcept; 00046 00047 // return the contents of a configuration group 00048 config_version_map_t getTableGroupMembers(std::string const& /*configurationGroup*/, 00049 bool includeMetaDataTable = false) const 00050 throw(std::runtime_error); 00051 00052 // create a new configuration group from the contents map 00053 void saveTableGroup(config_version_map_t const& /*configurationMap*/, 00054 std::string const& /*configurationGroup*/) const 00055 throw(std::runtime_error); 00056 00057 private: 00058 }; 00059 } // namespace ots 00060 00061 #endif