SEThermalBlackBox.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/blackbox/SEBlackBox.h"
6#include "cdm/circuit/thermal/SEThermalCircuitPath.h"
7#include "cdm/compartment/thermal/SEThermalCompartmentLink.h"
8
9class CDM_DECL SEThermalBlackBox : public SEBlackBox<THERMAL_BLACK_BOX>
10{
11 friend class SEBlackBoxManager;
12 friend class CommonDataModelTest;
13protected:
14 SEThermalBlackBox(const std::string& name, Logger* logger);
15public:
16 virtual ~SEThermalBlackBox();
17
18protected:
19 // Graph Elements
20 virtual bool HasCompartment() const { return m_Compartment != nullptr; }
21 virtual SEThermalCompartment* GetCompartment() const { return m_Compartment; }
22 virtual void SetCompartment(SEThermalCompartment* c) { m_Compartment = c; }
23
24 virtual bool HasSourceCompartment() const { return m_srcCompartment != nullptr; }
25 virtual SEThermalCompartment* GetSourceCompartment() const { return m_srcCompartment; }
26 virtual void SetSourceCompartment(SEThermalCompartment* c) { m_srcCompartment = c; }
27
28 virtual bool HasTargetCompartment() const { return m_tgtCompartment != nullptr; }
29 virtual SEThermalCompartment* GetTargetCompartment() const { return m_tgtCompartment; }
30 virtual void SetTargetCompartment(SEThermalCompartment* c) { m_tgtCompartment = c; }
31
32 virtual bool HasSourceLink() const { return m_srcLink != nullptr; }
33 virtual SEThermalCompartmentLink* GetSourceLink() const { return m_srcLink; }
34 virtual void SetSourceLink(SEThermalCompartmentLink* l) { m_srcLink = l; }
35
36 virtual bool HasTargetLink() const { return m_tgtLink != nullptr; }
37 virtual SEThermalCompartmentLink* GetTargetLink() const { return m_tgtLink; }
38 virtual void SetTargetLink(SEThermalCompartmentLink* l) { m_tgtLink = l; }
39
40protected:
41 // Graph Elements
42 SEThermalCompartment* m_Compartment = nullptr;
43 SEThermalCompartment* m_srcCompartment = nullptr;
44 SEThermalCompartment* m_tgtCompartment = nullptr;
45 SEThermalCompartmentLink* m_srcLink = nullptr;
46 SEThermalCompartmentLink* m_tgtLink = nullptr;
47};
Definition: CommonDataModelTest.h:42
Definition: Logger.h:71
Definition: SEBlackBox.h:42
Definition: SEBlackBoxManager.h:11
Definition: SEThermalBlackBox.h:10
virtual SEThermalCompartment * GetSourceCompartment() const
Definition: SEThermalBlackBox.h:25
virtual void SetTargetLink(SEThermalCompartmentLink *l)
Definition: SEThermalBlackBox.h:38
virtual void SetSourceLink(SEThermalCompartmentLink *l)
Definition: SEThermalBlackBox.h:34
virtual bool HasCompartment() const
Definition: SEThermalBlackBox.h:20
virtual SEThermalCompartment * GetCompartment() const
Definition: SEThermalBlackBox.h:21
virtual void SetSourceCompartment(SEThermalCompartment *c)
Definition: SEThermalBlackBox.h:26
virtual SEThermalCompartmentLink * GetTargetLink() const
Definition: SEThermalBlackBox.h:37
virtual bool HasTargetLink() const
Definition: SEThermalBlackBox.h:36
virtual SEThermalCompartment * GetTargetCompartment() const
Definition: SEThermalBlackBox.h:29
virtual bool HasSourceCompartment() const
Definition: SEThermalBlackBox.h:24
virtual bool HasSourceLink() const
Definition: SEThermalBlackBox.h:32
virtual SEThermalCompartmentLink * GetSourceLink() const
Definition: SEThermalBlackBox.h:33
virtual void SetCompartment(SEThermalCompartment *c)
Definition: SEThermalBlackBox.h:22
virtual void SetTargetCompartment(SEThermalCompartment *c)
Definition: SEThermalBlackBox.h:30
virtual bool HasTargetCompartment() const
Definition: SEThermalBlackBox.h:28
Definition: SEThermalCompartment.h:12

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.