X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/516232a1785d55ab711841639c71ca309f4ddf5f..8bfc0bdce2bf4f53ac2c072e7a44e9a7d3b3cca8:/include/stg/module_settings.h?ds=sidebyside diff --git a/include/stg/module_settings.h b/include/stg/module_settings.h index 669cc225..a4de4539 100644 --- a/include/stg/module_settings.h +++ b/include/stg/module_settings.h @@ -1,39 +1,64 @@ - /* - $Revision: 1.5 $ - $Date: 2010/03/04 11:49:52 $ - $Author: faust $ - */ +#pragma once -#ifndef MODULE_SETTINGS_H -#define MODULE_SETTINGS_H - -#include // strcasecmp #include #include +#include // strcasecmp + +namespace STG +{ //----------------------------------------------------------------------------- -struct PARAM_VALUE +struct ParamValue { - bool operator==(const PARAM_VALUE & rhs) const - { return !strcasecmp(param.c_str(), rhs.param.c_str()); } + ParamValue() = default; + ParamValue(const std::string& p, const std::vector& vs) noexcept + : param(p), + value(vs) + {} + ParamValue(const std::string& p, const std::vector& vs, const std::vector& ss) noexcept + : param(p), + value(vs), + sections(ss) + {} - bool operator<(const PARAM_VALUE & rhs) const - { return strcasecmp(param.c_str(), rhs.param.c_str()) < 0; } + ParamValue(const ParamValue&) = default; + ParamValue& operator=(const ParamValue&) = default; + ParamValue(ParamValue&&) = default; + ParamValue& operator=(ParamValue&&) = default; + + bool operator==(const ParamValue & rhs) const noexcept + { return !strcasecmp(param.c_str(), rhs.param.c_str()); } + + bool operator<(const ParamValue & rhs) const noexcept + { return strcasecmp(param.c_str(), rhs.param.c_str()) < 0; } std::string param; std::vector value; + std::vector sections; }; //----------------------------------------------------------------------------- -struct MODULE_SETTINGS +struct ModuleSettings { - bool operator==(const MODULE_SETTINGS & rhs) const - { return !strcasecmp(moduleName.c_str(), rhs.moduleName.c_str()); } + ModuleSettings() = default; + ModuleSettings(const std::string& name, const std::vector& params) noexcept + : moduleName(name), + moduleParams(params) + {} + + ModuleSettings(const ModuleSettings&) = default; + ModuleSettings& operator=(const ModuleSettings&) = default; + ModuleSettings(ModuleSettings&&) = default; + ModuleSettings& operator=(ModuleSettings&&) = default; - bool operator<(const MODULE_SETTINGS & rhs) const - { return strcasecmp(moduleName.c_str(), rhs.moduleName.c_str()) < 0; } + bool operator==(const ModuleSettings & rhs) const noexcept + { return !strcasecmp(moduleName.c_str(), rhs.moduleName.c_str()); } - std::string moduleName; - std::vector moduleParams; + bool operator<(const ModuleSettings & rhs) const noexcept + { return strcasecmp(moduleName.c_str(), rhs.moduleName.c_str()) < 0; } + + std::string moduleName; + std::vector moduleParams; }; //----------------------------------------------------------------------------- -#endif + +}