diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2018-12-07 23:12:05 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2018-12-11 14:05:48 +0300 |
commit | 294c558d577cd4acb2ee8e94e0dfd6acdb946c6c (patch) | |
tree | 02742141dad6cf91040eb48eca54b718dee8ad55 /mod/database-module.cxx | |
parent | 7dabb6e931740b2777be5dca53c3cec0b984f0fb (diff) |
Add support for build configuration class inheritance
Diffstat (limited to 'mod/database-module.cxx')
-rw-r--r-- | mod/database-module.cxx | 66 |
1 files changed, 9 insertions, 57 deletions
diff --git a/mod/database-module.cxx b/mod/database-module.cxx index 137d7ef..07037cd 100644 --- a/mod/database-module.cxx +++ b/mod/database-module.cxx @@ -4,24 +4,13 @@ #include <mod/database-module.hxx> -#include <errno.h> // EIO - -#include <sstream> - #include <odb/exceptions.hxx> -#include <libbutl/utility.mxx> // throw_generic_error() - #include <mod/options.hxx> #include <mod/database.hxx> -#include <mod/build-config.hxx> namespace brep { - using namespace std; - using namespace butl; - using namespace bbot; - // While currently the user-defined copy constructor is not required (we // don't need to deep copy nullptr's), it is a good idea to keep the // placeholder ready for less trivial cases. @@ -31,11 +20,7 @@ namespace brep : handler (r), retry_ (r.retry_), package_db_ (r.initialized_ ? r.package_db_ : nullptr), - build_db_ (r.initialized_ ? r.build_db_ : nullptr), - build_conf_ (r.initialized_ ? r.build_conf_ : nullptr), - build_conf_names_ (r.initialized_ ? r.build_conf_names_ : nullptr), - build_conf_map_ (r.initialized_ ? r.build_conf_map_ : nullptr), - bot_agent_keys_ (r.initialized_ ? r.bot_agent_keys_ : nullptr) + build_db_ (r.initialized_ ? r.build_db_ : nullptr) { } @@ -54,48 +39,15 @@ namespace brep } void database_module:: - init (const options::build& bo, const options::build_db& dbo, size_t retry) + init (const options::build_db& o, size_t retry) { - try - { - build_conf_ = shared_build_config (bo.build_config ()); - } - catch (const io_error& e) - { - ostringstream os; - os << "unable to read build configuration '" << bo.build_config () - << "': " << e; - - throw_generic_error (EIO, os.str ().c_str ()); - } - - if (bo.build_bot_agent_keys_specified ()) - bot_agent_keys_ = shared_bot_agent_keys (bo, bo.build_bot_agent_keys ()); - - cstrings conf_names; - - using conf_map_type = map<const char*, - const build_config*, - compare_c_string>; - conf_map_type conf_map; - - for (const auto& c: *build_conf_) - { - const char* cn (c.name.c_str ()); - conf_map[cn] = &c; - conf_names.push_back (cn); - } - - build_conf_names_ = make_shared<cstrings> (move (conf_names)); - build_conf_map_ = make_shared<conf_map_type> (move (conf_map)); - - build_db_ = shared_database (dbo.build_db_user (), - dbo.build_db_role (), - dbo.build_db_password (), - dbo.build_db_name (), - dbo.build_db_host (), - dbo.build_db_port (), - dbo.build_db_max_connections ()); + build_db_ = shared_database (o.build_db_user (), + o.build_db_role (), + o.build_db_password (), + o.build_db_name (), + o.build_db_host (), + o.build_db_port (), + o.build_db_max_connections ()); retry_ = retry_ < retry ? retry : retry_; } |