Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
simulation.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include <adevs/adevs.h>
5 
6 namespace hgps {
7 
9 class Simulation : public adevs::Model<int> {
10  public:
11  Simulation() = delete;
14  explicit Simulation(SimulationDefinition &&definition) : definition_{std::move(definition)} {}
15 
17  virtual ~Simulation() = default;
18 
20  virtual void initialize() = 0;
21 
23  virtual void terminate() = 0;
24 
27  virtual void setup_run(const unsigned int run_number) noexcept = 0;
28 
32  virtual void setup_run(const unsigned int run_number, const unsigned int run_seed) noexcept = 0;
33 
36  ScenarioType type() noexcept { return definition_.scenario().type(); }
37 
40  std::string name() override { return definition_.identifier(); }
41 
42  protected:
44 };
45 } // namespace hgps
virtual ScenarioType type() const noexcept=0
Gets the scenario type identifier.
Defines the simulation class interface.
Definition: simulation.h:9
virtual ~Simulation()=default
Destroys a simulation instance.
ScenarioType type() noexcept
Gets the simulation type.
Definition: simulation.h:36
Simulation()=delete
std::string name() override
Gets the simulation name.
Definition: simulation.h:40
virtual void initialize()=0
Initialises the simulation experiment.
Simulation(SimulationDefinition &&definition)
Initialises a new instance of the Simulation class.
Definition: simulation.h:14
SimulationDefinition definition_
Definition: simulation.h:43
virtual void terminate()=0
Terminates the simulation experiment.
virtual void setup_run(const unsigned int run_number, const unsigned int run_seed) noexcept=0
Set-up a new simulation run.
virtual void setup_run(const unsigned int run_number) noexcept=0
Set-up a new simulation run with default seed.
Top-level namespace for Health-GPS C++ API.
Definition: analysis_definition.h:8
ScenarioType
Health GPS policy scenario types enumeration.
Definition: scenario.h:17
Global namespace.
Definition: jsonparser.h:88
Simulation experiment definition data type.
Definition: simulation_definition.h:13
Scenario & scenario() noexcept
Gets a reference to the simulation scenario instance.
Definition: simulation_definition.cpp:11
const std::string & identifier() const noexcept
Gets the simulation scenario identifier.
Definition: simulation_definition.cpp:15