Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
configuration.h
Go to the documentation of this file.
1 #pragma once
2 #include <cxxopts.hpp>
3 
4 #include "HealthGPS/healthgps.h"
6 #include "HealthGPS/modelinput.h"
7 #include "HealthGPS/scenario.h"
8 
9 #include "HealthGPS.Core/api.h"
10 
11 #include "options.h"
12 #include "result_file_writer.h"
13 
14 namespace host {
17 std::string get_time_now_str();
18 
21 cxxopts::Options create_options();
22 
24 void print_app_title();
25 
31 CommandOptions parse_arguments(cxxopts::Options &options, int &argc, char *argv[]);
32 
36 Configuration load_configuration(CommandOptions &options);
37 
42 bool create_output_folder(std::filesystem::path folder_path, unsigned int num_retries = 3);
43 
48 std::vector<hgps::core::DiseaseInfo> get_diseases_info(hgps::core::Datastore &data_api,
49  Configuration &config);
50 
58  Configuration &config,
59  std::vector<hgps::core::DiseaseInfo> diseases);
60 
65 std::string create_output_file_name(const poco::OutputInfo &info, int job_id);
66 
72  const hgps::ModelInput &input);
73 
77 std::unique_ptr<hgps::Scenario> create_baseline_scenario(hgps::SyncChannel &channel);
78 
87  hgps::EventAggregator &event_bus,
88  hgps::ModelInput &input);
89 
95 std::unique_ptr<hgps::InterventionScenario>
97 
107  hgps::EventAggregator &event_bus,
108  hgps::ModelInput &input,
109  const poco::PolicyScenarioInfo &info);
110 
114 std::string expand_environment_variables(const std::string &path);
115 
120 std::optional<unsigned int> create_job_seed(int job_id, std::optional<unsigned int> user_seed);
121 } // namespace host
Thread-safe communication channel data type.
Definition: channel.h:24
Defines the event aggregator interface type.
Definition: event_aggregator.h:59
Defines the simulation engine data type class.
Definition: healthgps.h:21
Defines the Simulation model inputs data type.
Definition: modelinput.h:43
Defines the SimulationModule factory data type.
Definition: modulefactory.h:21
Defines a Datatable for in memory data class.
Definition: datatable.h:16
Defines the Health-GPS back-end data store interface for all implementations.
Definition: datastore.h:13
Defines the results message file stream writer class.
Definition: result_file_writer.h:17
Top-level namespace for Health-GPS Console host application.
Definition: configuration.cpp:31
std::unique_ptr< hgps::Scenario > create_baseline_scenario(hgps::SyncChannel &channel)
Creates the baseline scenario instance.
Definition: configuration.cpp:430
std::string create_output_file_name(const poco::OutputInfo &info, int job_id)
Creates the full output file name from user input configuration.
Definition: configuration.cpp:378
ResultFileWriter create_results_file_logger(const Configuration &config, const hgps::ModelInput &input)
Creates the simulation results file logger instance.
Definition: configuration.cpp:420
void print_app_title()
Prints application start-up messages.
Definition: configuration.cpp:51
cxxopts::Options create_options()
Creates the command-line interface (CLI) options.
Definition: configuration.cpp:39
std::string expand_environment_variables(const std::string &path)
Expand environment variables in path to respective values.
Definition: configuration.cpp:526
bool create_output_folder(std::filesystem::path folder_path, unsigned int num_retries)
Creates the configuration output folder for result files.
Definition: configuration.cpp:289
std::unique_ptr< hgps::InterventionScenario > create_intervention_scenario(SyncChannel &channel, const poco::PolicyScenarioInfo &info)
Creates the intervention scenario instance.
Definition: configuration.cpp:457
ModelInput create_model_input(core::DataTable &input_table, core::Country country, Configuration &config, std::vector< core::DiseaseInfo > diseases)
Definition: configuration.cpp:326
std::optional< unsigned int > create_job_seed(int job_id, std::optional< unsigned int > user_seed)
Creates the experiment random number generator seed.
Definition: configuration.cpp:548
std::vector< core::DiseaseInfo > get_diseases_info(core::Datastore &data_api, Configuration &config)
Gets the collection of diseases that matches the selected input list.
Definition: configuration.cpp:307
CommandOptions parse_arguments(cxxopts::Options &options, int &argc, char *argv[])
Parses the command-line interface (CLI) arguments.
Definition: configuration.cpp:58
std::string get_time_now_str()
Get a string representation of current system time.
Definition: configuration.cpp:34
hgps::HealthGPS create_baseline_simulation(hgps::SyncChannel &channel, hgps::SimulationModuleFactory &factory, hgps::EventAggregator &event_bus, hgps::ModelInput &input)
Creates the baseline simulation engine instance.
Definition: configuration.cpp:434
Configuration load_configuration(CommandOptions &options)
Loads the input configuration file, *.json, information.
Definition: configuration.cpp:134
hgps::HealthGPS create_intervention_simulation(hgps::SyncChannel &channel, hgps::SimulationModuleFactory &factory, hgps::EventAggregator &event_bus, hgps::ModelInput &input, const poco::PolicyScenarioInfo &info)
Creates the intervention simulation engine instance.
Definition: configuration.cpp:445
Country ISO-3166 definition data structure.
Definition: country.h:7
Defines the application configuration data structure.
Definition: options.h:29
Definition: poco.h:49
Definition: poco.h:87