From ddec6a8e1ac5689131a23a11f9f3efbe0373cec8 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Wed, 30 May 2012 11:14:56 +0200 Subject: [PATCH] removed Config::getUnregistered. CONFIG_* macros should be used instead even for unregistered options --- backends/libcommuni/main.cpp | 2 +- backends/libcommuni/singleircnetworkplugin.cpp | 12 +++++++++--- backends/smstools3/main.cpp | 4 ++-- include/transport/config.h | 13 ++++++------- src/config.cpp | 2 +- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/backends/libcommuni/main.cpp b/backends/libcommuni/main.cpp index 9b717d4c..cab69429 100644 --- a/backends/libcommuni/main.cpp +++ b/backends/libcommuni/main.cpp @@ -78,7 +78,7 @@ int main (int argc, char* argv[]) { Swift::QtEventLoop eventLoop; - if (config.getUnregistered().find("service.irc_server") == config.getUnregistered().end()) { + if (!CONFIG_HAS_KEY(&config, "service.irc_server")) { np = new IRCNetworkPlugin(&config, &eventLoop, host, port); } else { diff --git a/backends/libcommuni/singleircnetworkplugin.cpp b/backends/libcommuni/singleircnetworkplugin.cpp index cce79c7b..378df949 100644 --- a/backends/libcommuni/singleircnetworkplugin.cpp +++ b/backends/libcommuni/singleircnetworkplugin.cpp @@ -10,13 +10,19 @@ DEFINE_LOGGER(logger, "SingleIRCNetworkPlugin"); SingleIRCNetworkPlugin::SingleIRCNetworkPlugin(Config *config, Swift::QtEventLoop *loop, const std::string &host, int port) { this->config = config; - m_server = config->getUnregistered().find("service.irc_server")->second; + if (CONFIG_HAS_KEY(config, "service.irc_server")) { + m_server = CONFIG_STRING(config, "service.irc_server"); + } + else { + LOG4CXX_ERROR(logger, "No [service] irc_server defined, exiting..."); + exit(-1); + } m_socket = new QTcpSocket(); m_socket->connectToHost(FROM_UTF8(host), port); connect(m_socket, SIGNAL(readyRead()), this, SLOT(readData())); - if (config->getUnregistered().find("service.irc_identify") != config->getUnregistered().end()) { - m_identify = config->getUnregistered().find("service.irc_identify")->second; + if (CONFIG_HAS_KEY(config, "service.irc_identify")) { + m_identify = CONFIG_STRING(config, "service.irc_identify"); } else { m_identify = "NickServ identify $name $password"; diff --git a/backends/smstools3/main.cpp b/backends/smstools3/main.cpp index 2e61868c..32799348 100644 --- a/backends/smstools3/main.cpp +++ b/backends/smstools3/main.cpp @@ -124,8 +124,8 @@ class SMSNetworkPlugin : public NetworkPlugin { void handleSMSDir() { std::string dir = "/var/spool/sms/incoming/"; - if (config->getUnregistered().find("backend.incoming_dir") != config->getUnregistered().end()) { - dir = config->getUnregistered().find("backend.incoming_dir")->second; + if (CONFIG_HAS_KEY(config, "backend.incoming_dir")) { + dir = CONFIG_STRING(config, "backend.incoming_dir"); } LOG4CXX_INFO(logger, "Checking directory " << dir << " for incoming SMS."); diff --git a/include/transport/config.h b/include/transport/config.h index 903480e9..4ced7c98 100644 --- a/include/transport/config.h +++ b/include/transport/config.h @@ -77,7 +77,7 @@ class Config { bool reload(); bool hasKey(const std::string &key) { - return m_variables.find(key) != m_variables.end(); + return m_variables.find(key) != m_variables.end() || m_unregistered.find(key) != m_unregistered.end(); } /// Returns value of variable defined by key. @@ -85,16 +85,15 @@ class Config { /// For variables in sections you can use "section.variable" key format. /// \param key config variable name const boost::program_options::variable_value &operator[] (const std::string &key) { - return m_variables[key]; + if (m_variables.find(key) != m_variables.end()) { + return m_variables[key]; + } + return m_unregistered[key]; } /// Returns path to config file from which data were loaded. const std::string &getConfigFile() { return m_file; } - const std::map &getUnregistered() { - return m_unregistered; - } - /// This signal is emitted when config is loaded/reloaded. boost::signal onConfigReloaded; @@ -102,7 +101,7 @@ class Config { int m_argc; char **m_argv; Variables m_variables; - std::map m_unregistered; + std::map m_unregistered; std::string m_file; }; diff --git a/src/config.cpp b/src/config.cpp index 08f7451d..e9d31872 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -187,7 +187,7 @@ bool Config::load(std::istream &ifs, boost::program_options::options_description BOOST_FOREACH(option &opt, parsed.options) { if (opt.unregistered) { - m_unregistered[opt.string_key] = opt.value[0]; + m_unregistered[opt.string_key] = variable_value(opt.value[0], false); } else if (opt.value[0].find("$jid") != std::string::npos) { boost::replace_all(opt.value[0], "$jid", jid);