Loading...
Searching...
No Matches
graph.hpp
Go to the documentation of this file.
//
// Copyright 2019 Ettus Research, a National Instruments Brand
//
// SPDX-License-Identifier: GPL-3.0-or-later
//
#pragma once
#include <uhd/config.hpp>
#include <uhd/rfnoc/graph_edge.hpp>
#include <uhd/rfnoc/node.hpp>
#include <memory>
#include <string>
#include <vector>
namespace uhd { namespace rfnoc { namespace detail {
class UHD_API graph_t
{
public:
using uptr = std::unique_ptr<graph_t>;
using node_ref_t = uhd::rfnoc::node_t*;
using graph_edge_t = uhd::rfnoc::graph_edge_t;
graph_t();
~graph_t();
void connect(node_ref_t src_node, node_ref_t dst_node, graph_edge_t edge_info);
void disconnect(node_ref_t src_node, node_ref_t dst_node, graph_edge_t edge_info);
void remove(node_ref_t node);
void commit();
void release();
void shutdown();
std::vector<graph_edge_t> enumerate_edges();
std::string to_dot();
private:
friend class graph_accessor_t;
struct impl;
std::unique_ptr<impl> _impl;
};
}}} /* namespace uhd::rfnoc::detail */
uhd::rfnoc::detail::graph_t::commit
void commit()
uhd::rfnoc::detail::graph_t::~graph_t
~graph_t()
uhd::rfnoc::detail::graph_t::node_ref_t
uhd::rfnoc::node_t * node_ref_t
A shorthand for a pointer to a node.
Definition graph.hpp:24
uhd::rfnoc::detail::graph_t::release
void release()
uhd::rfnoc::detail::graph_t::enumerate_edges
std::vector< graph_edge_t > enumerate_edges()
uhd::rfnoc::detail::graph_t::graph_accessor_t
friend class graph_accessor_t
Definition graph.hpp:100
uhd::rfnoc::detail::graph_t::graph_t
graph_t()
uhd::rfnoc::detail::graph_t::uptr
std::unique_ptr< graph_t > uptr
Definition graph.hpp:22
uhd::rfnoc::detail::graph_t::remove
void remove(node_ref_t node)
uhd::rfnoc::detail::graph_t::to_dot
std::string to_dot()
uhd::rfnoc::detail::graph_t::graph_edge_t
uhd::rfnoc::graph_edge_t graph_edge_t
Shorthand to existing graph_edge_t.
Definition graph.hpp:26
uhd::rfnoc::detail::graph_t::connect
void connect(node_ref_t src_node, node_ref_t dst_node, graph_edge_t edge_info)
uhd::rfnoc::detail::graph_t::disconnect
void disconnect(node_ref_t src_node, node_ref_t dst_node, graph_edge_t edge_info)
uhd::rfnoc::detail::graph_t::shutdown
void shutdown()
uhd::rfnoc::node_t
Definition node.hpp:35
UHD_API
#define UHD_API
Definition config.h:87
config.hpp
graph_edge.hpp
uhd::rfnoc::detail
Definition graph.hpp:16
uhd::rfnoc
Definition actions.hpp:24
uhd
Definition build_info.hpp:12
node.hpp
uhd::rfnoc::graph_edge_t
Definition graph_edge.hpp:23