diff options
author | Martin Braun <martin.braun@ettus.com> | 2022-02-03 14:32:43 +0100 |
---|---|---|
committer | Aaron Rossetto <aaron.rossetto@ni.com> | 2022-02-04 13:13:59 -0600 |
commit | c1e26b4a260d6f9210f3c31b9f7311be833e8cad (patch) | |
tree | d00190a041fec11a68e21c2aa1dfb4b0642fa995 | |
parent | 0b5e3f2df01216a821ee3164f237711457500f5e (diff) | |
download | uhd-c1e26b4a260d6f9210f3c31b9f7311be833e8cad.tar.gz uhd-c1e26b4a260d6f9210f3c31b9f7311be833e8cad.tar.bz2 uhd-c1e26b4a260d6f9210f3c31b9f7311be833e8cad.zip |
uhd: rfnoc: Let connect_through_blocks() return edge list
This changes the return value of connect_through_blocks() from void to
a list of edges. If the connection can be made, then it will now return
the list of connections between the source block and port.
-rw-r--r-- | host/include/uhd/utils/graph_utils.hpp | 9 | ||||
-rw-r--r-- | host/lib/utils/graph_utils.cpp | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/host/include/uhd/utils/graph_utils.hpp b/host/include/uhd/utils/graph_utils.hpp index c4d77b093..6b264032c 100644 --- a/host/include/uhd/utils/graph_utils.hpp +++ b/host/include/uhd/utils/graph_utils.hpp @@ -53,13 +53,20 @@ std::vector<graph_edge_t> UHD_API get_block_chain(const rfnoc_graph::sptr graph, /*! Connect desired blocks by whatever path that can be found * + * This will find the most direct path from a source block to a destination + * block. If these blocks are statically connected it will simply call connect() + * on all intermediate connections. If not, it will create a dynamic connection + * between stream endpoints. If this is not possible, an exception is thrown. + * * \param graph The rfnoc_graph that is being examined * \param src_blk Source block's ID * \param src_port Block port where the path starts * \param dst_blk Destination block's ID * \param dst_port Block port where the path ends + * + * \return The edge list representing the data path requested */ -void UHD_API connect_through_blocks(rfnoc_graph::sptr graph, +std::vector<graph_edge_t> UHD_API connect_through_blocks(rfnoc_graph::sptr graph, const block_id_t src_blk, const size_t src_port, const block_id_t dst_blk, diff --git a/host/lib/utils/graph_utils.cpp b/host/lib/utils/graph_utils.cpp index 513f7b709..89df30e15 100644 --- a/host/lib/utils/graph_utils.cpp +++ b/host/lib/utils/graph_utils.cpp @@ -83,7 +83,7 @@ std::vector<graph_edge_t> get_block_chain(const rfnoc_graph::sptr graph, } -void connect_through_blocks(rfnoc_graph::sptr graph, +std::vector<graph_edge_t> connect_through_blocks(rfnoc_graph::sptr graph, const block_id_t src_blk, const size_t src_port, const block_id_t dst_blk, @@ -159,6 +159,7 @@ void connect_through_blocks(rfnoc_graph::sptr graph, UHD_LOG_TRACE("GRAPH_UTILS", err_msg); throw uhd::runtime_error("[graph_utils] " + err_msg); } + return block_chain; } }} // namespace uhd::rfnoc |