SEFluidCircuitNode.h
1 /**************************************************************************************
2 Copyright 2015 Applied Research Associates, Inc.
3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 this file except in compliance with the License. You may obtain a copy of the License
5 at:
6 http://www.apache.org/licenses/LICENSE-2.0
7 Unless required by applicable law or agreed to in writing, software distributed under
8 the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9 CONDITIONS OF ANY KIND, either express or implied. See the License for the
10 specific language governing permissions and limitations under the License.
11 **************************************************************************************/
12 
13 #pragma once
14 #include <biogears/cdm/circuit/SECircuitNode.h>
15 #include <biogears/cdm/properties/SEScalarPressure.h>
16 #include <biogears/cdm/properties/SEScalarVolume.h>
17 #include <biogears/schema/cdm/Properties.hxx>
18 
19 namespace biogears {
20 class SECircuitManager;
21 class BIOGEARS_API SEFluidCircuitNode : public SECircuitNode<FLUID_CIRCUIT_NODE> {
22  friend class SECircuitManager;
23 
24 protected:
25  SEFluidCircuitNode(const char* name, Logger* logger);
26  SEFluidCircuitNode(const std::string& name, Logger* logger);
27 public:
28  virtual ~SEFluidCircuitNode();
29 
30  virtual void Clear(); //clear memory
31 
32  virtual bool Load(const CDM::FluidCircuitNodeData& in);
33  virtual CDM::FluidCircuitNodeData* Unload() const;
34 
35 protected:
36  virtual void Unload(CDM::FluidCircuitNodeData& data) const;
37 
38 public:
39  virtual bool HasPressure() const;
40  virtual SEScalarPressure& GetPressure();
41  virtual double GetPressure(const PressureUnit& unit) const;
42 
43  virtual bool HasNextPressure() const;
44  virtual SEScalarPressure& GetNextPressure();
45  virtual double GetNextPressure(const PressureUnit& unit) const;
46 
47  virtual bool HasVolume() const;
48  virtual SEScalarVolume& GetVolume();
49  virtual double GetVolume(const VolumeUnit& unit) const;
50 
51  virtual bool HasNextVolume() const;
52  virtual SEScalarVolume& GetNextVolume();
53  virtual double GetNextVolume(const VolumeUnit& unit) const;
54 
55  virtual bool HasVolumeBaseline() const;
56  virtual SEScalarVolume& GetVolumeBaseline();
57  virtual double GetVolumeBaseline(const VolumeUnit& unit) const;
58 };
59 }
Definition: Logger.h:75
Definition: SEFluidCircuitNode.h:21
Definition: SEScalarVolume.h:18
Definition: SEScalarPressure.h:37
Definition: SEScalarVolume.h:37
Definition: SEScalarPressure.h:18
Definition: SEElectricalCircuit.h:18
Definition: SECircuitNode.h:28
Class corresponding to the FluidCircuitNodeData schema type.
Definition: Circuit.hxx:4644
Definition: SECircuitManager.h:53