diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-08-24 21:58:56 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:18:27 -0300 |
commit | 7ae96ccd9b11f918b392accc7e5048c5c8905a0a (patch) | |
tree | 37a7a8b2a239bedbcce834ab871679c6725d1478 /tests/minimalbinding | |
parent | b72430b834aee0d9bc4cdcd8442e336716d42db4 (diff) |
New conversions for containers.
Diffstat (limited to 'tests/minimalbinding')
-rw-r--r-- | tests/minimalbinding/typesystem_minimal.xml | 21 |
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 < 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"/> |