summaryrefslogtreecommitdiffstats
path: root/tests/libsample/virtualmethods.h
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2009-11-22 13:33:54 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-11-23 11:48:03 -0300
commit8f76c2ace7d74c6382b398126f1dcd8cda617d29 (patch)
tree490ad3f97380d9ec4dff967747076a8cf2078d35 /tests/libsample/virtualmethods.h
parentc48f9163b42c20c91c33183a1835e0b356f104dc (diff)
downloadshiboken-8f76c2ace7d74c6382b398126f1dcd8cda617d29.tar.gz
shiboken-8f76c2ace7d74c6382b398126f1dcd8cda617d29.tar.xz
shiboken-8f76c2ace7d74c6382b398126f1dcd8cda617d29.zip
Added a great deal of tests to virtual method modification cases.
Diffstat (limited to 'tests/libsample/virtualmethods.h')
-rw-r--r--tests/libsample/virtualmethods.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/libsample/virtualmethods.h b/tests/libsample/virtualmethods.h
index 299cf5a8..8bd4b93f 100644
--- a/tests/libsample/virtualmethods.h
+++ b/tests/libsample/virtualmethods.h
@@ -37,6 +37,7 @@
#include "point.h"
#include "complex.h"
+#include "str.h"
class VirtualMethods
{
@@ -49,6 +50,38 @@ public:
{
return virtualMethod0(pt, val, cpx, b);
}
+
+ // Binding modification: rename.
+ virtual int sum0(int a0, int a1, int a2) { return a0 + a1 + a2; }
+ int callSum0(int a0, int a1, int a2) { return sum0(a0, a1, a2); }
+
+ // Binding modification: set default value for the last argument.
+ virtual int sum1(int a0, int a1, int a2) { return a0 + a1 + a2; }
+ int callSum1(int a0, int a1, int a2) { return sum1(a0, a1, a2); }
+
+ // Binding modification: remove the last argument and set a default value for it.
+ virtual int sum2(int a0, int a1, int a2) { return a0 + a1 + a2; }
+ int callSum2(int a0, int a1, int a2) { return sum2(a0, a1, a2); }
+
+ // Binding modification: remove the second argument.
+ virtual int sum3(int a0, int a1, int a2) { return a0 + a1 + a2; }
+ int callSum3(int a0, int a1, int a2) { return sum3(a0, a1, a2); }
+
+ // Binding modification: remove the second argument and set its default
+ // value, then inject code on the binding reimplementation of the virtual
+ // (with a native inject-code) to sum the value of the removed
+ // argument to the first argument before the method is called.
+ virtual int sum4(int a0, int a1, int a2) { return a0 + a1 + a2; }
+ int callSum4(int a0, int a1, int a2) { return sum4(a0, a1, a2); }
+
+ // Binding modification: prepend a string to the results of a Python override.
+ virtual Str name() { return Str("VirtualMethods"); }
+ Str callName() { return name(); }
+
+ // Binding modification: code injection that calls the Python override by itself.
+ virtual void callMe() {}
+ void callCallMe() { callMe(); }
+
};
#endif // VIRTUALMETHODS_H