Line data Source code
1 : #ifndef _ots_DatabaseConfigurationInterface_h_
2 : #define _ots_DatabaseConfigurationInterface_h_
3 :
4 : #include "ConfigurationInterface.h"
5 :
6 : #include <list>
7 : #include <map>
8 : #include <set>
9 : #include <stdexcept>
10 :
11 : namespace ots {
12 :
13 : struct ConfigurationBase;
14 :
15 : class DatabaseConfigurationInterface : public ConfigurationInterface {
16 : public:
17 : using config_version_map_t = std::map<std::string, int>;
18 126 : DatabaseConfigurationInterface() { ; }
19 126 : ~DatabaseConfigurationInterface() { ; }
20 :
21 : int fill(ConfigurationBase*, int) const noexcept;
22 :
23 : int saveActiveVersion(const ConfigurationBase*, bool = false) const noexcept;
24 :
25 : int markActiveVersionReadonly(const ConfigurationBase*) const noexcept;
26 :
27 : int findLatestVersion(const ConfigurationBase*) const noexcept;
28 :
29 : std::set<int> getVersions(const ConfigurationBase*) const noexcept;
30 :
31 : std::set<std::string> listConfigurationsTypes() const;
32 :
33 : std::set<std::string> findAllGlobalConfigurations(std::string const& = "") const;
34 :
35 : config_version_map_t loadGlobalConfiguration(std::string const&) const;
36 :
37 : void storeGlobalConfiguration(config_version_map_t const&, std::string const&, bool = false) const;
38 :
39 : void storeGlobalConfiguration_mt(config_version_map_t const&, std::string const&, bool = false) const;
40 :
41 : std::set<std::string> findCompositionsContaining(std::string const&, std::string const&) const;
42 :
43 : private:
44 : };
45 : } // namespace ots
46 :
47 : #endif
|