9#include <boost/format.hpp>
10#include <boost/units/detail/utility.hpp>
14template <
typename prop_data_t>
17 const std::string& node_id,
18 const std::string& prop_id)
21 if (prop_base_ptr ==
nullptr) {
23 str(boost::format(
"[%s] Unknown property: `%s'") % node_id % prop_id));
31 "[%s] Found property `%s', but could not cast to requested type `%s'!")
33 % boost::units::detail::demangle(
typeid(prop_data_t).name())));
42namespace uhd {
namespace rfnoc {
44template <
typename prop_data_t>
46 const std::string&
id,
const prop_data_t& val,
const size_t instance)
52template <
typename prop_data_t>
59template <
typename prop_data_t>
61 const std::string&
id,
const prop_data_t& val,
const res_source_info& src_info)
63 if (_graph_mutex_cb) {
65 std::lock_guard<std::recursive_mutex> l(_graph_mutex_cb());
66 _set_property(
id, val, src_info);
69 _set_property(
id, val, src_info);
73template <
typename prop_data_t>
82 _assert_prop<prop_data_t>(_find_property(src_info,
id),
get_unique_id(),
id);
85 return prop_ptr->get();
88template <
typename prop_data_t>
89void node_t::_set_property(
90 const std::string&
id,
const prop_data_t& val,
const res_source_info& src_info)
95 _assert_prop<prop_data_t>(_find_property(src_info,
id),
get_unique_id(),
id);
virtual std::string get_unique_id() const
Return a unique identifier string for this node. In every RFNoC graph,.
const prop_data_t & get_property(const std::string &id, const size_t instance=0)
Definition node.ipp:53
void set_property(const std::string &id, const prop_data_t &val, const size_t instance=0)
Definition node.ipp:45
Definition property.hpp:26
@ RO
Read-Only.
Definition property.hpp:30
@ RW
Read-Write.
Definition property.hpp:31
Definition property.hpp:151
#define RFNOC_LOG_TRACE(message)
Definition log.hpp:251
Definition build_info.hpp:12
Definition exception.hpp:59
Definition res_source_info.hpp:18
@ USER
The user API sources this resource.
Definition res_source_info.hpp:22
std::string to_string() const
Returns a string representation of the source.
Definition res_source_info.hpp:55
Definition exception.hpp:96