| Index: swig/Lib/python/pytypemaps.swg
|
| ===================================================================
|
| --- swig/Lib/python/pytypemaps.swg (revision 0)
|
| +++ swig/Lib/python/pytypemaps.swg (revision 0)
|
| @@ -0,0 +1,98 @@
|
| +/* ------------------------------------------------------------
|
| + * Typemap specializations for Python
|
| + * ------------------------------------------------------------ */
|
| +
|
| +/* ------------------------------------------------------------
|
| + * Fragment section
|
| + * ------------------------------------------------------------ */
|
| +/* bool is dangerous in Python, change precedence */
|
| +#undef SWIG_TYPECHECK_BOOL
|
| +%define SWIG_TYPECHECK_BOOL 10000 %enddef
|
| +
|
| +/* Include fundamental fragemt definitions */
|
| +%include <typemaps/fragments.swg>
|
| +
|
| +/* Look for user fragments file. */
|
| +%include <pyfragments.swg>
|
| +
|
| +/* Python fragments for fundamental types */
|
| +%include <pyprimtypes.swg>
|
| +
|
| +/* Python fragments for char* strings */
|
| +%include <pystrings.swg>
|
| +
|
| +/* Backward compatibility output helper */
|
| +%fragment("t_output_helper","header") %{
|
| +#define t_output_helper SWIG_Python_AppendOutput
|
| +%}
|
| +
|
| +
|
| +/* ------------------------------------------------------------
|
| + * Unified typemap section
|
| + * ------------------------------------------------------------ */
|
| +
|
| +/* directors are supported in Python */
|
| +#ifndef SWIG_DIRECTOR_TYPEMAPS
|
| +#define SWIG_DIRECTOR_TYPEMAPS
|
| +#endif
|
| +
|
| +
|
| +/* Python types */
|
| +#define SWIG_Object PyObject *
|
| +#define VOID_Object SWIG_Py_Void()
|
| +
|
| +/* Python allows implicit conversion */
|
| +#define %implicitconv_flag $implicitconv
|
| +
|
| +
|
| +/* Overload of the output/constant/exception/dirout handling */
|
| +
|
| +/* append output */
|
| +#define SWIG_AppendOutput(result, obj) SWIG_Python_AppendOutput(result, obj)
|
| +
|
| +/* set constant */
|
| +#define SWIG_SetConstant(name, obj) SWIG_Python_SetConstant(d, name,obj)
|
| +
|
| +/* raise */
|
| +#define SWIG_Raise(obj, type, desc) SWIG_Python_Raise(obj, type, desc)
|
| +
|
| +/* Include the unified typemap library */
|
| +%include <typemaps/swigtypemaps.swg>
|
| +
|
| +
|
| +/* ------------------------------------------------------------
|
| + * Python extra typemaps
|
| + * ------------------------------------------------------------ */
|
| +
|
| +/* Get the address of the 'python self' object */
|
| +
|
| +%typemap(in,numinputs=0,noblock=1) PyObject **PYTHON_SELF {
|
| + $1 = &$self;
|
| +}
|
| +
|
| +
|
| +/* Consttab, needed for callbacks, it should be removed later */
|
| +
|
| +%typemap(consttab) SWIGTYPE ((*)(ANY))
|
| +{ SWIG_PY_POINTER, (char*)"$symname", 0, 0, (void *)($value), &$descriptor }
|
| +
|
| +%typemap(constcode) SWIGTYPE ((*)(ANY)) "";
|
| +
|
| +
|
| +/* Smart Pointers */
|
| +%typemap(out,noblock=1) const SWIGTYPE & SMARTPOINTER {
|
| + $result = SWIG_NewPointerObj(%new_copy(*$1, $*ltype), $descriptor, SWIG_POINTER_OWN | %newpointer_flags);
|
| +}
|
| +
|
| +%typemap(ret,noblock=1) const SWIGTYPE & SMARTPOINTER, SWIGTYPE SMARTPOINTER {
|
| + if ($result) {
|
| + PyObject *robj = PyObject_CallMethod($result, (char *)"__deref__", NULL);
|
| + if (robj && !PyErr_Occurred()) {
|
| + SwigPyObject_append((PyObject *) SWIG_Python_GetSwigThis($result),
|
| + (PyObject *) SWIG_Python_GetSwigThis(robj));
|
| + Py_DECREF(robj);
|
| + }
|
| + }
|
| +}
|
| +
|
| +
|
|
|