Inhaler.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 #include "controller/System.h"
6 #include "system/equipment/inhaler/SEInhaler.h"
7 class SEGasCompartment;
10 
15 class PULSE_DECL Inhaler : public SEInhaler, public PulseInhaler, public PulseSystem
16 {
17  friend class PBPulseEquipment;//friend the serialization class
18  friend class PulseController;
19  friend class PulseEngineTest;
20 protected:
23 
24 public:
25  virtual ~Inhaler();
26 
27  void Clear();
28 
29 protected:
30  // Set members to a stable homeostatic state
31  void Initialize();
32  // Set pointers and other member varialbes common to both homeostatic initialization and loading a state
33  void SetUp();
34 
35  // main driver function responsible for calling the various ECG functions:
36  void PreProcess();
37  void Process();
38  void PostProcess();
39 
40  void StateChange();
41  void Administer();
42 
43  // Serializable member variables (Set in Initialize and in schema)
44 
45  // Stateless member variable (Set in SetUp())
46  double m_dt_s;
51 };
Definition: SEInhaler.h:11
Definition: SEGasCompartment.h:12
SELiquidSubstanceQuantity * m_InhalerDrug
Definition: Inhaler.h:50
Manages and controls execution of all data/systems in Pulse.
Definition: Controller.h:50
virtual void StateChange()
Definition: SEInhaler.h:42
PulseController & m_data
Definition: Inhaler.h:22
SEGasCompartment * m_Mouthpiece
Definition: Inhaler.h:47
Generic inhaler for substance administration.
Definition: Inhaler.h:15
virtual void Clear()
Definition: SEInhaler.cpp:31
virtual void SetUp()=0
SEGasCompartment * m_AmbientEnv
Definition: Inhaler.h:49
Definition: SELiquidSubstanceQuantity.h:11
double m_dt_s
Definition: Inhaler.h:46
Definition: PulsePhysiologySystems.h:110
Generic class for handling the Pulse stabilization methodology.
Definition: System.h:10
Definition: SELiquidCompartment.h:10
virtual void Initialize()
Default system values to their homeostatic values
Definition: System.h:16
virtual void PostProcess()=0
Definition: PBPulseEquipment.h:10
virtual void Process()=0
virtual void PreProcess()=0
SELiquidCompartment * m_AerosolMouthpiece
Definition: Inhaler.h:48