|
| Network (AdjacencyMatrix const &adj) |
| Construct a new Network object.
|
|
AdjacencyMatrix const & | adjacencyMatrix () const |
| Get the adjacency matrix.
|
|
std::unordered_map< Id, std::unique_ptr< node_t > > const & | nodes () const |
| Get the nodes as an unordered map.
|
|
std::unordered_map< Id, std::unique_ptr< edge_t > > const & | edges () const |
| Get the edges as an unordered map.
|
|
size_t | nNodes () const |
| Get the number of nodes.
|
|
size_t | nEdges () const |
| Get the number of edges.
|
|
template<typename TNode = node_t, typename... TArgs>
requires (std::is_base_of_v<node_t, TNode> && std::constructible_from<TNode, Id, TArgs...>) |
void | addNode (Id nodeId, TArgs &&... args) |
| Add a node to the network.
|
|
template<typename TEdge = edge_t, typename... TArgs>
requires (std::is_base_of_v<edge_t, TEdge> && std::constructible_from<TEdge, Id, TArgs...>) |
void | addEdge (Id edgeId, TArgs &&... args) |
| Add an edge to the network.
|
|
std::unique_ptr< node_t > const & | node (Id nodeId) const |
| Get a node by id.
|
|
std::unique_ptr< edge_t > const & | edge (Id edgeId) const |
| Get an edge by id.
|
|
template<typename TNode>
requires (std::is_base_of_v<node_t, TNode>) |
TNode & | node (Id nodeId) |
| Get a node by id.
|
|
template<typename TEdge>
requires (std::is_base_of_v<edge_t, TEdge>) |
TEdge & | edge (Id edgeId) |
| Get an edge by id.
|
|
|
virtual void | m_addMissingNodes (Id const edgeId) |
|
|
AdjacencyMatrix | m_adjacencyMatrix |
|
std::unordered_map< Id, std::unique_ptr< node_t > > | m_nodes |
|
std::unordered_map< Id, std::unique_ptr< edge_t > > | m_edges |
|
◆ Network()
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<
Node, node_t> && std::is_base_of_v<
Edge, edge_t>)
Construct a new Network object.
- Parameters
-
adj | The adjacency matrix representing the network |
◆ addEdge()
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<edge_t, TEdge> && std::constructible_from<TEdge, Id, TArgs...>)
template<typename TEdge, typename... TArgs>
requires (std::is_base_of_v<edge_t, TEdge> && std::constructible_from<TEdge, Id, TArgs...>)
void dsm::Network< node_t, edge_t >::addEdge |
( |
Id | edgeId, |
|
|
TArgs &&... | args ) |
Add an edge to the network.
- Template Parameters
-
TEdge | The type of the edge (default is edge_t) |
TArgs | The types of the arguments |
- Parameters
-
edgeId | The edge's id |
args | The arguments to pass to the edge's constructor |
◆ addNode()
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<node_t, TNode> && std::constructible_from<TNode, Id, TArgs...>)
template<typename TNode, typename... TArgs>
requires (std::is_base_of_v<node_t, TNode> && std::constructible_from<TNode, Id, TArgs...>)
void dsm::Network< node_t, edge_t >::addNode |
( |
Id | nodeId, |
|
|
TArgs &&... | args ) |
Add a node to the network.
- Template Parameters
-
TNode | The type of the node (default is node_t) |
TArgs | The types of the arguments |
- Parameters
-
nodeId | The node's id |
args | The arguments to pass to the node's constructor |
◆ adjacencyMatrix()
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<
Node, node_t> && std::is_base_of_v<
Edge, edge_t>)
◆ edge() [1/2]
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<edge_t, TEdge>)
template<typename TEdge>
requires (std::is_base_of_v<edge_t, TEdge>)
Get an edge by id.
- Template Parameters
-
TEdge | The type of the edge |
- Parameters
-
- Returns
- TEdge& A reference to the edge
◆ edge() [2/2]
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<
Node, node_t> && std::is_base_of_v<
Edge, edge_t>)
std::unique_ptr< edge_t > const & dsm::Network< node_t, edge_t >::edge |
( |
Id | edgeId | ) |
const |
Get an edge by id.
- Parameters
-
- Returns
- std::unique_ptr<edge_t> const& A const reference to the edge
◆ edges()
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<
Node, node_t> && std::is_base_of_v<
Edge, edge_t>)
std::unordered_map< Id, std::unique_ptr< edge_t > > const & dsm::Network< node_t, edge_t >::edges |
( |
| ) |
const |
Get the edges as an unordered map.
- Returns
- std::unordered_map<Id, std::unique_ptr<edge_t>> The edges
◆ nEdges()
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<
Node, node_t> && std::is_base_of_v<
Edge, edge_t>)
Get the number of edges.
- Returns
- size_t The number of edges
◆ nNodes()
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<
Node, node_t> && std::is_base_of_v<
Edge, edge_t>)
Get the number of nodes.
- Returns
- size_t The number of nodes
◆ node() [1/2]
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<node_t, TNode>)
template<typename TNode>
requires (std::is_base_of_v<node_t, TNode>)
Get a node by id.
- Template Parameters
-
TNode | The type of the node |
- Parameters
-
- Returns
- TNode& A reference to the node
◆ node() [2/2]
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<
Node, node_t> && std::is_base_of_v<
Edge, edge_t>)
std::unique_ptr< node_t > const & dsm::Network< node_t, edge_t >::node |
( |
Id | nodeId | ) |
const |
Get a node by id.
- Parameters
-
- Returns
- std::unique_ptr<node_t> const& A const reference to the node
◆ nodes()
template<typename node_t, typename edge_t>
requires (std::is_base_of_v<
Node, node_t> && std::is_base_of_v<
Edge, edge_t>)
std::unordered_map< Id, std::unique_ptr< node_t > > const & dsm::Network< node_t, edge_t >::nodes |
( |
| ) |
const |
Get the nodes as an unordered map.
- Returns
- std::unordered_map<Id, std::unique_ptr<node_t>> The nodes
The documentation for this class was generated from the following file:
- src/dsm/headers/Network.hpp