[Telepathy-commits] [telepathy-qt4/master] Generate comparison operators for all structs.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Wed Feb 4 12:25:45 PST 2009


---
 tools/qt4-types-gen.py |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/tools/qt4-types-gen.py b/tools/qt4-types-gen.py
index e59bfa7..478d5ce 100644
--- a/tools/qt4-types-gen.py
+++ b/tools/qt4-types-gen.py
@@ -353,6 +353,38 @@ struct %(name)s
 
 """)
 
+            self.both('bool operator==(%s v1, %s v2)' %
+                      (depinfo.binding.inarg, depinfo.binding.inarg))
+            self.decl(';\n')
+            self.impl("""
+{""")
+            if (bindings[0].val != 'QDBusVariant'):
+                self.impl("""
+    return ((v1.%s == v2.%s)""" % (names[0], names[0]))
+            else:
+                self.impl("""
+    return ((v1.%s.variant() == v2.%s.variant())""" % (names[0], names[0]))
+            for i in xrange(1, members):
+                if (bindings[i].val != 'QDBusVariant'):
+                    self.impl("""
+            && (v1.%s == v2.%s)""" % (names[i], names[i]))
+                else:
+                    self.impl("""
+            && (v1.%s.variant() == v2.%s.variant())""" % (names[i], names[i]))
+            self.impl("""
+            );
+}
+
+""")
+
+            self.decl('inline bool operator!=(%s v1, %s v2)' %
+                      (depinfo.binding.inarg, depinfo.binding.inarg))
+            self.decl("""
+{
+    return !operator==(v1, v2);
+}
+""")
+
             self.both('QDBusArgument& operator<<(QDBusArgument& arg, %s val)' % depinfo.binding.inarg)
             self.decl(';\n')
             self.impl("""
-- 
1.5.6.5




More information about the telepathy-commits mailing list