USRP Hardware Driver and USRP Manual Version: 4.2.0.0
UHD and USRP Manual
graph_edge.hpp
Go to the documentation of this file.
1//
2// Copyright 2019 Ettus Research, a National Instruments Brand
3//
4// SPDX-License-Identifier: GPL-3.0-or-later
5//
6
7#pragma once
8
9#include <uhd/config.hpp>
10#include <string>
11#include <tuple>
12
13namespace uhd { namespace rfnoc {
14
23{
24 enum edge_t {
28 TX_STREAM
29 };
30
31 graph_edge_t() = default;
32
33 graph_edge_t(const size_t src_port_,
34 const size_t dst_port_,
35 const edge_t edge_,
36 const bool ppa)
37 : src_port(src_port_)
38 , dst_port(dst_port_)
39 , edge(edge_)
40 , property_propagation_active(ppa)
41 {
42 }
43
45 std::string src_blockid;
47 size_t src_port = 0;
49 std::string dst_blockid;
51 size_t dst_port = 0;
53 edge_t edge = DYNAMIC;
55 bool property_propagation_active = true;
56
57 bool operator==(const graph_edge_t& rhs) const
58 {
59 return std::tie(src_blockid,
60 src_port,
61 dst_blockid,
62 dst_port,
63 edge,
64 property_propagation_active)
65 == std::tie(rhs.src_blockid,
66 rhs.src_port,
67 rhs.dst_blockid,
68 rhs.dst_port,
69 rhs.edge,
71 }
72
74 std::string to_string() const
75 {
76 return src_blockid + ":" + std::to_string(src_port)
77 + (edge == STATIC ? "==>" : "-->") + dst_blockid + ":"
78 + std::to_string(dst_port);
79 }
80};
81
82
83}} /* namespace uhd::rfnoc */
#define UHD_API
Definition: config.h:87
Definition: build_info.hpp:12
Definition: graph_edge.hpp:23
std::string to_string() const
Return a string representation of the connection.
Definition: graph_edge.hpp:74
std::string dst_blockid
The ID of the destination block for this edge.
Definition: graph_edge.hpp:49
edge_t
Definition: graph_edge.hpp:24
@ DYNAMIC
A user (dynamic) connection between two blocks in the FPGA.
Definition: graph_edge.hpp:26
@ STATIC
A static connection between two blocks in the FPGA.
Definition: graph_edge.hpp:25
@ RX_STREAM
A connection from an FPGA block to a software RX streamer.
Definition: graph_edge.hpp:27
std::string src_blockid
The ID of the source block for this edge.
Definition: graph_edge.hpp:45
edge_t edge
The type of edge.
Definition: graph_edge.hpp:53
size_t dst_port
The port number of the destination block for this edge.
Definition: graph_edge.hpp:51
bool operator==(const graph_edge_t &rhs) const
Definition: graph_edge.hpp:57
graph_edge_t(const size_t src_port_, const size_t dst_port_, const edge_t edge_, const bool ppa)
Definition: graph_edge.hpp:33
size_t src_port
The port number of the source block for this edge.
Definition: graph_edge.hpp:47
bool property_propagation_active
When true, the framework will use this edge for property propagation.
Definition: graph_edge.hpp:55