USRP Hardware Driver and USRP Manual  Version: 4.4.0.HEAD-0-g5fac246b
UHD and USRP Manual
uhd::experts::expert_container Class Referenceabstract

#include <uhd/experts/expert_container.hpp>

Inheritance diagram for uhd::experts::expert_container:
uhd::experts::node_retriever_t

Public Types

typedef std::shared_ptr< expert_containersptr
 

Public Member Functions

 ~expert_container () override
 
virtual const std::string & get_name () const =0
 
virtual void resolve_all (bool force=false)=0
 
virtual void resolve_from (const std::string &node_name)=0
 
virtual void resolve_to (const std::string &node_name)=0
 
virtual const node_retriever_tnode_retriever () const =0
 
virtual std::string to_dot () const =0
 
virtual void debug_audit () const =0
 
- Public Member Functions inherited from uhd::experts::node_retriever_t
virtual ~node_retriever_t ()
 

Friends

class expert_factory
 

Member Typedef Documentation

◆ sptr

Constructor & Destructor Documentation

◆ ~expert_container()

uhd::experts::expert_container::~expert_container ( )
inlineoverride

Member Function Documentation

◆ debug_audit()

virtual void uhd::experts::expert_container::debug_audit ( ) const
pure virtual

Runs several sanity checks on the underlying graph to flag dependency issues. Outputs of the checks are logged to the console so UHD_EXPERTS_VERBOSE_LOGGING must be enabled to see the results

◆ get_name()

virtual const std::string& uhd::experts::expert_container::get_name ( ) const
pure virtual

Return the name of this container

◆ node_retriever()

virtual const node_retriever_t& uhd::experts::expert_container::node_retriever ( ) const
pure virtual

Return a node retriever object for this container

◆ resolve_all()

virtual void uhd::experts::expert_container::resolve_all ( bool  force = false)
pure virtual

Resolves all the nodes in this expert graph.

Dependency analysis is performed on the graph and nodes are resolved in a topologically sorted order to ensure that no nodes receive stale data. Nodes and their dependencies are resolved only if they are dirty i.e. their contained values have changed since the last resolve. This call requires an acyclic expert graph.

Parameters
forceIf true then ignore dirty state and resolve all nodes
Exceptions
uhd::runtime_errorif graph cannot be resolved

◆ resolve_from()

virtual void uhd::experts::expert_container::resolve_from ( const std::string &  node_name)
pure virtual

Resolves all the nodes that depend on the specified node.

Dependency analysis is performed on the graph and nodes are resolved in a topologically sorted order to ensure that no nodes receive stale data. Nodes and their dependencies are resolved only if they are dirty i.e. their contained values have changed since the last resolve. This call requires an acyclic expert graph.

Parameters
node_nameName of the node to start resolving from
Exceptions
uhd::lookup_errorif node_name not in container
uhd::runtime_errorif graph cannot be resolved

◆ resolve_to()

virtual void uhd::experts::expert_container::resolve_to ( const std::string &  node_name)
pure virtual

Resolves all the specified node and all of its dependencies.

Dependency analysis is performed on the graph and nodes are resolved in a topologically sorted order to ensure that no nodes receive stale data. Nodes and their dependencies are resolved only if they are dirty i.e. their contained values have changed since the last resolve. This call requires an acyclic expert graph.

Parameters
node_nameName of the node to resolve
Exceptions
uhd::lookup_errorif node_name not in container
uhd::runtime_errorif graph cannot be resolved

◆ to_dot()

virtual std::string uhd::experts::expert_container::to_dot ( ) const
pure virtual

Returns a DOT (graph description language) representation of the expert graph. The output has labels for the node name, node type (data or worker) and the underlying data type for each node.

Friends And Related Function Documentation

◆ expert_factory

friend class expert_factory
friend

expert_factory is a friend of expert_container and handles all operations that change the structure of the underlying dependency graph. The expert_container instance owns all data and worker nodes and is responsible for release storage on destruction. However, the expert_factory allocates storage for the node and passes them into the expert_container using the following "protected" API calls.


The documentation for this class was generated from the following file: