aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Arrskog <topfs2@xbmc.org>2011-05-04 20:36:08 +0200
committerTobias Arrskog <topfs2@xbmc.org>2011-05-17 20:05:39 +0200
commitbac309af6c932b3822c0265e786e734522dbefbd (patch)
tree015562f56bc758f6d060e04338de0d35cd434d5e
parentc32316c569c026fb09eb46d67d23e9c364e97e3c (diff)
Added operator== to CVariant
-rw-r--r--xbmc/utils/Variant.cpp35
-rw-r--r--xbmc/utils/Variant.h1
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);