Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
Loading...
Searching...
No Matches
fiscal_scenario.h
Go to the documentation of this file.
1#pragma once
3
4#include <cstdint>
5#include <functional>
6#include <set>
7#include <string>
8
9namespace hgps {
10
12enum class FiscalImpactType : uint8_t {
15
18};
19
23
28 FiscalPolicyDefinition(const FiscalImpactType type_of_impact, const PolicyInterval &period,
29 std::vector<PolicyImpact> sorted_impacts)
30 : impact_type{type_of_impact}, active_period{period}, impacts{std::move(sorted_impacts)} {}
31
34
37
39 std::vector<PolicyImpact> impacts;
40};
41
44 public:
46
53
54 SyncChannel &channel() override;
55
56 void clear() noexcept override;
57
58 double apply(Random &generator, Person &entity, int time,
59 const core::Identifier &risk_factor_key, double value) override;
60
61 const PolicyInterval &active_period() const noexcept override;
62
63 const std::vector<PolicyImpact> &impacts() const noexcept override;
64
65 private:
66 std::reference_wrapper<SyncChannel> channel_;
67 FiscalPolicyDefinition definition_;
68 std::set<core::Identifier> factor_impact_;
69 std::unordered_map<std::size_t, int> interventions_book_{};
70};
71
72FiscalImpactType parse_fiscal_impact_type(const std::string &impact);
73} // namespace hgps
Thread-safe communication channel data type.
Definition channel.h:24
Implements the fiscal policy intervention scenario.
Definition fiscal_scenario.h:43
const PolicyInterval & active_period() const noexcept override
Gets the intervention active period.
Definition fiscal_scenario.cpp:105
const std::vector< PolicyImpact > & impacts() const noexcept override
Gets the intervention impacts by risk factor and age range.
Definition fiscal_scenario.cpp:109
SyncChannel & channel() override
Gets the Scenario communication channel.
Definition fiscal_scenario.cpp:30
void clear() noexcept override
Clear the scenario log book data.
Definition fiscal_scenario.cpp:32
double apply(Random &generator, Person &entity, int time, const core::Identifier &risk_factor_key, double value) override
Applies this Scenario to the Person instance.
Definition fiscal_scenario.cpp:34
Health-GPS scripted intervention policy scenario interface.
Definition intervention_scenario.h:19
General purpose Random number generator algorithms.
Definition random_algorithm.h:8
Top-level namespace for Health-GPS Console host application.
Definition command_options.cpp:8
FiscalImpactType parse_fiscal_impact_type(const std::string &impact_type)
Definition fiscal_scenario.cpp:113
FiscalImpactType
Health GPS policy impact types enumeration.
Definition fiscal_scenario.h:12
@ optimist
Incremental impact overtime - option 2.
@ pessimist
Variable impact overtime - option 1.
Global namespace.
Definition column_iterator.h:123
Fiscal policy intervention definition data type.
Definition fiscal_scenario.h:21
FiscalPolicyDefinition(const FiscalImpactType type_of_impact, const PolicyInterval &period, std::vector< PolicyImpact > sorted_impacts)
Initialise a new instance of the FiscalPolicyDefinition structure.
Definition fiscal_scenario.h:28
FiscalImpactType impact_type
The fiscal impact type.
Definition fiscal_scenario.h:33
std::vector< PolicyImpact > impacts
Intervention impacts on risk factors.
Definition fiscal_scenario.h:39
PolicyInterval active_period
Intervention active period.
Definition fiscal_scenario.h:36
Defines a virtual population person data type.
Definition person.h:39
Defines the policy impact on risk factors data structure.
Definition intervention_scenario.h:49
Defines the policy active interval.
Definition intervention_scenario.h:99