Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
Loading...
Searching...
No Matches
marketing_scenario.h
Go to the documentation of this file.
1#pragma once
3
4#include <functional>
5#include <set>
6
7namespace hgps {
8
16 std::vector<PolicyImpact> sorted_impacts)
17 : active_period{period}, impacts{std::move(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:28
SyncChannel & channel() override
Gets the Scenario communication channel.
Definition marketing_scenario.cpp:26
const PolicyInterval & active_period() const noexcept override
Gets the intervention active period.
Definition marketing_scenario.cpp:88
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:30
const std::vector< PolicyImpact > & impacts() const noexcept override
Gets the intervention impacts by risk factor and age range.
Definition marketing_scenario.cpp:92
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
Global namespace.
Definition column_iterator.h:123
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, 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: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