Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
marketing_scenario.h
Go to the documentation of this file.
1 #pragma once
3 
4 #include <functional>
5 #include <set>
6 
7 namespace hgps {
8 
16  const std::vector<PolicyImpact> &sorted_impacts)
17  : active_period{period}, impacts{sorted_impacts} {}
18 
21 
23  std::vector<PolicyImpact> impacts;
24 };
25 
31  public:
33 
40 
41  SyncChannel &channel() override;
42 
43  void clear() noexcept override;
44 
45  double apply(Random &generator, Person &entity, int time,
46  const core::Identifier &risk_factor_key, double value) override;
47 
48  const PolicyInterval &active_period() const noexcept override;
49 
50  const std::vector<PolicyImpact> &impacts() const noexcept override;
51 
52  private:
53  std::reference_wrapper<SyncChannel> channel_;
54  MarketingPolicyDefinition definition_;
55  std::set<core::Identifier> factor_impact_;
56  std::unordered_map<std::size_t, int> interventions_book_{};
57 };
58 } // namespace hgps
Thread-safe communication channel data type.
Definition: channel.h:24
Health-GPS scripted intervention policy scenario interface.
Definition: intervention_scenario.h:19
Implements the marketing regulation intervention scenario.
Definition: marketing_scenario.h:30
void clear() noexcept override
Clear the scenario log book data.
Definition: marketing_scenario.cpp:29
SyncChannel & channel() override
Gets the Scenario communication channel.
Definition: marketing_scenario.cpp:27
const PolicyInterval & active_period() const noexcept override
Gets the intervention active period.
Definition: marketing_scenario.cpp:89
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: marketing_scenario.cpp:31
const std::vector< PolicyImpact > & impacts() const noexcept override
Gets the intervention impacts by risk factor and age range.
Definition: marketing_scenario.cpp:93
General purpose Random number generator algorithms.
Definition: random_algorithm.h:8
Top-level namespace for Health-GPS C++ API.
Definition: analysis_definition.h:8
Global namespace.
Definition: jsonparser.h:88
Marketing intervention definition data type.
Definition: marketing_scenario.h:10
PolicyInterval active_period
Intervention active period.
Definition: marketing_scenario.h:20
MarketingPolicyDefinition(const PolicyInterval &period, const std::vector< PolicyImpact > &sorted_impacts)
Initialise a new instance of the MarketingPolicyDefinition structure.
Definition: marketing_scenario.h:15
std::vector< PolicyImpact > impacts
Intervention impacts on risk factors.
Definition: marketing_scenario.h:23
Defines a virtual population person data type.
Definition: person.h:40
Defines the policy impact on risk factors data structure.
Definition: intervention_scenario.h:49
Defines the policy active interval.
Definition: intervention_scenario.h:97