USRP Hardware Driver and USRP Manual Version: 4.8.0.0-0-unknown
UHD and USRP Manual
 
Loading...
Searching...
No Matches
device_addr.hpp
Go to the documentation of this file.
1//
2// Copyright 2010-2011 Ettus Research LLC
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>
11#include <uhd/types/dict.hpp>
12#include <boost/lexical_cast.hpp>
13#include <algorithm>
14#include <map>
15#include <stdexcept>
16#include <string>
17#include <vector>
18
19namespace uhd {
20
38class UHD_API device_addr_t : public dict<std::string, std::string>
39{
40public:
45 device_addr_t(const std::string& args = "");
46
51 device_addr_t(const char* args);
52
57 device_addr_t(const std::map<std::string, std::string>& info);
58
63 std::string to_pp_string(void) const;
64
70 std::string to_string(void) const;
71
80 template <typename T>
81 T cast(const std::string& key, const T& def) const
82 {
83 if (not this->has_key(key))
84 return def;
85 try {
86 return boost::lexical_cast<T>((*this)[key]);
87 } catch (const boost::bad_lexical_cast&) {
88 throw std::runtime_error("cannot cast " + key + " = " + (*this)[key]);
89 }
90 }
91};
92
94typedef std::vector<device_addr_t> device_addrs_t;
95
98
101
102} // namespace uhd
Definition device_addr.hpp:39
device_addr_t(const std::string &args="")
T cast(const std::string &key, const T &def) const
Definition device_addr.hpp:81
std::string to_string(void) const
device_addr_t(const std::map< std::string, std::string > &info)
std::string to_pp_string(void) const
device_addr_t(const char *args)
Definition dict.hpp:24
#define UHD_API
Definition config.h:87
Definition build_info.hpp:12
UHD_API device_addrs_t separate_device_addr(const device_addr_t &dev_addr)
Separate an indexed device address into a vector of device addresses.
UHD_API device_addr_t combine_device_addrs(const device_addrs_t &dev_addrs)
Combine a vector of device addresses into an indexed device address.
std::vector< device_addr_t > device_addrs_t
A typedef for a vector of device addresses.
Definition device_addr.hpp:94