33 #ifndef EMANECONFIGURATIONSERVICE_HEADER_ 34 #define EMANECONFIGURATIONSERVICE_HEADER_ 77 const std::string & sName,
80 const std::vector<Any> & values,
81 const std::string & sUsage,
84 std::size_t minOccurs,
85 std::size_t maxOccurs,
86 const std::string & sRegexPattern);
105 const std::string & sName,
108 const std::vector<Any> & values,
109 const std::string & sUsage,
110 std::size_t minOccurs,
111 std::size_t maxOccurs,
112 const std::string & sRegexPattern);
139 std::vector<std::pair<std::string,std::vector<Any>>>
141 const std::vector<std::string> & names = {})
const;
171 using ConfigurationStore = std::map<std::string,ConfigurationInfo>;
172 using BuildIdConfigurationStore = std::map<BuildId,ConfigurationStore>;
173 using RunningStateMUtables = std::map<BuildId,RunningStateMutable *>;
174 using ValidatorStore = std::map<BuildId,std::vector<ConfigurationValidator>>;
176 BuildIdConfigurationStore buildIdConfigurationStore_;
177 RunningStateMUtables runningStateMutables_;
178 ValidatorStore validatorStore_;
180 mutable std::mutex mutex_;
182 void registerAny(
BuildId buildId,
183 const std::string & sName,
190 #endif //EMANECONFIGURATIONSERVICE_HEADER_
void registerNonNumericAny(BuildId buildId, const std::string &sName, Any::Type type, const ConfigurationProperties &properties, const std::vector< Any > &values, const std::string &sUsage, std::size_t minOccurs, std::size_t maxOccurs, const std::string &sRegexPattern)
void registerNumericAny(BuildId buildId, const std::string &sName, Any::Type type, const ConfigurationProperties &properties, const std::vector< Any > &values, const std::string &sUsage, const Any &minValue, const Any &maxValue, std::size_t minOccurs, std::size_t maxOccurs, const std::string &sRegexPattern)
Ensure a class only has one instance, and provide a global point of access to it. ...
std::vector< std::pair< std::string, std::vector< Any > > > queryConfiguration(BuildId buildId, const std::vector< std::string > &names={}) const
The RunningStateMutable interface is used to allow dynamic running-state configuration changes...
std::vector< ConfigurationInfo > ConfigurationManifest
void registerRunningStateMutable(BuildId buildId, RunningStateMutable *pRunningStateMutable)
void update(BuildId buildId, const ConfigurationUpdate &update)
void registerValidator(BuildId buildId, ConfigurationValidator validator)
ConfigurationUpdate buildUpdates(BuildId buildId, const ConfigurationUpdateRequest ¶meters)
ConfigurationManifest getConfigurationManifest(BuildId buildId) const
std::vector< ConfigurationNameStringValues > ConfigurationUpdateRequest
std::vector< ConfigurationNameAnyValues > ConfigurationUpdate
std::function< std::pair< std::string, bool >(const ConfigurationUpdate &update) noexcept > ConfigurationValidator
Holds configuration item meta information.
The Any class can contain an instance of one of any type in its support type set. ...