diff options
Diffstat (limited to 'src/CRSMConfig.hpp')
| -rw-r--r-- | src/CRSMConfig.hpp | 112 |
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(); }; |
