USRP Hardware Driver and USRP Manual Version: 4.6.0.0
UHD and USRP Manual
 
Loading...
Searching...
No Matches
expert_container.hpp
Go to the documentation of this file.
1//
2// Copyright 2016 Ettus Research
3// Copyright 2018 Ettus Research, a National Instruments Company
4//
5// SPDX-License-Identifier: GPL-3.0-or-later
6//
7
8#pragma once
9
10#include <uhd/config.hpp>
13#include <memory>
14#include <mutex>
15
16namespace uhd { namespace experts {
17
24
26{
27public: // Methods
28 typedef std::shared_ptr<expert_container> sptr;
29
30 ~expert_container() override{};
31
35 virtual const std::string& get_name() const = 0;
36
51 virtual void resolve_all(bool force = false) = 0;
52
69 virtual void resolve_from(const std::string& node_name) = 0;
70
87 virtual void resolve_to(const std::string& node_name) = 0;
88
92 virtual const node_retriever_t& node_retriever() const = 0;
93
101 virtual std::string to_dot() const = 0;
102
110 virtual void debug_audit() const = 0;
111
112private:
124 const dag_vertex_t& lookup(const std::string& name) const override = 0;
125 dag_vertex_t& retrieve(const std::string& name) const override = 0;
126
138 friend class expert_factory;
139
146 static sptr make(const std::string& name);
147
156 virtual std::recursive_mutex& resolve_mutex() = 0;
157
168 virtual void add_data_node(
169 dag_vertex_t* data_node, auto_resolve_mode_t resolve_mode = AUTO_RESOLVE_OFF) = 0;
170
180 virtual void add_worker(worker_node_t* worker) = 0;
181
190 virtual void clear() = 0;
191};
192
193}} // namespace uhd::experts
Definition expert_nodes.hpp:39
Definition expert_container.hpp:26
virtual void debug_audit() const =0
virtual void resolve_from(const std::string &node_name)=0
virtual void resolve_all(bool force=false)=0
virtual const std::string & get_name() const =0
virtual std::string to_dot() const =0
virtual void resolve_to(const std::string &node_name)=0
virtual const node_retriever_t & node_retriever() const =0
std::shared_ptr< expert_container > sptr
Definition expert_container.hpp:28
~expert_container() override
Definition expert_container.hpp:30
Definition expert_factory.hpp:32
Definition expert_nodes.hpp:278
Definition expert_nodes.hpp:474
#define UHD_API
Definition config.h:87
auto_resolve_mode_t
Definition expert_container.hpp:18
@ AUTO_RESOLVE_ON_WRITE
Definition expert_container.hpp:21
@ AUTO_RESOLVE_ON_READ
Definition expert_container.hpp:20
@ AUTO_RESOLVE_OFF
Definition expert_container.hpp:19
@ AUTO_RESOLVE_ON_READ_WRITE
Definition expert_container.hpp:22
Definition build_info.hpp:12
boost::noncopyable noncopyable
Definition noncopyable.hpp:45