aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
diff options
context:
space:
mode:
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++){