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. ...