- /*
- $Revision: 1.5 $
- $Date: 2010/03/04 11:49:52 $
- $Author: faust $
- */
+#pragma once
-#ifndef MODULE_SETTINGS_H
-#define MODULE_SETTINGS_H
-
-#include <cstring> // strcasecmp
#include <string>
#include <vector>
+#include <cstring> // 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<std::string>& vs) noexcept
+ : param(p),
+ value(vs)
+ {}
+ ParamValue(const std::string& p, const std::vector<std::string>& vs, const std::vector<ParamValue>& 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<std::string> value;
+ std::vector<ParamValue> 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<ParamValue>& 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<PARAM_VALUE> moduleParams;
+ bool operator<(const ModuleSettings & rhs) const noexcept
+ { return strcasecmp(moduleName.c_str(), rhs.moduleName.c_str()) < 0; }
+
+ std::string moduleName;
+ std::vector<ParamValue> moduleParams;
};
//-----------------------------------------------------------------------------
-#endif
+
+}