 |
USRP Hardware Driver and USRP Manual
Version: 3.15.0.0-2+b1
UHD and USRP Manual
|
|
Go to the documentation of this file.
9 #ifndef INCLUDED_LIBUHD_NODE_CTRL_BASE_HPP
10 #define INCLUDED_LIBUHD_NODE_CTRL_BASE_HPP
17 #include <boost/enable_shared_from_this.hpp>
18 #include <boost/function.hpp>
19 #include <boost/shared_ptr.hpp>
20 #include <boost/utility.hpp>
24 namespace uhd {
namespace usrp {
29 namespace uhd {
namespace rfnoc {
31 #define UHD_RFNOC_BLOCK_TRACE() UHD_LOGGER_TRACE("RFNOC")
38 public boost::enable_shared_from_this<node_ctrl_base>
44 typedef boost::shared_ptr<node_ctrl_base>
sptr;
45 typedef boost::weak_ptr<node_ctrl_base>
wptr;
125 template <
typename T>
127 bool active_only =
false)
129 return _find_child_node<T, true>(active_only);
134 template <
typename T>
136 bool active_only =
false)
138 return _find_child_node<T, false>(active_only);
153 template <
typename T,
typename value_type>
155 boost::function<value_type(boost::shared_ptr<T> node,
size_t port)> get_property,
156 value_type null_value,
157 const std::set<boost::shared_ptr<T> >& exclude_nodes =
158 std::set<boost::shared_ptr<T> >())
160 return _find_unique_property<T, value_type, true>(
161 get_property, null_value, exclude_nodes);
166 template <
typename T,
typename value_type>
168 boost::function<value_type(boost::shared_ptr<T> node,
size_t port)> get_property,
169 value_type null_value,
170 const std::set<boost::shared_ptr<T> >& exclude_nodes =
171 std::set<boost::shared_ptr<T> >())
173 return _find_unique_property<T, value_type, false>(
174 get_property, null_value, exclude_nodes);
261 friend class uhd::usrp::device3_impl;
271 template <
typename T,
bool downstream>
272 std::vector<boost::shared_ptr<T> > _find_child_node(
bool active_only =
false);
282 template <
typename T,
typename value_type,
bool downstream>
283 value_type _find_unique_property(
284 boost::function<value_type(boost::shared_ptr<T>,
size_t)> get_property,
285 value_type NULL_VALUE,
286 const std::set<boost::shared_ptr<T> >& exclude_nodes);
290 _graph_update_cb = graph_update_cb;
295 std::map<size_t, size_t> _upstream_ports;
299 std::map<size_t, size_t> _downstream_ports;
UHD_INLINE value_type find_downstream_unique_property(boost::function< value_type(boost::shared_ptr< T > node, size_t port)> get_property, value_type null_value, const std::set< boost::shared_ptr< T > > &exclude_nodes=std::set< boost::shared_ptr< T > >())
Definition: node_ctrl_base.hpp:151
std::map< size_t, wptr > node_map_t
Definition: node_ctrl_base.hpp:45
void set_downstream_port(const size_t this_port, const size_t remote_port)
UHD_INLINE std::vector< boost::shared_ptr< T > > find_downstream_node(bool active_only=false)
Definition: node_ctrl_base.hpp:123
node_map_t list_upstream_nodes()
Definition: node_ctrl_base.hpp:64
UHD_INLINE value_type find_upstream_unique_property(boost::function< value_type(boost::shared_ptr< T > node, size_t port)> get_property, value_type null_value, const std::set< boost::shared_ptr< T > > &exclude_nodes=std::set< boost::shared_ptr< T > >())
Definition: node_ctrl_base.hpp:164
virtual void _register_upstream_node(node_ctrl_base::sptr upstream_node, size_t port)
virtual void _register_downstream_node(node_ctrl_base::sptr downstream_node, size_t port)
#define UHD_RFNOC_API
Definition: config.hpp:117
#define UHD_INLINE
Definition: config.h:53
std::pair< size_t, wptr > node_map_pair_t
Definition: node_ctrl_base.hpp:46
Definition: node_ctrl_base.hpp:37
size_t get_downstream_port(const size_t this_port)
void disconnect_input_port(const size_t input_port)
node_map_t list_downstream_nodes()
Definition: node_ctrl_base.hpp:60
Definition: device_addr.hpp:38
virtual ~node_ctrl_base()
Definition: node_ctrl_base.hpp:178
boost::shared_ptr< node_ctrl_base > sptr
Definition: node_ctrl_base.hpp:43
Definition: build_info.hpp:13
size_t _num_input_ports
Definition: node_ctrl_base.hpp:199
UHD_INLINE std::vector< boost::shared_ptr< T > > find_upstream_node(bool active_only=false)
Definition: node_ctrl_base.hpp:132
node_ctrl_base(void)
Definition: node_ctrl_base.hpp:177
boost::function< void(void)> graph_update_cb_t
Definition: node_ctrl_base.hpp:47
uhd::device_addr_t _args
Stores default arguments.
Definition: node_ctrl_base.hpp:187
void update_graph()
Definition: node_ctrl_base.hpp:249
node_map_t _downstream_nodes
List of downstream nodes.
Definition: node_ctrl_base.hpp:195
node_map_t _upstream_nodes
List of upstream nodes.
Definition: node_ctrl_base.hpp:192
size_t _num_output_ports
Definition: node_ctrl_base.hpp:203
void set_upstream_port(const size_t this_port, const size_t remote_port)
size_t get_upstream_port(const size_t this_port)
boost::noncopyable noncopyable
Definition: noncopyable.hpp:46
std::map< size_t, bool > _tx_streamer_active
Definition: node_ctrl_base.hpp:221
boost::weak_ptr< node_ctrl_base > wptr
Definition: node_ctrl_base.hpp:44
std::map< size_t, bool > _rx_streamer_active
Definition: node_ctrl_base.hpp:212
void disconnect_output_port(const size_t output_port)
virtual std::string unique_id() const
Returns a unique string that identifies this block.