aboutsummaryrefslogtreecommitdiffstats
path: root/tests/minimalbinding
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-08-24 21:58:56 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:18:27 -0300
commit7ae96ccd9b11f918b392accc7e5048c5c8905a0a (patch)
tree37a7a8b2a239bedbcce834ab871679c6725d1478 /tests/minimalbinding
parentb72430b834aee0d9bc4cdcd8442e336716d42db4 (diff)
New conversions for containers.
Diffstat (limited to 'tests/minimalbinding')
-rw-r--r--tests/minimalbinding/typesystem_minimal.xml21
1 files changed, 20 insertions, 1 deletions
diff --git a/tests/minimalbinding/typesystem_minimal.xml b/tests/minimalbinding/typesystem_minimal.xml
index d4f673d2d..cd26b34c2 100644
--- a/tests/minimalbinding/typesystem_minimal.xml
+++ b/tests/minimalbinding/typesystem_minimal.xml
@@ -18,8 +18,27 @@
</primitive-type>
<container-type name="std::list" type="list">
- <conversion-rule file="list_conversions.h"/>
<include file-name="list" location="global"/>
+ <conversion-rule file="list_conversions.h">
+ <native-to-target>
+ PyObject* %out = PyList_New((int) %in.size());
+ %INTYPE::const_iterator it = %in.begin();
+ for (int idx = 0; it != %in.end(); ++it, ++idx) {
+ %INTYPE_0 cppItem(*it);
+ PyList_SET_ITEM(%out, idx, %CONVERTTOPYTHON[%INTYPE_0](cppItem));
+ }
+ return %out;
+ </native-to-target>
+ <target-to-native>
+ <add-conversion type="PySequence">
+ for (int i = 0; i &lt; PySequence_Fast_GET_SIZE(%in); i++) {
+ PyObject* pyItem = PySequence_Fast_GET_ITEM(%in, i);
+ %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem);
+ %out.push_back(cppItem);
+ }
+ </add-conversion>
+ </target-to-native>
+ </conversion-rule>
</container-type>
<object-type name="Obj"/>