changeset 652:e37ac2269ba6

Irccd: style (config) #782
author David Demelier <markand@malikania.fr>
date Tue, 27 Mar 2018 20:17:22 +0200
parents 1081e45b8628
children 026a8dd20bd4
files irccd/main.cpp irccdctl/main.cpp libcommon/irccd/config.cpp libcommon/irccd/config.hpp libirccd/irccd/daemon/irccd.cpp libirccd/irccd/daemon/server_util.cpp libirccd/irccd/daemon/service/plugin_service.cpp libirccd/irccd/daemon/service/rule_service.cpp libirccd/irccd/daemon/service/server_service.cpp libirccd/irccd/daemon/service/transport_service.cpp
diffstat 10 files changed, 24 insertions(+), 60 deletions(-) [+]
line wrap: on
line diff
--- a/irccd/main.cpp	Tue Mar 27 20:12:02 2018 +0200
+++ b/irccd/main.cpp	Tue Mar 27 20:17:22 2018 +0200
@@ -178,7 +178,7 @@
     if (it != result.end() || (it = result.find("--config")) != result.end())
         return config(it->second);
 
-    auto cfg = config::find("irccd.conf");
+    auto cfg = config::search("irccd.conf");
 
     if (!cfg)
         throw std::runtime_error("no configuration file could be found");
