diff options
author | Martin Braun <martin.braun@ettus.com> | 2019-06-03 23:28:19 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2019-11-26 11:49:24 -0800 |
commit | 01f08d3fa5ae0cd8a2fc3c6e1112117a1f7f9768 (patch) | |
tree | 7fb49f7e0ab5329c29c292df001cd61390eae5f0 /host/lib/include/uhdlib | |
parent | 802afa6eecee368ec8e28044ce22fd39c0f93ae8 (diff) | |
download | uhd-01f08d3fa5ae0cd8a2fc3c6e1112117a1f7f9768.tar.gz uhd-01f08d3fa5ae0cd8a2fc3c6e1112117a1f7f9768.tar.bz2 uhd-01f08d3fa5ae0cd8a2fc3c6e1112117a1f7f9768.zip |
rfnoc: Add check_topology() API to nodes
This API lets blocks decide if their current topology is OK for them,
and make decisions based on their topology.
Diffstat (limited to 'host/lib/include/uhdlib')
-rw-r--r-- | host/lib/include/uhdlib/rfnoc/graph.hpp | 7 | ||||
-rw-r--r-- | host/lib/include/uhdlib/rfnoc/node_accessor.hpp | 11 |
2 files changed, 18 insertions, 0 deletions
diff --git a/host/lib/include/uhdlib/rfnoc/graph.hpp b/host/lib/include/uhdlib/rfnoc/graph.hpp index 49dc62551..4b08b5842 100644 --- a/host/lib/include/uhdlib/rfnoc/graph.hpp +++ b/host/lib/include/uhdlib/rfnoc/graph.hpp @@ -236,6 +236,13 @@ private: */ bool _assert_edge_props_consistent(rfnoc_graph_t::edge_descriptor edge); + /*! Query all blocks on their topology + * + * \throws uhd::runtime_error if any of the blocks doesn't like its + * configuration + */ + void _check_topology(); + /************************************************************************** * Attributes *************************************************************************/ diff --git a/host/lib/include/uhdlib/rfnoc/node_accessor.hpp b/host/lib/include/uhdlib/rfnoc/node_accessor.hpp index 827c87dd2..3351c5531 100644 --- a/host/lib/include/uhdlib/rfnoc/node_accessor.hpp +++ b/host/lib/include/uhdlib/rfnoc/node_accessor.hpp @@ -97,6 +97,17 @@ public: { node->receive_action(port_info, action); } + + /*! Check topology for this block + * + * See node_t::check_topology() for details + */ + bool check_topology(node_t* node, + const std::vector<size_t>& connected_inputs, + const std::vector<size_t>& connected_outputs) + { + return node->check_topology(connected_inputs, connected_outputs); + } }; |