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/ventilation_mechanics/Engine.h"
8
9namespace pulse { namespace human_adult_ventilation_mechanics
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 Ventilation Mechanics"; }
36 void Allocate() override;
37 bool Stabilize(const SEPatientConfiguration& patient_configuration) override;
38
39 void InitializeModels() override { pulse::Controller::InitializeModels(); }
40 };
41END_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.