Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
Loading...
Searching...
No Matches
risk_factor_model.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <memory>
5#include <string>
6
7#include "runtime_context.h"
8
9namespace hgps {
10
12enum class RiskFactorModelType : uint8_t {
14 Static,
15
17 Dynamic,
18};
19
22 public:
24 virtual ~RiskFactorModel() = default;
25
28 virtual RiskFactorModelType type() const noexcept = 0;
29
32 virtual std::string name() const noexcept = 0;
33
36 virtual void generate_risk_factors(RuntimeContext &context) = 0;
37
40 virtual void update_risk_factors(RuntimeContext &context) = 0;
41};
42
45 public:
47 virtual ~RiskFactorModelDefinition() = default;
48
50 virtual std::unique_ptr<RiskFactorModel> create_model() const = 0;
51};
52
53} // namespace hgps
Risk factor model definition interface.
Definition risk_factor_model.h:44
virtual ~RiskFactorModelDefinition()=default
Destroys a RiskFactorModelDefinition instance.
virtual std::unique_ptr< RiskFactorModel > create_model() const =0
Creates a new risk factor model from this definition.
Risk factor model interface.
Definition risk_factor_model.h:21
virtual std::string name() const noexcept=0
Gets the model name.
virtual void update_risk_factors(RuntimeContext &context)=0
Update risk factors for population.
virtual ~RiskFactorModel()=default
Destroys a RiskFactorModel instance.
virtual void generate_risk_factors(RuntimeContext &context)=0
Generates the initial risk factors for a population and newborns.
virtual RiskFactorModelType type() const noexcept=0
Gets the model type identifier.
Defines the Simulation runtime context data type.
Definition runtime_context.h:22
Top-level namespace for Health-GPS Console host application.
Definition command_options.cpp:8
RiskFactorModelType
Health GPS risk factor module types enumeration.
Definition risk_factor_model.h:12
@ Dynamic
Dynamic model.
Global namespace.
Definition column_iterator.h:123