Loading...
Searching...
No Matches
uhd::experts::expert_container Class Referenceabstract

`#include <uhd/experts/expert_container.hpp>`

Inheritance diagram for uhd::experts::expert_container:
[legend]
Collaboration diagram for uhd::experts::expert_container:
[legend]

## Public Types

typedef std::shared_ptr< expert_container > | sptr

## 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_t & | node_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

typedef std::shared_ptr<expert_container> uhd::experts::expert_container::sptr

## Constructor & Destructor Documentation

## ~expert_container()

uhd::experts::expert_container::~expert_container | ( |  | ) |

inline override

## 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

  force | If true then ignore dirty state and resolve all nodes

Exceptions

  uhd::runtime_error | if 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_name | Name of the node to start resolving from

Exceptions

  uhd::lookup_error | if node_name not in container
  uhd::runtime_error | if 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_name | Name of the node to resolve

Exceptions

  uhd::lookup_error | if node_name not in container
  uhd::runtime_error | if 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 Symbol 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:

- expert_container.hpp