Clean up Section in BasicConfig.h:

The following changes were made:
- Removed dependency on template defined in beast detail namespace.
- Removed Section::find() method which had an obsolete interface.
- Made Section::get<>() easier to use for the common case of
  retrieving a std::string.  The revised get() method replaces old
  calls to Section::find().
- Provided a default template parameter to free function
  get<>(Section config, std::string name) so it stays similar to
  Section::get<>().

Then the rest of the code was adapted to these changes.

- Calls to Section::find() were replaced with calls to Section::get.
- Unnecessary get<std::string>() arguments were reduced to get().

These changes dug up an interesting artifact in the SHAMap unit
tests.  I'm not sure why the tests were working before, but there
was a problem with the case of a Section key.  The unit test is
fixed.
This commit is contained in:
Scott Schurr
2021-05-06 18:08:12 -07:00
committed by manojsdoshi
parent b9943d3746
commit a1fd579756
19 changed files with 172 additions and 127 deletions

View File

@@ -347,7 +347,7 @@ PgPool::PgPool(Section const& pgConfig, beast::Journal j) : j_(j)
// The connection object must be freed using the libpq API PQfinish() call.
pg_connection_type conn(
PQconnectdb(get<std::string>(pgConfig, "conninfo").c_str()),
PQconnectdb(get(pgConfig, "conninfo").c_str()),
[](PGconn* conn) { PQfinish(conn); });
if (!conn)
Throw<std::runtime_error>("Can't create DB connection.");