00001 #ifndef _ots_DatabaseConfigurationInterface_h_
00002 #define _ots_DatabaseConfigurationInterface_h_
00003
00004 #include "otsdaq-core/ConfigurationInterface/ConfigurationInterface.h"
00005
00006
00007
00008 #include <list>
00009 #include <map>
00010 #include <set>
00011 #include <stdexcept>
00012
00013 namespace ots {
00014
00015 class ConfigurationBase;
00016
00017 class DatabaseConfigurationInterface : public ConfigurationInterface {
00018 public:
00019 using config_version_map_t = std::map<std::string , ConfigurationVersion >;
00020
00021 DatabaseConfigurationInterface();
00022 ~DatabaseConfigurationInterface() { ; }
00023
00024
00025 void fill(ConfigurationBase* , ConfigurationVersion ) const throw(std::runtime_error);
00026
00027
00028 void saveActiveVersion(const ConfigurationBase* , bool overwrite = false) const throw(std::runtime_error);
00029
00030
00031 ConfigurationVersion findLatestVersion(const ConfigurationBase* ) const noexcept;
00032
00033
00034
00035 std::set<std::string > getAllConfigurationNames() const throw(std::runtime_error);
00036
00037 std::set<ConfigurationVersion> getVersions(const ConfigurationBase* ) const noexcept;
00038
00039
00040 std::set<std::string > getAllConfigurationGroupNames(const std::string &filterString = "") const throw(std::runtime_error);
00041 std::set<ConfigurationGroupKey> getKeys(const std::string &groupName) const;
00042
00043
00044 config_version_map_t getConfigurationGroupMembers(std::string const& , bool includeMetaDataTable = false) const
00045 throw(std::runtime_error);
00046
00047
00048 void saveConfigurationGroup(config_version_map_t const& ,
00049 std::string const& ) const throw(std::runtime_error);
00050
00051 private:
00052 };
00053 }
00054
00055 #endif
00056