aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
diff options
context:
space:
mode:
authorBrent Stapleton <brent.stapleton@ettus.com>2018-03-29 18:54:37 -0700
committerMartin Braun <martin.braun@ettus.com>2018-04-02 13:38:45 -0700
commitbaad5d789fde546ed5e3fccd865e49ba15b98145 (patch)
tree21601cf839c87fe1f278c766042f21b05ccdc71b /host/include
parent3f0e7d405f128e9faeea03cb6f97f25423983e63 (diff)
downloaduhd-baad5d789fde546ed5e3fccd865e49ba15b98145.tar.gz
uhd-baad5d789fde546ed5e3fccd865e49ba15b98145.tar.bz2
uhd-baad5d789fde546ed5e3fccd865e49ba15b98145.zip
lib: adding == and != for uhd::dict
Diffstat (limited to 'host/include')
-rw-r--r--host/include/uhd/types/dict.hpp14
-rw-r--r--host/include/uhd/types/dict.ipp18
2 files changed, 32 insertions, 0 deletions
diff --git a/host/include/uhd/types/dict.hpp b/host/include/uhd/types/dict.hpp
index b8537a3c2..51594e17b 100644
--- a/host/include/uhd/types/dict.hpp
+++ b/host/include/uhd/types/dict.hpp
@@ -100,6 +100,20 @@ namespace uhd{
Val &operator[](const Key &key);
/*!
+ * Equals operator for the dict type
+ * \param other the dict being compared to this
+ * \return whether or not the two dict's are equal
+ */
+ bool operator==(const dict<Key, Val> &other) const;
+
+ /*!
+ * Not equal operator for the dict type
+ * \param other the dict being compared to this
+ * \return whether or not the two dict's are not equal
+ */
+ bool operator!=(const dict<Key, Val> &other) const;
+
+ /*!
* Pop an item out of the dictionary.
* \param key the item key
* \return the value of the item
diff --git a/host/include/uhd/types/dict.ipp b/host/include/uhd/types/dict.ipp
index 26de1f08e..9ff64ee2b 100644
--- a/host/include/uhd/types/dict.ipp
+++ b/host/include/uhd/types/dict.ipp
@@ -113,6 +113,24 @@ namespace uhd{
}
template <typename Key, typename Val>
+ bool dict<Key, Val>::operator==(const dict<Key, Val> &other) const{
+ if (this->size() != other.size()){
+ return false;
+ }
+ for(auto &p : _map){
+ if (not (other.has_key(p.first) and other.get(p.first) == p.second)){
+ return false;
+ }
+ }
+ return true;
+ }
+
+ template <typename Key, typename Val>
+ bool dict<Key, Val>::operator!=(const dict<Key, Val> &other) const{
+ return not (*this == other);
+ }
+
+ template <typename Key, typename Val>
Val dict<Key, Val>::pop(const Key &key){
typename std::list<pair_t>::iterator it;
for (it = _map.begin(); it != _map.end(); it++){