# HG changeset patch # User David Demelier # Date 1509044120 -7200 # Node ID 63faa8087c4670a5122966452b4558d4d928d190 # Parent b557017ad3f0646f6152ef41dd9660220569e2a3 Irccd: store configuration path, closes #723 diff -r b557017ad3f0 -r 63faa8087c46 irccd/main.cpp --- a/irccd/main.cpp Fri Oct 27 08:52:39 2017 +0200 +++ b/irccd/main.cpp Thu Oct 26 20:55:20 2017 +0200 @@ -247,6 +247,8 @@ void load(const config& config, const option::result& options) { + instance->set_config(config.path()); + /* * Order matters, please be careful when changing this. * diff -r b557017ad3f0 -r 63faa8087c46 libirccd/irccd/irccd.cpp --- a/libirccd/irccd/irccd.cpp Fri Oct 27 08:52:39 2017 +0200 +++ b/libirccd/irccd/irccd.cpp Thu Oct 26 20:55:20 2017 +0200 @@ -24,8 +24,9 @@ namespace irccd { -irccd::irccd() - : command_service_(std::make_unique()) +irccd::irccd(std::string config) + : config_(std::move(config)) + , command_service_(std::make_unique()) , itr_service_(std::make_unique()) , server_service_(std::make_unique(*this)) , tpt_service_(std::make_unique(*this)) diff -r b557017ad3f0 -r 63faa8087c46 libirccd/irccd/irccd.hpp --- a/libirccd/irccd/irccd.hpp Fri Oct 27 08:52:39 2017 +0200 +++ b/libirccd/irccd/irccd.hpp Thu Oct 26 20:55:20 2017 +0200 @@ -55,6 +55,9 @@ std::mutex mutex_; std::vector> events_; + // Path to config. + std::string config_; + // Services. std::shared_ptr command_service_; std::shared_ptr itr_service_; @@ -73,8 +76,10 @@ public: /** * Prepare standard services. + * + * \param config the optional path to the configuration. */ - irccd(); + irccd(std::string config = ""); /** * Default destructor. @@ -82,6 +87,26 @@ ~irccd(); /** + * Get the current configuration path. + * + * \return the path + */ + inline const std::string& config() const noexcept + { + return config_; + } + + /** + * Set the configuration path. + * + * \param path the new path + */ + inline void set_config(std::string path) noexcept + { + config_ = std::move(path); + } + + /** * Access the command service. * * \return the service