summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/Controllers/Settings/XMLSettingsProvider.cpp')
-rw-r--r--Swift/Controllers/Settings/XMLSettingsProvider.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/Swift/Controllers/Settings/XMLSettingsProvider.cpp b/Swift/Controllers/Settings/XMLSettingsProvider.cpp
index 3710072..e83ed24 100644
--- a/Swift/Controllers/Settings/XMLSettingsProvider.cpp
+++ b/Swift/Controllers/Settings/XMLSettingsProvider.cpp
@@ -4,70 +4,75 @@
* See Documentation/Licenses/GPLv3.txt for more information.
*/
#include <Swift/Controllers/Settings/XMLSettingsProvider.h>
#include <boost/lexical_cast.hpp>
#include <boost/algorithm/string.hpp>
#include <Swiften/Parser/PlatformXMLParserFactory.h>
#include <Swiften/Parser/XMLParser.h>
#include <Swiften/Base/Log.h>
namespace Swift {
XMLSettingsProvider::XMLSettingsProvider(const std::string& xmlConfig) : level_(0) {
if (!xmlConfig.empty()) {
PlatformXMLParserFactory factory;
XMLParser* parser = factory.createXMLParser(this);
if (parser->parse(xmlConfig)) {
SWIFT_LOG(debug) << "Found and parsed system config" << std::endl;
}
else {
SWIFT_LOG(debug) << "Found invalid system config" << std::endl;
}
delete parser;
}
else {
SWIFT_LOG(debug) << "No system config found" << std::endl;
}
}
XMLSettingsProvider::~XMLSettingsProvider() {
}
+bool XMLSettingsProvider::hasSetting(const std::string& key) {
+ return (values_.find(key) != values_.end());
+}
+
+
std::string XMLSettingsProvider::getSetting(const Setting<std::string>& setting) {
if (values_.find(setting.getKey()) != values_.end()) {
std::string value = values_[setting.getKey()];
return value;
}
return setting.getDefaultValue();
}
void XMLSettingsProvider::storeSetting(const Setting<std::string>& /*settingPath*/, const std::string& /*settingValue*/) {
assert(false);
}
bool XMLSettingsProvider::getSetting(const Setting<bool>& setting) {
if (values_.find(setting.getKey()) != values_.end()) {
std::string value = values_[setting.getKey()];
return boost::iequals(value, "true") || value == "1";
}
return setting.getDefaultValue();
}
void XMLSettingsProvider::storeSetting(const Setting<bool>& /*settingPath*/, const bool& /*settingValue*/) {
assert(false);
}
int XMLSettingsProvider::getSetting(const Setting<int>& setting) {
if (values_.find(setting.getKey()) != values_.end()) {
std::string value = values_[setting.getKey()];
try {
return value.empty() ? setting.getDefaultValue() : boost::lexical_cast<int>(value);;
}
catch(boost::bad_lexical_cast &) {}
}
return setting.getDefaultValue();
}