]> git.stg.codes - stg.git/blob - include/stg/module_settings.h
Merge remote-tracking branch 'origin/master' into ticket
[stg.git] / include / stg / module_settings.h
1  /*
2  $Revision: 1.5 $
3  $Date: 2010/03/04 11:49:52 $
4  $Author: faust $
5  */
6
7 #ifndef MODULE_SETTINGS_H
8 #define MODULE_SETTINGS_H
9
10 #include <cstring> // strcasecmp
11 #include <string>
12 #include <vector>
13
14 //-----------------------------------------------------------------------------
15 struct PARAM_VALUE
16 {
17     PARAM_VALUE()
18         : param(),
19           value()
20     {}
21     bool operator==(const PARAM_VALUE & rhs) const
22         { return !strcasecmp(param.c_str(), rhs.param.c_str()); }
23
24     bool operator<(const PARAM_VALUE & rhs) const
25         { return strcasecmp(param.c_str(), rhs.param.c_str()) < 0; }
26
27     std::string param;
28     std::vector<std::string> value;
29 };
30 //-----------------------------------------------------------------------------
31 struct MODULE_SETTINGS
32 {
33     MODULE_SETTINGS()
34         : moduleName(),
35           moduleParams()
36     {}
37     MODULE_SETTINGS(const MODULE_SETTINGS & rvalue)
38         : moduleName(rvalue.moduleName),
39           moduleParams(rvalue.moduleParams)
40     {}
41     bool operator==(const MODULE_SETTINGS & rhs) const
42         { return !strcasecmp(moduleName.c_str(), rhs.moduleName.c_str()); }
43
44     bool operator<(const MODULE_SETTINGS & rhs) const
45         { return strcasecmp(moduleName.c_str(), rhs.moduleName.c_str()) < 0; }
46
47     std::string              moduleName;
48     std::vector<PARAM_VALUE> moduleParams;
49 };
50 //-----------------------------------------------------------------------------
51 #endif