summaryrefslogtreecommitdiffstats
path: root/src/Core/ConfigManager.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-07-08 04:54:10 +0200
committerMatthias Schiffer <matthias@gamezock.de>2008-07-08 04:54:10 +0200
commite000cdf9d31433c4e90a8b59415de5ac8377005d (patch)
tree7cf035fec531837c2ca6fc27c2accdee8e346fe7 /src/Core/ConfigManager.cpp
parent30f0cb9154306938250bd77ce2f0a9471065732a (diff)
downloadmad-e000cdf9d31433c4e90a8b59415de5ac8377005d.tar
mad-e000cdf9d31433c4e90a8b59415de5ac8377005d.zip
Verschachtelte Konfigurationen (D?mon-Liste)
Diffstat (limited to 'src/Core/ConfigManager.cpp')
-rw-r--r--src/Core/ConfigManager.cpp50
1 files changed, 35 insertions, 15 deletions
diff --git a/src/Core/ConfigManager.cpp b/src/Core/ConfigManager.cpp
index b358671..e1e5021 100644
--- a/src/Core/ConfigManager.cpp
+++ b/src/Core/ConfigManager.cpp
@@ -25,28 +25,48 @@
namespace Mad {
namespace Core {
-bool ConfigManager::parseLine(const std::string &key, const std::string &value) {
- if(Common::Util::tolower(key) == "configmethod") {
- if(Common::Util::tolower(value) == "mysql")
- methods |= (unsigned short)MYSQL;
- else
- return false;
- }
- else if(Common::Util::tolower(key) == "listen") {
- try {
- listeners.push_back(Net::IPAddress(value));
+bool ConfigManager::parseLine(const std::vector<std::string> &section, const std::string &key, const std::string &value) {
+ if(section.empty()) {
+ if(Common::Util::tolower(key) == "configmethod") {
+ if(Common::Util::tolower(value) == "mysql")
+ methods |= (unsigned short)MYSQL;
+ else
+ return false;
+ }
+ else if(Common::Util::tolower(key) == "daemon") {
+ daemons.push_back(DaemonInfo(value));
}
- catch(Net::InvalidAddressException &e) {
+ else if(Common::Util::tolower(key) == "listen") {
+ try {
+ listeners.push_back(Net::IPAddress(value));
+ }
+ catch(Net::InvalidAddressException &e) {
+ // TODO Logging
+ }
+ }
+ else {
// TODO Logging
+
+ return false;
}
+
+ return true;
}
- else {
- // TODO Logging
+ else if(section.size() == 1 && Common::Util::tolower(section[0]) == "daemon") {
+ if(Common::Util::tolower(key) == "ip")
+ daemons.back().setIP(value);
+ else {
+ // TODO Logging
+
+ return false;
+ }
- return false;
+ return true;
}
- return true;
+ // TODO Logging
+
+ return false;
}
ConfigManager::ConfigManager() {