Special class which may access nodes. More...
#include <uhd/rfnoc/node_accessor.hpp>
Special class which may access nodes.
For the sake of property resolution, we require access to certain private members of nodes. Instead of giving everyone access to everything, we create this accessor class to allow by-passing the access control.
This class is not meant to be used by users of the RFNoC API, but in certain corner cases, it may be useful for RFNoC block developers. One main use case is unit tests, where we need to access the internals of nodes to test their functionality (e.g., by reading hidden state). It is not considered good practice to use this class in production code, as it breaks encapsulation.
Public Types | |
| using | prop_ptrs_t = node_t::prop_ptrs_t |
Public Member Functions | |
| void | init_props (node_t *node) |
| void | resolve_props (node_t *node) |
| template<typename PredicateType > | |
| node_t::prop_ptrs_t | filter_props (node_t *node, PredicateType &&predicate) |
| void | clean_props (node_t *node) |
| void | set_resolve_all_callback (node_t *node, node_t::resolve_callback_t &&resolver) |
| void | clear_resolve_all_callback (node_t *node) |
| void | set_graph_mutex_callback (node_t *node, node_t::graph_mutex_callback_t &&mutex) |
| void | clear_graph_mutex_callback (node_t *node) |
| void | forward_edge_property (node_t *dst_node, const size_t dst_port, property_base_t *incoming_prop) |
| void | set_post_action_callback (node_t *node, node_t::post_action_handler_t &&post_handler) |
| void | send_action (node_t *node, const res_source_info &port_info, action_info::sptr action) |
| void | post_action (node_t *node, const res_source_info &edge_info, action_info::sptr action) |
| bool | check_topology (node_t *node, const std::vector< size_t > &connected_inputs, const std::vector< size_t > &connected_outputs) |
| void | shutdown (node_t *node) |
|
inline |
Check topology for this block
See node_t::check_topology() for details
|
inline |
Mark all properties on this node as clean
See node_t::clean_props() for details.
|
inline |
Clears the graph mutex callback. Called when node is disconnected from the graph.
See node_t::clear_graph_mutex_callback() for details.
|
inline |
|
inline |
Returns a filtered list of properties.
The return list contains all properties that match a given predicate.
|
inline |
Forward an edge property to dst_node
See node_t::forward_edge_property() for details.
|
inline |
Initializes the properties of a node. See node_t::init_props() for details.
|
inline |
Fake a post_action() call from this node
This will call node_t::post_action() (see that for details).
|
inline |
Does a local resolution of properties on node.
See node_t::resolve_props for details.
|
inline |
Send an action to node
This will call node_t::receive_action() (see that for details).
|
inline |
Sets a callback that the node can call to the mutex to the graph it is connected to. Used for setting properties and propagation.
See node_t::set_graph_mutex_callback() for details.
|
inline |
Set post action callback for the node
See node_t::set_post_action_callback() for details.
|
inline |
Set a resolver callback for the node
See node_t::set_resolve_all_callback() for details.
|
inline |
Put a node into shutdown
See node_t::shutdown(), and also noc_block_base::shutdown() for details.