18#include <boost/units/detail/utility.hpp>  
   22namespace uhd { 
namespace rfnoc {
 
   38    using sptr = std::shared_ptr<rfnoc_graph>;
 
   78        const std::string& block_id_hint) 
const = 0;
 
   83    std::vector<block_id_t> 
find_blocks(
const std::string& block_id_hint)
 const 
   85        std::vector<block_id_t> all_block_ids = find_blocks(block_id_hint);
 
   86        std::vector<block_id_t> filt_block_ids;
 
   87        for (
size_t i = 0; i < all_block_ids.size(); i++) {
 
   88            if (has_block<T>(all_block_ids[i])) {
 
   89                filt_block_ids.push_back(all_block_ids[i]);
 
   92        return filt_block_ids;
 
  108    template <
typename T>
 
  111        return has_block(block_id)
 
  112               && bool(std::dynamic_pointer_cast<T>(get_block(block_id)));
 
  139    template <
typename T>
 
  142        std::shared_ptr<T> blk = std::dynamic_pointer_cast<T>(get_block(block_id));
 
  147                std::string(
"This device does not have a block of type ")
 
  148                + boost::units::detail::demangle(
typeid(T).name())
 
  167        size_t dst_port) = 0;
 
  188        bool skip_property_propagation = 
false) = 0;
 
  237        size_t dst_port) = 0;
 
  260    virtual void disconnect(
const std::string& streamer_id, 
size_t port) = 0;
 
  272        const block_id_t& src_blk, 
size_t src_port) = 0;
 
  284        const block_id_t& dst_blk, 
size_t dst_port) = 0;
 
  352        const size_t mb_index = 0) = 0;
 
Definition: device_addr.hpp:38
 
std::shared_ptr< property_tree > sptr
Definition: property_tree.hpp:217
 
Definition: block_id.hpp:40
 
std::string to_string() const
Return a string like this: "0/FFT#1" (includes all components, if set)
 
std::shared_ptr< noc_block_base > sptr
Definition: noc_block_base.hpp:47
 
Definition: rfnoc_graph.hpp:33
 
virtual void disconnect(const std::string &streamer_id, size_t port)=0
 
virtual size_t get_num_mboards() const =0
 
bool has_block(const block_id_t &block_id) const
Definition: rfnoc_graph.hpp:109
 
virtual std::vector< uhd::transport::adapter_id_t > enumerate_adapters_from_src(const block_id_t &src_blk, size_t src_port)=0
 
virtual ~rfnoc_graph()
Definition: rfnoc_graph.hpp:40
 
virtual std::vector< uhd::transport::adapter_id_t > enumerate_adapters_to_dst(const block_id_t &dst_blk, size_t dst_port)=0
 
virtual void connect(uhd::tx_streamer::sptr streamer, size_t strm_port, const block_id_t &dst_blk, size_t dst_port, uhd::transport::adapter_id_t adapter_id=uhd::transport::NULL_ADAPTER_ID)=0
 
virtual bool is_connectable(const block_id_t &src_blk, size_t src_port, const block_id_t &dst_blk, size_t dst_port)=0
 
virtual std::vector< graph_edge_t > enumerate_static_connections() const =0
 
virtual tx_streamer::sptr create_tx_streamer(const size_t num_ports, const stream_args_t &args)=0
 
virtual std::shared_ptr< mb_controller > get_mb_controller(const size_t mb_index=0)=0
Return a reference to a motherboard controller.
 
virtual void connect(const block_id_t &src_blk, size_t src_port, uhd::rx_streamer::sptr streamer, size_t strm_port, uhd::transport::adapter_id_t adapter_id=uhd::transport::NULL_ADAPTER_ID)=0
 
virtual bool has_block(const block_id_t &block_id) const =0
Checks if a specific NoC block exists on the device.
 
std::shared_ptr< T > get_block(const block_id_t &block_id) const
Definition: rfnoc_graph.hpp:140
 
virtual rx_streamer::sptr create_rx_streamer(const size_t num_ports, const stream_args_t &args)=0
 
virtual void disconnect(const block_id_t &src_blk, size_t src_port, const block_id_t &dst_blk, size_t dst_port)=0
 
virtual noc_block_base::sptr get_block(const block_id_t &block_id) const =0
Returns a block controller class for an NoC block.
 
virtual std::vector< block_id_t > find_blocks(const std::string &block_id_hint) const =0
 
virtual void connect(const block_id_t &src_blk, size_t src_port, const block_id_t &dst_blk, size_t dst_port, bool skip_property_propagation=false)=0
 
virtual uhd::property_tree::sptr get_tree(void) const =0
Return a reference to the property tree.
 
std::vector< block_id_t > find_blocks(const std::string &block_id_hint) const
Definition: rfnoc_graph.hpp:83
 
static sptr make(const device_addr_t &dev_addr)
 
virtual void disconnect(const std::string &streamer_id)=0
 
virtual bool synchronize_devices(const uhd::time_spec_t &time_spec, const bool quiet)=0
 
std::shared_ptr< rfnoc_graph > sptr
Definition: rfnoc_graph.hpp:38
 
virtual std::vector< graph_edge_t > enumerate_active_connections()=0
 
std::shared_ptr< rx_streamer > sptr
Definition: stream.hpp:172
 
Definition: time_spec.hpp:31
 
std::shared_ptr< tx_streamer > sptr
Definition: stream.hpp:250
 
#define UHD_API
Definition: config.h:67
 
size_t adapter_id_t
Host transport adapter ID.
Definition: adapter_id.hpp:14
 
Definition: build_info.hpp:12
 
boost::noncopyable noncopyable
Definition: noncopyable.hpp:45
 
Definition: exception.hpp:60
 
Definition: stream.hpp:59