Class Graph
Defined in File graph.hpp
Derived Type
public holoscan::FlowGraph
(Class FlowGraph)
-
class Graph
Abstract base class for all graphs.
Subclassed by holoscan::FlowGraph
Public Types
- using NodeType = std::shared_ptr<Operator>
- using EdgeDataElementType = std::unordered_map<std::string, std::set<std::string, std::less<>>>
- using EdgeDataType = std::shared_ptr<EdgeDataElementType>
Public Functions
- Graph() = default
- virtual ~Graph() = default
-
virtual void add_operator(const NodeType &op) = 0
Add a node to the graph.
- Parameters
op – The node to add.
-
virtual void add_flow(const NodeType &op_u, const NodeType &op_v, const EdgeDataType &port_map) = 0
Add an edge to the graph.
- Parameters
op_u – A source operator.
op_v – A destination operator.
port_map – A map from the source operator’s port name to the destination operator’s port name(s).
-
virtual std::optional<EdgeDataType> get_port_map(const NodeType &op_u, const NodeType &op_v) = 0
Get a mapping from the source operator’s port name to the destination operator’s port name(s).
- Parameters
op_u – A source operator.
op_v – A destination operator.
- Returns
A map from the source operator’s port name to the destination operator’s port name(s).
-
virtual bool is_root(const NodeType &op) = 0
Check if the operator is a root operator.
- Parameters
- Returns
op – A node in the graph.
true if the operator is a root operator.
-
virtual bool is_leaf(const NodeType &op) = 0
Check if the operator is a leaf operator.
- Parameters
- Returns
op – A node in the graph.
true if the operator is a leaf operator.
-
virtual std::vector<NodeType> get_root_operators() = 0
Get all root operators.
- Returns
A vector of root operators.
-
virtual std::vector<NodeType> get_operators() = 0
Get all operators.
- Returns
A vector of all operators.
-
virtual std::vector<NodeType> get_next_operators(const NodeType &op) = 0
Get the next operators of the given operator.
- Parameters
- Returns
op – A node in the graph.
A vector of next operators.
-
inline virtual void context(void *context)
Set the context.
- Parameters
context – The context.
-
inline virtual void *context()
Get the context.
- Returns
The context.
Protected Attributes
- void *context_ = nullptr
The context.