5#include "cdm/circuit/SECircuitNode.h"
6#include "cdm/circuit/SECircuitPath.h"
8#define CIRCUIT_TEMPLATE typename NodeType, typename PathType
9#define CIRCUIT_TYPES NodeType,PathType
11template<CIRCUIT_TEMPLATE>
22 virtual std::string
GetName()
const;
27 virtual void AddNode(NodeType& node);
29 virtual bool HasNode(NodeType& node);
30 virtual bool HasNode(
const std::string& name);
31 virtual NodeType*
GetNode(
const std::string& name);
32 virtual const NodeType*
GetNode(
const std::string& name)
const;
33 virtual const std::vector<NodeType*>&
GetNodes()
const;
35 virtual void RemoveNode(
const std::string& name);
38 virtual void AddPath(PathType& node);
40 virtual bool HasPath(PathType& node);
41 virtual bool HasPath(
const std::string& name);
42 virtual PathType*
GetPath(
const std::string& name);
43 virtual const PathType*
GetPath(
const std::string& name)
const;
44 virtual const std::vector<PathType*>&
GetPaths()
const;
46 virtual void RemovePath(
const std::string& name);
50 virtual const std::vector<PathType*>*
GetTargetPaths(
const NodeType& node)
const;
51 virtual const std::vector<PathType*>*
GetSourcePaths(
const NodeType& node)
const;
52 virtual const std::vector<PathType*>*
GetConnectedPaths(
const NodeType& node)
const;
72#include "cdm/circuit/SECircuit.hxx"
Definition: PBCircuit.h:26
Definition: SECircuit.h:13
virtual const std::vector< PathType * > & GetValvePaths()
Definition: SECircuit.cpp:307
virtual const std::vector< PathType * > * GetSourcePaths(const NodeType &node) const
Returns all source paths for a node.
Definition: SECircuit.cpp:354
virtual void RemoveNode(const NodeType &node)
Definition: SECircuit.cpp:204
std::map< const NodeType *, std::vector< PathType * > * > m_ConnectedPathMap
Definition: SECircuit.h:66
std::vector< NodeType * > m_Nodes
Definition: SECircuit.h:61
virtual std::string GetName() const
Definition: SECircuit.cpp:139
virtual void RemovePath(const PathType &path)
Definition: SECircuit.cpp:279
virtual void AddPath(PathType &node)
Definition: SECircuit.cpp:233
virtual const std::vector< PathType * > * GetTargetPaths(const NodeType &node) const
Returns all target paths for a node.
Definition: SECircuit.cpp:330
virtual bool HasPath(PathType &node)
Definition: SECircuit.cpp:244
virtual void AddNode(NodeType &node)
Definition: SECircuit.cpp:158
virtual const std::vector< PathType * > * GetConnectedPaths(const NodeType &node) const
Returns all source paths for a node.
Definition: SECircuit.cpp:378
virtual ~SECircuit()
Definition: SECircuit.cpp:16
std::vector< PathType * > m_ValvePaths
Definition: SECircuit.h:68
SECircuit(const std::string &name, Logger *logger)
Definition: SECircuit.cpp:11
virtual NodeType * GetNode(const std::string &name)
Definition: SECircuit.cpp:179
virtual void ForceAddNode(NodeType &node)
Definition: SECircuit.cpp:164
std::map< const NodeType *, std::vector< PathType * > * > m_SourcePathMap
Definition: SECircuit.h:65
virtual void ForceAddPath(PathType &node)
Definition: SECircuit.cpp:239
virtual void SetNextAndCurrentFromBaselines()
Set all Current and Next values to the Baseline values for all Elements.
Definition: SECircuit.cpp:394
virtual bool HasNode(NodeType &node)
Definition: SECircuit.cpp:169
std::stringstream m_ss
Definition: SECircuit.h:59
virtual bool HasReferenceNode() const
Definition: SECircuit.cpp:145
std::vector< PathType * > m_Paths
Definition: SECircuit.h:62
virtual const std::vector< NodeType * > & GetNodes() const
Definition: SECircuit.cpp:199
virtual const std::vector< PathType * > & GetPaths() const
Definition: SECircuit.cpp:274
virtual void Clear()
Definition: SECircuit.cpp:22
std::vector< PathType * > m_PolarizedElementPaths
Definition: SECircuit.h:69
virtual PathType * GetPath(const std::string &name)
Definition: SECircuit.cpp:254
virtual void StateChange()
Definition: SECircuit.cpp:40
std::string m_Name
Definition: SECircuit.h:58
virtual const std::vector< PathType * > & GetPolarizedElementPaths()
Definition: SECircuit.cpp:312
std::map< const NodeType *, std::vector< PathType * > * > m_TargetPathMap
Definition: SECircuit.h:64