--- a/irccdctl/main.cpp	Tue Mar 27 20:12:02 2018 +0200
+++ b/irccdctl/main.cpp	Tue Mar 27 20:17:22 2018 +0200
@@ -262,13 +262,13 @@
 {
     ini::document::const_iterator it;
 
-    if (!ctl && (it = cfg.doc().find("connect")) != cfg.doc().end())
+    if (!ctl && (it = cfg.find("connect")) != cfg.end())
         read_connect(*it);
-    if ((it = cfg.doc().find("general")) != cfg.doc().end())
+    if ((it = cfg.find("general")) != cfg.end())
         read_general(*it);
 
     // [alias.*] sections.
-    for (const auto& sc : cfg.doc()) {
+    for (const auto& sc : cfg) {
         if (sc.key().compare(0, 6, "alias.") == 0) {
             auto name = sc.key().substr(6);
             auto alias = read_alias(sc, name);
@@ -579,7 +579,7 @@
         if (it != result.end() || (it = result.find("--config")) != result.end())
             irccd::ctl::read(it->second);
         else {
-            if (auto conf = irccd::config::find("irccdctl.conf"))
+            if (auto conf = irccd::config::search("irccdctl.conf"))
                 irccd::ctl::read(*conf);
         }
     } catch (const std::exception& ex) {
--- a/libcommon/irccd/config.cpp	Tue Mar 27 20:12:02 2018 +0200
+++ b/libcommon/irccd/config.cpp	Tue Mar 27 20:17:22 2018 +0200
@@ -24,7 +24,7 @@
 
 namespace irccd {
 
-boost::optional<config> config::find(const std::string& name)
+boost::optional<config> config::search(const std::string& name)
 {
     for (const auto& path : sys::config_filenames(name)) {
         boost::system::error_code ec;
--- a/libcommon/irccd/config.hpp	Tue Mar 27 20:12:02 2018 +0200
+++ b/libcommon/irccd/config.hpp	Tue Mar 27 20:17:22 2018 +0200
@@ -33,10 +33,9 @@
 /**
  * \brief Read .ini configuration file for irccd
  */
-class config {
+class config : public ini::document {
 private:
     std::string path_;
-    ini::document document_;
 
 public:
     /**
@@ -45,7 +44,7 @@
      * \param name the file name
      * \return the config or empty if not found
      */
-    static boost::optional<config> find(const std::string& name);
+    static boost::optional<config> search(const std::string& name);
 
     /**
      * Load the configuration from the specified path.
@@ -53,20 +52,8 @@
      * \param path the path
      */
     inline config(std::string path = "")
-        : path_(std::move(path))
+        : document(path.empty() ? ini::document() : ini::read_file(path))
     {
-        if (!path_.empty())
-            document_ = ini::read_file(path_);
-    }
-
-    /**
-     * Get the underlying document.
-     *
-     * \return the document
-     */
-    inline const ini::document& doc() const noexcept
-    {
-        return document_;
     }
 
     /**
@@ -74,33 +61,10 @@
      *
      * \return the path
      */
-    inline const std::string& path() const noexcept
+    inline const std::string& get_path() const noexcept
     {
         return path_;
     }
-
-    /**
-     * Convenience function to access a section.
-     *
-     * \param section the section name
-     * \return the section or empty one
-     */
-    inline ini::section section(const std::string& section) const noexcept
-    {
-        return document_.get(section);
-    }
-
-    /**
-     * Convenience function to access an ini value.
-     *
-     * \param section the section name
-     * \param option the option name
-     * \return the value or empty string
-     */
-    inline std::string value(const std::string& section, const std::string& option) const noexcept
-    {
-        return document_.get(section).get(option).value();
-    }
 };
 
 } // !irccd
--- a/libirccd/irccd/daemon/irccd.cpp	Tue Mar 27 20:12:02 2018 +0200
+++ b/libirccd/irccd/daemon/irccd.cpp	Tue Mar 27 20:17:22 2018 +0200
@@ -114,14 +114,14 @@
 
 void irccd::load_logs()
 {
-    auto sc = config_.section("logs");
+    const auto sc = config_.get("logs");
 
     if (sc.empty())
         return;
 
     logger_->set_verbose(string_util::is_identifier(sc.get("verbose").value()));
 
-    auto type = sc.get("type").value();
+    const auto type = sc.get("type").value();
 
     if (!type.empty()) {
         // Console is the default, no test case.
@@ -136,7 +136,7 @@
 
 void irccd::load_formats()
 {
-    auto sc = config_.section("format");
+    const auto sc = config_.get("format");
 
     if (sc.empty())
         return;
@@ -150,7 +150,7 @@
 
 void irccd::load_pid()
 {
-    auto path = config_.value("general", "pidfile");
+    const auto path = config_.get("general").get("pidfile").value();
 
     if (path.empty())
         return;
@@ -171,7 +171,7 @@
 
 void irccd::load_gid()
 {
-    auto gid = config_.value("general", "gid");
+    const auto gid = config_.get("general").get("gid").value();
 
     if (gid.empty())
         return;
@@ -190,7 +190,7 @@
 
 void irccd::load_uid()
 {
-    auto uid = config_.value("general", "uid");
+    const auto uid = config_.get("general").get("uid").value();
 
     if (uid.empty())
         return;
@@ -241,7 +241,7 @@
     load_formats();
 
     if (!loaded_)
-        logger_->info() << "irccd: loading configuration from " << config_.path() << std::endl;
+        logger_->info() << "irccd: loading configuration from " << config_.get_path() << std::endl;
     else
         logger_->info() << "irccd: reloading configuration" << std::endl;
 
--- a/libirccd/irccd/daemon/server_util.cpp	Tue Mar 27 20:12:02 2018 +0200
+++ b/libirccd/irccd/daemon/server_util.cpp	Tue Mar 27 20:17:22 2018 +0200
@@ -224,11 +224,11 @@
     const auto identity = sc.get("identity");
 
     if (identity.value().size() > 0) {
-        const auto it = std::find_if(cfg.doc().begin(), cfg.doc().end(), [&] (const auto& i) {
+        const auto it = std::find_if(cfg.begin(), cfg.end(), [&] (const auto& i) {
             return i.get("name").value() == identity.value();
         });
 
-        if (it != cfg.doc().end())
+        if (it != cfg.end())
             from_config_load_identity(*sv, sc);
     }
 
--- a/libirccd/irccd/daemon/service/plugin_service.cpp	Tue Mar 27 20:12:02 2018 +0200
+++ b/libirccd/irccd/daemon/service/plugin_service.cpp	Tue Mar 27 20:17:22 2018 +0200
@@ -34,7 +34,7 @@
 {
     Map ret;
 
-    for (const auto& opt : conf.doc().get(section))
+    for (const auto& opt : conf.get(section))
         ret.emplace(opt.key(), opt.value());
 
     return ret;
@@ -207,7 +207,7 @@
 
 void plugin_service::load(const class config& cfg) noexcept
 {
-    for (const auto& option : cfg.section("plugins")) {
+    for (const auto& option : cfg.get("plugins")) {
         if (!string_util::is_identifier(option.key()))
             continue;
 
--- a/libirccd/irccd/daemon/service/rule_service.cpp	Tue Mar 27 20:12:02 2018 +0200
+++ b/libirccd/irccd/daemon/service/rule_service.cpp	Tue Mar 27 20:17:22 2018 +0200
@@ -103,7 +103,7 @@
 {
     rules_.clear();
 
-    for (const auto& section : cfg.doc()) {
+    for (const auto& section : cfg) {
         if (section.key() != "rule")
             continue;
 
--- a/libirccd/irccd/daemon/service/server_service.cpp	Tue Mar 27 20:12:02 2018 +0200
+++ b/libirccd/irccd/daemon/service/server_service.cpp	Tue Mar 27 20:17:22 2018 +0200
@@ -513,7 +513,7 @@
 
 void server_service::load(const config& cfg) noexcept
 {
-    for (const auto& section : cfg.doc()) {
+    for (const auto& section : cfg) {
         if (section.key() != "server")
             continue;
 
--- a/libirccd/irccd/daemon/service/transport_service.cpp	Tue Mar 27 20:12:02 2018 +0200
+++ b/libirccd/irccd/daemon/service/transport_service.cpp	Tue Mar 27 20:17:22 2018 +0200
@@ -127,7 +127,7 @@
 
 void transport_service::load(const config& cfg) noexcept
 {
-    for (const auto& section : cfg.doc()) {
+    for (const auto& section : cfg) {
         if (section.key() != "transport")
             continue;