From 2262316abdfcb0cbe7c4a99290d85e1da84811e8 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Fri, 2 Sep 2016 09:50:43 -0700 Subject: types: Cleaned up sid.hpp - Made reversed() const - Removed boost::uint* types - Removed superfluous includes --- host/include/uhd/types/sid.hpp | 72 +++++++++++----------- host/lib/types/sid.cpp | 32 +++++----- host/tests/sid_t_test.cpp | 131 +++++++++++++++++++++-------------------- 3 files changed, 120 insertions(+), 115 deletions(-) diff --git a/host/include/uhd/types/sid.hpp b/host/include/uhd/types/sid.hpp index 9ac68f7d0..f1471549e 100644 --- a/host/include/uhd/types/sid.hpp +++ b/host/include/uhd/types/sid.hpp @@ -1,5 +1,5 @@ // -// Copyright 2014 Ettus Research LLC +// Copyright 2014-2016 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -19,9 +19,8 @@ #define INCLUDED_UHD_TYPES_SID_HPP #include -#include -#include #include +#include namespace uhd { /*! @@ -82,9 +81,9 @@ namespace uhd { //! Create an unset SID sid_t(); //! Create a sid_t object from a 32-Bit SID value - sid_t(boost::uint32_t sid); + sid_t(uint32_t sid); //! Create a sid_t object from its four components - sid_t(boost::uint8_t src_addr, boost::uint8_t src_ep, boost::uint8_t dst_addr, boost::uint8_t dst_ep); + sid_t(uint8_t src_addr, uint8_t src_ep, uint8_t dst_addr, uint8_t dst_ep); //! Convert a string representation of a SID into its numerical representation sid_t(const std::string &); @@ -99,83 +98,83 @@ namespace uhd { // Getters // //! Alias for get_sid() - UHD_INLINE boost::uint32_t get() const { return get_sid(); }; + inline uint32_t get() const { return get_sid(); }; //! Returns a 32-Bit representation of the SID if set, or zero otherwise. - UHD_INLINE boost::uint32_t get_sid() const { return _set ? _sid : 0; }; + inline uint32_t get_sid() const { return _set ? _sid : 0; }; //! Return the 16-bit source address of this SID - UHD_INLINE boost::uint32_t get_src() const { + inline uint32_t get_src() const { return (_sid >> 16) & 0xFFFF; } //! Return the 16-bit destination address of this SID - UHD_INLINE boost::uint32_t get_dst() const { + inline uint32_t get_dst() const { return _sid & 0xFFFF; } //! Return 8-bit address of the source - UHD_INLINE boost::uint32_t get_src_addr() const { + inline uint32_t get_src_addr() const { return (get_src() >> 8) & 0xFF; } //! Return endpoint of the source - UHD_INLINE boost::uint32_t get_src_endpoint() const { + inline uint32_t get_src_endpoint() const { return get_src() & 0xFF; } //! Return crossbar port of the source - UHD_INLINE boost::uint32_t get_src_xbarport() const { + inline uint32_t get_src_xbarport() const { return (get_src_endpoint() >> 4) & 0xF; } //! Return block port of the source - UHD_INLINE boost::uint32_t get_src_blockport() const { + inline uint32_t get_src_blockport() const { return (get_src_endpoint()) & 0xF; } //! Return 8-bit address of the destination - UHD_INLINE boost::uint32_t get_dst_addr() const { + inline uint32_t get_dst_addr() const { return (get_dst() >> 8) & 0xFF; } //! Return endpoint of the destination - UHD_INLINE boost::uint32_t get_dst_endpoint() const { + inline uint32_t get_dst_endpoint() const { return get_dst() & 0xFF; } //! Return crossbar port of the source - UHD_INLINE boost::uint32_t get_dst_xbarport() const { + inline uint32_t get_dst_xbarport() const { return (get_dst_endpoint() >> 4) & 0xF; } //! Return block port of the source - UHD_INLINE boost::uint32_t get_dst_blockport() const { + inline uint32_t get_dst_blockport() const { return (get_dst_endpoint()) & 0xF; } // Setters //! Alias for set_sid() - void set(boost::uint32_t new_sid) { set_sid(new_sid); }; + void set(uint32_t new_sid) { set_sid(new_sid); }; //! Convert a string representation of a SID into a numerical one // Throws uhd::value_error if the string is not a valid SID // representation. void set_from_str(const std::string &); - void set_sid(boost::uint32_t new_sid); + void set_sid(uint32_t new_sid); //! Set the source address of this SID // (the first 16 Bits) - void set_src(boost::uint32_t new_addr); + void set_src(uint32_t new_addr); //! Set the destination address of this SID // (the last 16 Bits) - void set_dst(boost::uint32_t new_addr); - void set_src_addr(boost::uint32_t new_addr); - void set_src_endpoint(boost::uint32_t new_addr); - void set_dst_addr(boost::uint32_t new_addr); - void set_dst_endpoint(boost::uint32_t new_addr); - void set_dst_xbarport(boost::uint32_t new_xbarport); - void set_dst_blockport(boost::uint32_t new_blockport); + void set_dst(uint32_t new_addr); + void set_src_addr(uint32_t new_addr); + void set_src_endpoint(uint32_t new_addr); + void set_dst_addr(uint32_t new_addr); + void set_dst_endpoint(uint32_t new_addr); + void set_dst_xbarport(uint32_t new_xbarport); + void set_dst_blockport(uint32_t new_blockport); // Manipulators //! Swaps dst and src address and returns the new SID. - sid_t reversed(); + sid_t reversed() const; - //! Swaps dst and src in-place. + //! Swaps dst and src in-place. This modifies the current SID. void reverse(); // Overloaded operators - sid_t operator = (boost::uint32_t new_sid) { + sid_t operator = (const uint32_t new_sid) { set_sid(new_sid); return *this; } @@ -185,6 +184,11 @@ namespace uhd { return *this; } + sid_t operator = (const sid_t &sid) { + set_sid(sid.get_sid()); + return *this; + } + sid_t operator = (const std::string &sid_str) { set_from_str(sid_str); return *this; @@ -194,7 +198,7 @@ namespace uhd { return (not _set and not sid.is_set()) or (_sid == sid.get_sid()); } - bool operator == (boost::uint32_t sid) const { + bool operator == (uint32_t sid) const { return _set and _sid == sid; } @@ -208,7 +212,7 @@ namespace uhd { //! If the SID is not set, always returns zero. // Use is_set() to check if the return value is valid. - operator boost::uint32_t() const { + operator uint32_t() const { return get(); } @@ -217,12 +221,12 @@ namespace uhd { } private: - boost::uint32_t _sid; + uint32_t _sid; bool _set; }; //! Stream output operator. Honors std::ios::hex. - UHD_INLINE std::ostream& operator<< (std::ostream& out, const sid_t &sid) { + inline std::ostream& operator<< (std::ostream& out, const sid_t &sid) { std::ios_base::fmtflags ff = out.flags(); if (ff & std::ios::hex) { out << sid.to_pp_string_hex(); diff --git a/host/lib/types/sid.cpp b/host/lib/types/sid.cpp index 2fc3781cf..40f84a2aa 100644 --- a/host/lib/types/sid.cpp +++ b/host/lib/types/sid.cpp @@ -1,5 +1,5 @@ // -// Copyright 2014 Ettus Research LLC +// Copyright 2014-2016 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -15,12 +15,12 @@ // along with this program. If not, see . // +#include +#include +#include #include #include #include -#include -#include -#include using namespace uhd; @@ -29,12 +29,12 @@ sid_t::sid_t() { } -sid_t::sid_t(boost::uint32_t sid) +sid_t::sid_t(uint32_t sid) : _sid(sid), _set(true) { } -sid_t::sid_t(boost::uint8_t src_addr, boost::uint8_t src_ep, boost::uint8_t dst_addr, boost::uint8_t dst_ep) +sid_t::sid_t(uint8_t src_addr, uint8_t src_ep, uint8_t dst_addr, uint8_t dst_ep) : _sid(0x0000), _set(true) { set_src_addr(src_addr); @@ -76,7 +76,7 @@ std::string sid_t::to_pp_string_hex() const } -void sid_t::set_sid(boost::uint32_t new_sid) +void sid_t::set_sid(uint32_t new_sid) { _set = true; _sid = new_sid; @@ -107,41 +107,41 @@ void sid_t::set_from_str(const std::string &sid_str) throw uhd::value_error(str(boost::format("Invalid SID representation: %s") % sid_str)); } -void sid_t::set_src(boost::uint32_t new_addr) { +void sid_t::set_src(uint32_t new_addr) { set_sid((_sid & 0x0000FFFF) | ((new_addr & 0xFFFF) << 16)); } -void sid_t::set_dst(boost::uint32_t new_addr) { +void sid_t::set_dst(uint32_t new_addr) { set_sid((_sid & 0xFFFF0000) | (new_addr & 0xFFFF)); } -void sid_t::set_src_addr(boost::uint32_t new_addr) { +void sid_t::set_src_addr(uint32_t new_addr) { set_sid((_sid & 0x00FFFFFF) | ((new_addr & 0xFF) << 24)); } -void sid_t::set_src_endpoint(boost::uint32_t new_addr) { +void sid_t::set_src_endpoint(uint32_t new_addr) { set_sid((_sid & 0xFF00FFFF) | ((new_addr & 0xFF) << 16)); } -void sid_t::set_dst_addr(boost::uint32_t new_addr) { +void sid_t::set_dst_addr(uint32_t new_addr) { set_sid((_sid & 0xFFFF00FF) | ((new_addr & 0xFF) << 8)); } -void sid_t::set_dst_endpoint(boost::uint32_t new_addr) { +void sid_t::set_dst_endpoint(uint32_t new_addr) { set_sid((_sid & 0xFFFFFF00) | ((new_addr & 0xFF) << 0)); } -void sid_t::set_dst_xbarport(boost::uint32_t new_xbarport) +void sid_t::set_dst_xbarport(uint32_t new_xbarport) { set_sid((_sid & 0xFFFFFF0F) | ((new_xbarport & 0xF) << 4)); } -void sid_t::set_dst_blockport(boost::uint32_t new_blockport) +void sid_t::set_dst_blockport(uint32_t new_blockport) { set_sid((_sid & 0xFFFFFFF0) | ((new_blockport & 0xF) << 0)); } -sid_t sid_t::reversed() +sid_t sid_t::reversed() const { return sid_t((get_dst() << 16) | get_src()); } diff --git a/host/tests/sid_t_test.cpp b/host/tests/sid_t_test.cpp index 31eb4b458..e07e1c9bc 100644 --- a/host/tests/sid_t_test.cpp +++ b/host/tests/sid_t_test.cpp @@ -24,22 +24,22 @@ using uhd::sid_t; BOOST_AUTO_TEST_CASE(test_sid_t) { - boost::uint32_t sid_value = 0x01020310; + uint32_t sid_value = 0x01020310; sid_t sid(sid_value); BOOST_CHECK_EQUAL(sid.is_set(), true); BOOST_CHECK_EQUAL(sid.to_pp_string(), "1.2>3.16"); BOOST_CHECK_EQUAL(sid.to_pp_string_hex(), "01:02>03:10"); - BOOST_CHECK_EQUAL(sid.get_src(), (boost::uint32_t)0x0102); - BOOST_CHECK_EQUAL(sid.get_dst(), (boost::uint32_t)0x0310); - BOOST_CHECK_EQUAL(sid.get_src_addr(), (boost::uint32_t)0x01); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)0x02); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)0x03); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)0x10); + BOOST_CHECK_EQUAL(sid.get_src(), (uint32_t)0x0102); + BOOST_CHECK_EQUAL(sid.get_dst(), (uint32_t)0x0310); + BOOST_CHECK_EQUAL(sid.get_src_addr(), (uint32_t)0x01); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)0x02); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)0x03); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)0x10); BOOST_CHECK_EQUAL(sid == sid, true); BOOST_CHECK_EQUAL(sid == sid_value, true); - boost::uint32_t check_sid_val = (boost::uint32_t) sid; + uint32_t check_sid_val = (uint32_t) sid; BOOST_CHECK_EQUAL(check_sid_val, sid_value); std::stringstream ss_dec; @@ -64,92 +64,93 @@ BOOST_AUTO_TEST_CASE(test_sid_t) { } BOOST_AUTO_TEST_CASE(test_sid_t_set) { - boost::uint32_t sid_value = 0x0; + uint32_t sid_value = 0x0; sid_t sid(sid_value); sid.set(0x01020304); - BOOST_CHECK_EQUAL(sid.get(), (boost::uint32_t)0x01020304); - BOOST_CHECK_EQUAL(sid.get_src_addr(),(boost::uint32_t)0x01); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)0x02); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)0x03); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)0x04); - BOOST_CHECK_EQUAL(sid.get_dst_xbarport(), (boost::uint32_t)0x0); - BOOST_CHECK_EQUAL(sid.get_dst_blockport(), (boost::uint32_t)0x4); + BOOST_CHECK_EQUAL(sid.get(), (uint32_t)0x01020304); + BOOST_CHECK_EQUAL(sid.get_src_addr(),(uint32_t)0x01); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)0x02); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)0x03); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)0x04); + BOOST_CHECK_EQUAL(sid.get_dst_xbarport(), (uint32_t)0x0); + BOOST_CHECK_EQUAL(sid.get_dst_blockport(), (uint32_t)0x4); sid.set_src_addr(0x0a); - BOOST_CHECK_EQUAL(sid.get(), (boost::uint32_t)0x0a020304); - BOOST_CHECK_EQUAL(sid.get_src_addr(), (boost::uint32_t)0x0a); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)0x02); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)0x03); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)0x04); + BOOST_CHECK_EQUAL(sid.get(), (uint32_t)0x0a020304); + BOOST_CHECK_EQUAL(sid.get_src_addr(), (uint32_t)0x0a); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)0x02); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)0x03); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)0x04); sid.set_src_endpoint(0x0b); - BOOST_CHECK_EQUAL(sid.get(), (boost::uint32_t)0x0a0b0304); - BOOST_CHECK_EQUAL(sid.get_src_addr(), (boost::uint32_t)0x0a); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)0x0b); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)0x03); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)0x04); + BOOST_CHECK_EQUAL(sid.get(), (uint32_t)0x0a0b0304); + BOOST_CHECK_EQUAL(sid.get_src_addr(), (uint32_t)0x0a); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)0x0b); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)0x03); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)0x04); sid.set_dst_addr(0x0c); - BOOST_CHECK_EQUAL(sid.get(), (boost::uint32_t)0x0a0b0c04); - BOOST_CHECK_EQUAL(sid.get_src_addr(), (boost::uint32_t)0x0a); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)0x0b); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)0x0c); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)0x04); + BOOST_CHECK_EQUAL(sid.get(), (uint32_t)0x0a0b0c04); + BOOST_CHECK_EQUAL(sid.get_src_addr(), (uint32_t)0x0a); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)0x0b); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)0x0c); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)0x04); sid.set_dst_endpoint(0x0d); - BOOST_CHECK_EQUAL(sid.get(), (boost::uint32_t)0x0a0b0c0d); - BOOST_CHECK_EQUAL(sid.get_src_addr(), (boost::uint32_t)0x0a); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)0x0b); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)0x0c); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)0x0d); + BOOST_CHECK_EQUAL(sid.get(), (uint32_t)0x0a0b0c0d); + BOOST_CHECK_EQUAL(sid.get_src_addr(), (uint32_t)0x0a); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)0x0b); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)0x0c); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)0x0d); sid.set_dst_xbarport(0xb); - BOOST_CHECK_EQUAL(sid.get(), (boost::uint32_t)0x0a0b0cbd); - BOOST_CHECK_EQUAL(sid.get_src_addr(), (boost::uint32_t)0x0a); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)0x0b); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)0x0c); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)0xbd); + BOOST_CHECK_EQUAL(sid.get(), (uint32_t)0x0a0b0cbd); + BOOST_CHECK_EQUAL(sid.get_src_addr(), (uint32_t)0x0a); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)0x0b); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)0x0c); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)0xbd); sid.set_dst_blockport(0xc); - BOOST_CHECK_EQUAL(sid.get(), (boost::uint32_t)0x0a0b0cbc); - BOOST_CHECK_EQUAL(sid.get_src_addr(), (boost::uint32_t)0x0a); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)0x0b); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)0x0c); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)0xbc); + BOOST_CHECK_EQUAL(sid.get(), (uint32_t)0x0a0b0cbc); + BOOST_CHECK_EQUAL(sid.get_src_addr(), (uint32_t)0x0a); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)0x0b); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)0x0c); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)0xbc); - sid_t flipped_sid = sid.reversed(); - BOOST_CHECK_EQUAL(flipped_sid.get(), (boost::uint32_t)0x0cbc0a0b); + const sid_t flipped_sid = sid.reversed(); + BOOST_CHECK_EQUAL(flipped_sid.get(), (uint32_t)0x0cbc0a0b); + BOOST_CHECK_EQUAL(flipped_sid.reversed(), sid); // In-place sid.reverse(); - BOOST_CHECK_EQUAL(sid.get(), (boost::uint32_t)0x0cbc0a0b); + BOOST_CHECK_EQUAL(sid.get(), (uint32_t)0x0cbc0a0b); } BOOST_AUTO_TEST_CASE(test_sid_t_from_str) { sid_t sid("1.2>3.4"); - BOOST_CHECK_EQUAL(sid.get_src_addr(), (boost::uint32_t)1); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)2); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)3); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)4); + BOOST_CHECK_EQUAL(sid.get_src_addr(), (uint32_t)1); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)2); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)3); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)4); sid = "01:02>03:10"; - BOOST_CHECK_EQUAL(sid.get_src_addr(), (boost::uint32_t)1); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)2); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)3); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)16); + BOOST_CHECK_EQUAL(sid.get_src_addr(), (uint32_t)1); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)2); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)3); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)16); sid = "01:06/03:10"; - BOOST_CHECK_EQUAL(sid.get_src_addr(), (boost::uint32_t)1); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)6); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)3); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)16); + BOOST_CHECK_EQUAL(sid.get_src_addr(), (uint32_t)1); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)6); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)3); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)16); sid = "01:02:04:10"; - BOOST_CHECK_EQUAL(sid.get_src_addr(), (boost::uint32_t)1); - BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (boost::uint32_t)2); - BOOST_CHECK_EQUAL(sid.get_dst_addr(), (boost::uint32_t)4); - BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (boost::uint32_t)16); + BOOST_CHECK_EQUAL(sid.get_src_addr(), (uint32_t)1); + BOOST_CHECK_EQUAL(sid.get_src_endpoint(), (uint32_t)2); + BOOST_CHECK_EQUAL(sid.get_dst_addr(), (uint32_t)4); + BOOST_CHECK_EQUAL(sid.get_dst_endpoint(), (uint32_t)16); BOOST_REQUIRE_THROW(sid_t fail_sid("foobar"), uhd::value_error); BOOST_REQUIRE_THROW(sid_t fail_sid("01:02:03:4"), uhd::value_error); -- cgit v1.2.3