diff options
-rw-r--r-- | host/include/uhd/types/device_addr.hpp | 7 | ||||
-rw-r--r-- | host/lib/types/device_addr.cpp | 6 | ||||
-rw-r--r-- | host/tests/addr_test.cpp | 9 |
3 files changed, 22 insertions, 0 deletions
diff --git a/host/include/uhd/types/device_addr.hpp b/host/include/uhd/types/device_addr.hpp index dd60df2e7..b9d3659c0 100644 --- a/host/include/uhd/types/device_addr.hpp +++ b/host/include/uhd/types/device_addr.hpp @@ -14,6 +14,7 @@ #include <stdexcept> #include <vector> #include <string> +#include <map> namespace uhd{ @@ -43,6 +44,12 @@ namespace uhd{ device_addr_t(const std::string &args = ""); /*! + * Create a device address from a std::map + * \param info the device info map + */ + device_addr_t(const std::map<std::string, std::string> &info); + + /*! * Convert a device address into a pretty print string. * \return a printable string representing the device address */ diff --git a/host/lib/types/device_addr.cpp b/host/lib/types/device_addr.cpp index 18376a8b8..65d265857 100644 --- a/host/lib/types/device_addr.cpp +++ b/host/lib/types/device_addr.cpp @@ -41,6 +41,12 @@ device_addr_t::device_addr_t(const std::string &args){ } } +device_addr_t::device_addr_t(const std::map<std::string, std::string> &info) { + for (auto& t : info) { + this->set(t.first, t.second); + } +} + std::string device_addr_t::to_pp_string(void) const{ if (this->size() == 0) return "Empty Device Address"; diff --git a/host/tests/addr_test.cpp b/host/tests/addr_test.cpp index 671715153..9819df1a5 100644 --- a/host/tests/addr_test.cpp +++ b/host/tests/addr_test.cpp @@ -75,3 +75,12 @@ BOOST_AUTO_TEST_CASE(test_dboard_id){ BOOST_CHECK_EQUAL(dboard_id_t::from_string("1234").to_uint16(), 1234); std::cout << "Pretty Print: " << std::endl << dboard_id_t::none().to_pp_string(); } + +BOOST_AUTO_TEST_CASE(test_map_device_addr){ + std::map<std::string, std::string> dev_addr_map; + dev_addr_map["key1"] = "val1"; + dev_addr_map["key2"] = "val2"; + uhd::device_addr_t dev_addr(dev_addr_map); + BOOST_CHECK_EQUAL(dev_addr["key1"], "val1"); + BOOST_CHECK_EQUAL(dev_addr["key2"], "val2"); +} |