Controller.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 
6 #include "engine/human_adult/whole_body/controller/Controller.h"
7 #include "engine/human_adult/hemodynamics/Engine.h"
8 
9 namespace pulse { namespace human_adult_hemodynamics
10 {
14  class PULSE_DECL Controller : public pulse::human_adult_whole_body::Controller
15  {
16  friend Engine;
17  protected:// Create via PulseEngine
18  Controller(Logger* logger = nullptr);
19  public:
20  virtual ~Controller() = default;
21 
22  bool SerializeFromFile(const std::string& file) override;
23  bool SerializeToFile(const std::string& file) const override;
24 
25  bool SerializeFromString(const std::string& state, eSerializationFormat m) override;
26  bool SerializeToString(std::string& state, eSerializationFormat m) const override;
27 
28  bool GetPatientAssessment(SEPatientAssessment& assessment) const override;
29 
30  bool IsAirwayModeSupported(pulse::eAirwayMode mode) override;
31 
32  bool CreateCircuitsAndCompartments() override;
33 
34  protected:
35  std::string GetTypeName() const override { return "Human Adult Hemodynamics"; }
36  void Allocate() override;
37  bool Stabilize(const SEPatientConfiguration& patient_configuration) override;
38 
39  void InitializeModels() override { pulse::Controller::InitializeModels(); }
40  };
41 END_NAMESPACE_EX
Definition: Logger.h:71
Data formed at a level of a clinicians report. This is high level data, such as a mean or generalized...
Definition: SEPatientAssessment.h:22
Definition: SEPatientConfiguration.h:11
Definition: Logger.h:14

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.