summaryrefslogtreecommitdiffstats
path: root/src/CRSMConfig.hpp
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2015-09-24 20:11:03 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2015-09-24 20:36:42 +0200
commitfb68c6f2f9fce05b6cb0e8f941790b891f86193e (patch)
tree75c2202e0a688e88689958c45ea0836e6c4e26c5 /src/CRSMConfig.hpp
parent370e3eaaf6f390458fdb28504d12d354d0fac4c6 (diff)
downloadmanager-fb68c6f2f9fce05b6cb0e8f941790b891f86193e.tar.gz
manager-fb68c6f2f9fce05b6cb0e8f941790b891f86193e.zip
Split CRSMConfig into CRSMConfigBase (for reuse) and CRSMConfig
Diffstat (limited to 'src/CRSMConfig.hpp')
-rw-r--r--src/CRSMConfig.hpp112
1 files changed, 58 insertions, 54 deletions
diff --git a/src/CRSMConfig.hpp b/src/CRSMConfig.hpp
index e38199b..731698c 100644
--- a/src/CRSMConfig.hpp
+++ b/src/CRSMConfig.hpp
@@ -205,9 +205,28 @@ QString CRSMConfigValueBase::getStringValue(Type value)
return val.value();
}
-class CRSMConfig
+class CRSMConfigBase
{
public:
+ explicit CRSMConfigBase(QMap<QString, CRSMConfigValueBase*> configValues) : configValues(configValues) {}
+
+ void setConfigValue(const QString& name, const QString& value);
+ void addConfigListEntry(const QString& name, const QString& value);
+ void setConfigMapValue(const QString& name, const QString& key, const QString& value);
+
+ QString read(const QString& fileName);
+ bool write(const QString& fileName);
+
+protected:
+ void addConfigValue(QString name, CRSMConfigValueBase *value);
+ CRSMConfigValueBase& getConfigValue(const QString &name);
+
+ QMap<QString, CRSMConfigValueBase*> configValues;
+};
+
+
+class CRSMConfig : public CRSMConfigBase {
+public:
struct {
Integer ManagementPort = 9372;
String ListFolder = "ScenarioLists";
@@ -283,81 +302,66 @@ public:
Integer RereadLimit = 50;
} Readline;
- explicit CRSMConfig();
-
- void setConfigValue(const QString& name, const QString& value);
- void addConfigListEntry(const QString& name, const QString& value);
- void setConfigMapValue(const QString& name, const QString& key, const QString& value);
-
- QString read(const QString& fileName);
- bool write(const QString& fileName);
-
- void clear();
-
-protected:
- void addConfigValue(QString name, CRSMConfigValueBase *value);
- CRSMConfigValueBase& getConfigValue(const QString &name);
-
-private:
#define ConfigValue(Value) {#Value, mkConfigValue(Value)}
- QMap<QString, CRSMConfigValueBase*> configValues {
- ConfigValue(CRSM.ManagementPort),
- ConfigValue(CRSM.ListFolder),
-
+ explicit CRSMConfig() : CRSMConfigBase({
+ ConfigValue(CRSM.ManagementPort),
+ ConfigValue(CRSM.ListFolder),
- ConfigValue(Clonk.Server.Arguments),
- ConfigValue(Clonk.Server.Config),
- ConfigValue(Clonk.Server.Executable),
- ConfigValue(Clonk.Server.EmptyTimer),
- ConfigValue(Clonk.Server.IgnoreFolders),
+ ConfigValue(Clonk.Server.Arguments),
+ ConfigValue(Clonk.Server.Config),
+ ConfigValue(Clonk.Server.Executable),
+ ConfigValue(Clonk.Server.EmptyTimer),
+ ConfigValue(Clonk.Server.IgnoreFolders),
- ConfigValue(Clonk.Chat.AntiFlood.Count),
- ConfigValue(Clonk.Chat.AntiFlood.Time),
- ConfigValue(Clonk.Chat.Moderators),
- ConfigValue(Clonk.Chat.RegainAdminTime),
+ ConfigValue(Clonk.Chat.AntiFlood.Count),
+ ConfigValue(Clonk.Chat.AntiFlood.Time),
+ ConfigValue(Clonk.Chat.Moderators),
+ ConfigValue(Clonk.Chat.RegainAdminTime),
- ConfigValue(Hosting.Auto),
- ConfigValue(Hosting.RandomizeAuto),
- ConfigValue(Hosting.MaxWishesPerScen),
- ConfigValue(Hosting.MaxWishesPerUser),
- ConfigValue(Hosting.UserListLength),
- ConfigValue(Hosting.Alias),
+ ConfigValue(Hosting.Auto),
+ ConfigValue(Hosting.RandomizeAuto),
+ ConfigValue(Hosting.MaxWishesPerScen),
+ ConfigValue(Hosting.MaxWishesPerUser),
+ ConfigValue(Hosting.UserListLength),
+ ConfigValue(Hosting.Alias),
- ConfigValue(IRC.Use),
- ConfigValue(IRC.Server),
- ConfigValue(IRC.Nick),
- ConfigValue(IRC.Password),
- ConfigValue(IRC.RealName),
- ConfigValue(IRC.Channel),
- ConfigValue(IRC.UseIngameChat),
- ConfigValue(IRC.IngameChannel),
- ConfigValue(IRC.QuitMessage),
- ConfigValue(IRC.ReconnectDelay),
- ConfigValue(IRC.ScenListMessage),
- ConfigValue(IRC.Moderators),
+ ConfigValue(IRC.Use),
+ ConfigValue(IRC.Server),
+ ConfigValue(IRC.Nick),
+ ConfigValue(IRC.Password),
+ ConfigValue(IRC.RealName),
+ ConfigValue(IRC.Channel),
+ ConfigValue(IRC.UseIngameChat),
+ ConfigValue(IRC.IngameChannel),
+ ConfigValue(IRC.QuitMessage),
+ ConfigValue(IRC.ReconnectDelay),
+ ConfigValue(IRC.ScenListMessage),
+ ConfigValue(IRC.Moderators),
- ConfigValue(Auto.ProcessManager.ReattachId),
+ ConfigValue(Auto.ProcessManager.ReattachId),
- ConfigValue(Auto.Hosting.AliasWishes),
+ ConfigValue(Auto.Hosting.AliasWishes),
- ConfigValue(Readline.ServerUses),
- ConfigValue(Readline.PromptEnabled),
- ConfigValue(Readline.RereadLimit)
- };
+ ConfigValue(Readline.ServerUses),
+ ConfigValue(Readline.PromptEnabled),
+ ConfigValue(Readline.RereadLimit)
+ }) {}
#undef ConfigValue
+
+ void clear();
};