diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-09-24 21:28:56 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-09-24 21:33:13 +0100 |
commit | 897546d596d8d7213cff60146123bb8f97d4d1cc (patch) | |
tree | aa3ec6a8db09d6eaf915805986e57d691c7d11f6 /src/webstat_logger_main.cpp | |
parent | 71803b97f1c9e31f2027da48bb742353f9c43e62 (diff) | |
download | webstat-897546d596d8d7213cff60146123bb8f97d4d1cc.tar.bz2 webstat-897546d596d8d7213cff60146123bb8f97d4d1cc.tar.xz webstat-897546d596d8d7213cff60146123bb8f97d4d1cc.zip |
Create settings structure
Holds all the settings and their defaults for use in program_options and
tests. Disables missing-field-initializers in tests because its over
sensitive to structures with defaults where you only provide some values
specifically.
Diffstat (limited to 'src/webstat_logger_main.cpp')
-rw-r--r-- | src/webstat_logger_main.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/webstat_logger_main.cpp b/src/webstat_logger_main.cpp index d30da80..eb8a30d 100644 --- a/src/webstat_logger_main.cpp +++ b/src/webstat_logger_main.cpp @@ -24,22 +24,19 @@ main(int argc, char ** argv) namespace po = boost::program_options; po::options_description opts("WebStat logger"); - std::string dbType; - std::string dbConnStr; - unsigned int dbMax = 4; - unsigned int dbKeep = 2; + WebStat::IngestorSettings settings; // clang-format off opts.add_options() ("help,h", "Show this help message") ("config,c", po::value<std::string>(), "Read config from this config file") - ("db.type", po::value(&dbType)->default_value("postgresql"), + ("db.type", po::value(&settings.dbType)->default_value(settings.dbType), "Database connection type") - ("db.wr.connstr,D", po::value(&dbConnStr)->default_value("dbname=webstat user=webstat"), + ("db.wr.connstr,D", po::value(&settings.dbConnStr)->default_value(settings.dbConnStr), "Database connection string (read/write)") - ("db.wr.max", po::value(&dbMax)->default_value(4), + ("db.wr.max", po::value(&settings.dbMax)->default_value(settings.dbMax), "Maximum number of concurrent write/read write DB connections") - ("db.wr.keep", po::value(&dbKeep)->default_value(2), + ("db.wr.keep", po::value(&settings.dbKeep)->default_value(settings.dbKeep), "Number of write/read write DB connections to keep open") ; // clang-format on @@ -56,9 +53,8 @@ main(int argc, char ** argv) } po::notify(optVars); - auto pool = std::make_shared<DB::ConnectionPool>(dbMax, dbKeep, std::move(dbType), std::move(dbConnStr)); try { - WebStat::Ingestor {getHostDetail(), pool}.ingestLog(stdin); + WebStat::Ingestor {getHostDetail(), std::move(settings)}.ingestLog(stdin); return EXIT_SUCCESS; } catch (const std::exception & excp) { |