SEElectricalBlackBox.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/electrical/SEElectricalCircuitPath.h"
7#include "cdm/compartment/electrical/SEElectricalCompartmentLink.h"
8
9class CDM_DECL SEElectricalBlackBox : public SEBlackBox<ELECTRICAL_BLACK_BOX>
10{
11 friend class SEBlackBoxManager;
12 friend class CommonDataModelTest;
13protected:
14 SEElectricalBlackBox(const std::string& name, Logger* logger);
15public:
16 virtual ~SEElectricalBlackBox();
17
18protected:
19 // Graph Elements
20 virtual bool HasCompartment() const { return m_Compartment != nullptr; }
21 virtual SEElectricalCompartment* GetCompartment() const { return m_Compartment; }
22 virtual void SetCompartment(SEElectricalCompartment* c) { m_Compartment = c; }
23
24 virtual bool HasSourceCompartment() const { return m_srcCompartment != nullptr; }
25 virtual SEElectricalCompartment* GetSourceCompartment() const { return m_srcCompartment; }
26 virtual void SetSourceCompartment(SEElectricalCompartment* c) { m_srcCompartment = c; }
27
28 virtual bool HasTargetCompartment() const { return m_tgtCompartment != nullptr; }
29 virtual SEElectricalCompartment* GetTargetCompartment() const { return m_tgtCompartment; }
30 virtual void SetTargetCompartment(SEElectricalCompartment* c) { m_tgtCompartment = c; }
31
32 virtual bool HasSourceLink() const { return m_srcLink != nullptr; }
33 virtual SEElectricalCompartmentLink* GetSourceLink() const { return m_srcLink; }
34 virtual void SetSourceLink(SEElectricalCompartmentLink* l) { m_srcLink = l; }
35
36 virtual bool HasTargetLink() const { return m_tgtLink != nullptr; }
37 virtual SEElectricalCompartmentLink* GetTargetLink() const { return m_tgtLink; }
38 virtual void SetTargetLink(SEElectricalCompartmentLink* l) { m_tgtLink = l; }
39
40protected:
41 // Graph Elements
42 SEElectricalCompartment* m_Compartment = nullptr;
43 SEElectricalCompartment* m_srcCompartment = nullptr;
44 SEElectricalCompartment* m_tgtCompartment = nullptr;
45 SEElectricalCompartmentLink* m_srcLink = nullptr;
46 SEElectricalCompartmentLink* m_tgtLink = nullptr;
47};
Definition: CommonDataModelTest.h:42
Definition: Logger.h:71
Definition: SEBlackBox.h:42
Definition: SEBlackBoxManager.h:11
Definition: SEElectricalBlackBox.h:10
virtual SEElectricalCompartment * GetSourceCompartment() const
Definition: SEElectricalBlackBox.h:25
virtual bool HasSourceCompartment() const
Definition: SEElectricalBlackBox.h:24
virtual void SetSourceCompartment(SEElectricalCompartment *c)
Definition: SEElectricalBlackBox.h:26
virtual SEElectricalCompartment * GetTargetCompartment() const
Definition: SEElectricalBlackBox.h:29
virtual SEElectricalCompartmentLink * GetSourceLink() const
Definition: SEElectricalBlackBox.h:33
virtual bool HasCompartment() const
Definition: SEElectricalBlackBox.h:20
virtual void SetTargetCompartment(SEElectricalCompartment *c)
Definition: SEElectricalBlackBox.h:30
virtual SEElectricalCompartmentLink * GetTargetLink() const
Definition: SEElectricalBlackBox.h:37
virtual void SetTargetLink(SEElectricalCompartmentLink *l)
Definition: SEElectricalBlackBox.h:38
virtual void SetCompartment(SEElectricalCompartment *c)
Definition: SEElectricalBlackBox.h:22
virtual bool HasTargetCompartment() const
Definition: SEElectricalBlackBox.h:28
virtual bool HasTargetLink() const
Definition: SEElectricalBlackBox.h:36
virtual SEElectricalCompartment * GetCompartment() const
Definition: SEElectricalBlackBox.h:21
virtual void SetSourceLink(SEElectricalCompartmentLink *l)
Definition: SEElectricalBlackBox.h:34
virtual bool HasSourceLink() const
Definition: SEElectricalBlackBox.h:32
Definition: SEElectricalCompartment.h:12

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.