diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2015-09-24 20:11:03 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2015-09-24 20:36:42 +0200 |
| commit | fb68c6f2f9fce05b6cb0e8f941790b891f86193e (patch) | |
| tree | 75c2202e0a688e88689958c45ea0836e6c4e26c5 /src | |
| parent | 370e3eaaf6f390458fdb28504d12d354d0fac4c6 (diff) | |
| download | manager-fb68c6f2f9fce05b6cb0e8f941790b891f86193e.tar.gz manager-fb68c6f2f9fce05b6cb0e8f941790b891f86193e.zip | |
Split CRSMConfig into CRSMConfigBase (for reuse) and CRSMConfig
Diffstat (limited to 'src')
| -rw-r--r-- | src/CRSMConfig.cpp | 25 | ||||
| -rw-r--r-- | src/CRSMConfig.hpp | 112 |
2 files changed, 68 insertions, 69 deletions
diff --git a/src/CRSMConfig.cpp b/src/CRSMConfig.cpp index 8fe5995..747aaa2 100644 --- a/src/CRSMConfig.cpp +++ b/src/CRSMConfig.cpp @@ -2,23 +2,18 @@ #include <QFile> -CRSMConfig::CRSMConfig() -{ - -} - -void CRSMConfig::addConfigValue(QString name, CRSMConfigValueBase* value) +void CRSMConfigBase::addConfigValue(QString name, CRSMConfigValueBase* value) { configValues[name] = value; } -void CRSMConfig::setConfigValue(const QString &name, const QString &value) +void CRSMConfigBase::setConfigValue(const QString &name, const QString &value) { CRSMConfigValueBase& configValue = getConfigValue(name); configValue.setValue(value); } -void CRSMConfig::addConfigListEntry(const QString &name, const QString &value) +void CRSMConfigBase::addConfigListEntry(const QString &name, const QString &value) { CRSMConfigValueBase& configValue = getConfigValue(name); if(configValue.type() != CRSMConfigValueType::List) @@ -28,7 +23,7 @@ void CRSMConfig::addConfigListEntry(const QString &name, const QString &value) ((CRSMConfigValueList*)&configValue)->append(value); } -void CRSMConfig::setConfigMapValue(const QString &name, const QString &key, const QString &value) +void CRSMConfigBase::setConfigMapValue(const QString &name, const QString &key, const QString &value) { CRSMConfigValueBase& configValue = getConfigValue(name); if(configValue.type() != CRSMConfigValueType::Map) @@ -38,7 +33,7 @@ void CRSMConfig::setConfigMapValue(const QString &name, const QString &key, cons ((CRSMConfigValueMap*)&configValue)->setKeyValue(key, value); } -CRSMConfigValueBase& CRSMConfig::getConfigValue(const QString& name) +CRSMConfigValueBase& CRSMConfigBase::getConfigValue(const QString& name) { if(!configValues.contains(name)) { @@ -50,7 +45,7 @@ CRSMConfigValueBase& CRSMConfig::getConfigValue(const QString& name) } } -QString CRSMConfig::read(const QString &fileName) +QString CRSMConfigBase::read(const QString &fileName) { QString ret = ""; @@ -104,7 +99,7 @@ QString CRSMConfig::read(const QString &fileName) return ret; } -bool CRSMConfig::write(const QString &fileName) +bool CRSMConfigBase::write(const QString &fileName) { QFile config(fileName); if(config.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) @@ -144,7 +139,7 @@ bool CRSMConfig::write(const QString &fileName) void CRSMConfig::clear() { - auto curConfigValues(configValues); - (*this) = CRSMConfig(); - configValues = curConfigValues; + auto configVals = configValues; + *this = CRSMConfig(); + configValues = configVals; } 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(); }; |
