diff options
author | Tobias Arrskog <topfs2@xbmc.org> | 2011-05-04 20:36:08 +0200 |
---|---|---|
committer | Tobias Arrskog <topfs2@xbmc.org> | 2011-05-17 20:05:39 +0200 |
commit | bac309af6c932b3822c0265e786e734522dbefbd (patch) | |
tree | 015562f56bc758f6d060e04338de0d35cd434d5e | |
parent | c32316c569c026fb09eb46d67d23e9c364e97e3c (diff) |
Added operator== to CVariant
-rw-r--r-- | xbmc/utils/Variant.cpp | 35 | ||||
-rw-r--r-- | xbmc/utils/Variant.h | 1 |
2 files changed, 36 insertions, 0 deletions
diff --git a/xbmc/utils/Variant.cpp b/xbmc/utils/Variant.cpp index f55ada0cc0..a8f793fa8b 100644 --- a/xbmc/utils/Variant.cpp +++ b/xbmc/utils/Variant.cpp @@ -315,6 +315,41 @@ CVariant &CVariant::operator=(const CVariant &rhs) return *this; } +bool CVariant::operator==(const CVariant &rhs) const +{ + if (m_type == rhs.m_type) + { + switch (m_type) + { + case VariantTypeInteger: + return m_data.integer == rhs.m_data.integer; + break; + case VariantTypeUnsignedInteger: + return m_data.unsignedinteger == rhs.m_data.unsignedinteger; + break; + case VariantTypeBoolean: + return m_data.boolean == rhs.m_data.boolean; + break; + case VariantTypeFloat: + return m_data.fFloat == rhs.m_data.fFloat; + break; + case VariantTypeString: + return (*m_data.string) == (*rhs.m_data.string); + break; + case VariantTypeArray: + return (*m_data.array) == (*rhs.m_data.array); + break; + case VariantTypeObject: + return (*m_data.map) == (*rhs.m_data.map); + break; + default: + break; + } + } + + return false; +} + void CVariant::push_back(CVariant variant) { if (m_type == VariantTypeNull) diff --git a/xbmc/utils/Variant.h b/xbmc/utils/Variant.h index 2e5efc3283..72c2ea9d55 100644 --- a/xbmc/utils/Variant.h +++ b/xbmc/utils/Variant.h @@ -80,6 +80,7 @@ public: const CVariant &operator[](unsigned int position) const; CVariant &operator=(const CVariant &rhs); + bool operator==(const CVariant &rhs) const; void push_back(CVariant variant); void append(CVariant variant); |