1 /* ----------------------------------------------------------------------------
2 * This file was automatically generated by SWIG (http://www.swig.org).
5 * This file is not intended to be easily readable and contains a number of
6 * coding conventions designed to improve portability and efficiency. Do not make
7 * changes to this file unless you know what you are doing--modify the SWIG
8 * interface file instead.
9 * ----------------------------------------------------------------------------- */
14 template<class T
> class SwigValueWrapper
{
17 SwigValueWrapper() : tt(0) { }
18 SwigValueWrapper(const SwigValueWrapper
<T
>& rhs
) : tt(new T(*rhs
.tt
)) { }
19 SwigValueWrapper(const T
& t
) : tt(new T(t
)) { }
20 ~SwigValueWrapper() { delete tt
; }
21 SwigValueWrapper
& operator=(const T
& t
) { delete tt
; tt
= new T(t
); return *this; }
22 operator T
&() const { return *tt
; }
23 T
*operator&() { return tt
; }
25 SwigValueWrapper
& operator=(const SwigValueWrapper
<T
>& rhs
);
29 /***********************************************************************
31 * This section contains generic SWIG labels for method/variable
32 * declarations/attributes, and other compiler dependent labels.
34 ************************************************************************/
36 /* template workaround for compilers that cannot correctly implement the C++ standard */
37 #ifndef SWIGTEMPLATEDISAMBIGUATOR
38 # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
39 # define SWIGTEMPLATEDISAMBIGUATOR template
41 # define SWIGTEMPLATEDISAMBIGUATOR
45 /* inline attribute */
47 # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
48 # define SWIGINLINE inline
54 /* attribute recognised by some compilers to avoid 'unused' warnings */
56 # if defined(__GNUC__) || defined(__ICC)
57 # define SWIGUNUSED __attribute__ ((unused))
63 /* internal SWIG method */
65 # define SWIGINTERN static SWIGUNUSED
68 /* internal inline SWIG method */
69 #ifndef SWIGINTERNINLINE
70 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
73 /* exporting methods for Windows DLLs */
75 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
76 # if defined(STATIC_LINKED)
79 # define SWIGEXPORT __declspec(dllexport)
86 /* calling conventions for Windows */
88 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
89 # define SWIGSTDCALL __stdcall
99 /***********************************************************************
102 * This file contains generic CAPI SWIG runtime support for pointer
105 ************************************************************************/
107 /* This should only be incremented when either the layout of swig_type_info changes,
108 or for whatever reason, the runtime changes incompatibly */
109 #define SWIG_RUNTIME_VERSION "2"
111 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
112 #ifdef SWIG_TYPE_TABLE
113 # define SWIG_QUOTE_STRING(x) #x
114 # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
115 # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
117 # define SWIG_TYPE_TABLE_NAME
121 You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
122 creating a static or dynamic library from the swig runtime code.
123 In 99.9% of the cases, swig just needs to declare them as 'static'.
125 But only do this if is strictly necessary, ie, if you have problems
126 with your compiler or so.
130 # define SWIGRUNTIME SWIGINTERN
133 #ifndef SWIGRUNTIMEINLINE
134 # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
143 typedef void *(*swig_converter_func
)(void *);
144 typedef struct swig_type_info
*(*swig_dycast_func
)(void **);
146 /* Structure to store inforomation on one type */
147 typedef struct swig_type_info
{
148 const char *name
; /* mangled name of this type */
149 const char *str
; /* human readable name of this type */
150 swig_dycast_func dcast
; /* dynamic cast function down a hierarchy */
151 struct swig_cast_info
*cast
; /* linked list of types that can cast into this type */
152 void *clientdata
; /* language specific type data */
155 /* Structure to store a type and conversion function used for casting */
156 typedef struct swig_cast_info
{
157 swig_type_info
*type
; /* pointer to type that is equivalent to this type */
158 swig_converter_func converter
; /* function to cast the void pointers */
159 struct swig_cast_info
*next
; /* pointer to next cast in linked list */
160 struct swig_cast_info
*prev
; /* pointer to the previous cast */
163 /* Structure used to store module information
164 * Each module generates one structure like this, and the runtime collects
165 * all of these structures and stores them in a circularly linked list.*/
166 typedef struct swig_module_info
{
167 swig_type_info
**types
; /* Array of pointers to swig_type_info structures that are in this module */
168 size_t size
; /* Number of types in this module */
169 struct swig_module_info
*next
; /* Pointer to next element in circularly linked list */
170 swig_type_info
**type_initial
; /* Array of initially generated type structures */
171 swig_cast_info
**cast_initial
; /* Array of initially generated casting structures */
172 void *clientdata
; /* Language specific module data */
177 Compare two type names skipping the space characters, therefore
178 "char*" == "char *" and "Class<int>" == "Class<int >", etc.
180 Return 0 when the two name types are equivalent, as in
181 strncmp, but skipping ' '.
184 SWIG_TypeNameComp(const char *f1
, const char *l1
,
185 const char *f2
, const char *l2
) {
186 for (;(f1
!= l1
) && (f2
!= l2
); ++f1
, ++f2
) {
187 while ((*f1
== ' ') && (f1
!= l1
)) ++f1
;
188 while ((*f2
== ' ') && (f2
!= l2
)) ++f2
;
189 if (*f1
!= *f2
) return (int)(*f1
- *f2
);
191 return (l1
- f1
) - (l2
- f2
);
195 Check type equivalence in a name list like <name1>|<name2>|...
196 Return 0 if not equal, 1 if equal
199 SWIG_TypeEquiv(const char *nb
, const char *tb
) {
201 const char* te
= tb
+ strlen(tb
);
203 while (!equiv
&& *ne
) {
204 for (nb
= ne
; *ne
; ++ne
) {
205 if (*ne
== '|') break;
207 equiv
= (SWIG_TypeNameComp(nb
, ne
, tb
, te
) == 0) ? 1 : 0;
214 Check type equivalence in a name list like <name1>|<name2>|...
215 Return 0 if equal, -1 if nb < tb, 1 if nb > tb
218 SWIG_TypeCompare(const char *nb
, const char *tb
) {
220 const char* te
= tb
+ strlen(tb
);
222 while (!equiv
&& *ne
) {
223 for (nb
= ne
; *ne
; ++ne
) {
224 if (*ne
== '|') break;
226 equiv
= (SWIG_TypeNameComp(nb
, ne
, tb
, te
) == 0) ? 1 : 0;
233 /* think of this as a c++ template<> or a scheme macro */
234 #define SWIG_TypeCheck_Template(comparison, ty) \
236 swig_cast_info *iter = ty->cast; \
239 if (iter == ty->cast) return iter; \
240 /* Move iter to the top of the linked list */ \
241 iter->prev->next = iter->next; \
243 iter->next->prev = iter->prev; \
244 iter->next = ty->cast; \
246 if (ty->cast) ty->cast->prev = iter; \
258 SWIGRUNTIME swig_cast_info
*
259 SWIG_TypeCheck(const char *c
, swig_type_info
*ty
) {
260 SWIG_TypeCheck_Template(strcmp(iter
->type
->name
, c
) == 0, ty
);
263 /* Same as previous function, except strcmp is replaced with a pointer comparison */
264 SWIGRUNTIME swig_cast_info
*
265 SWIG_TypeCheckStruct(swig_type_info
*from
, swig_type_info
*into
) {
266 SWIG_TypeCheck_Template(iter
->type
== from
, into
);
270 Cast a pointer up an inheritance hierarchy
272 SWIGRUNTIMEINLINE
void *
273 SWIG_TypeCast(swig_cast_info
*ty
, void *ptr
) {
274 return ((!ty
) || (!ty
->converter
)) ? ptr
: (*ty
->converter
)(ptr
);
278 Dynamic pointer casting. Down an inheritance hierarchy
280 SWIGRUNTIME swig_type_info
*
281 SWIG_TypeDynamicCast(swig_type_info
*ty
, void **ptr
) {
282 swig_type_info
*lastty
= ty
;
283 if (!ty
|| !ty
->dcast
) return ty
;
284 while (ty
&& (ty
->dcast
)) {
285 ty
= (*ty
->dcast
)(ptr
);
292 Return the name associated with this type
294 SWIGRUNTIMEINLINE
const char *
295 SWIG_TypeName(const swig_type_info
*ty
) {
300 Return the pretty name associated with this type,
301 that is an unmangled type name in a form presentable to the user.
303 SWIGRUNTIME
const char *
304 SWIG_TypePrettyName(const swig_type_info
*type
) {
305 /* The "str" field contains the equivalent pretty names of the
306 type, separated by vertical-bar characters. We choose
307 to print the last name, as it is often (?) the most
309 if (type
->str
!= NULL
) {
310 const char *last_name
= type
->str
;
312 for (s
= type
->str
; *s
; s
++)
313 if (*s
== '|') last_name
= s
+1;
321 Set the clientdata field for a type
324 SWIG_TypeClientData(swig_type_info
*ti
, void *clientdata
) {
325 swig_cast_info
*cast
= ti
->cast
;
326 /* if (ti->clientdata == clientdata) return; */
327 ti
->clientdata
= clientdata
;
330 if (!cast
->converter
) {
331 swig_type_info
*tc
= cast
->type
;
332 if (!tc
->clientdata
) {
333 SWIG_TypeClientData(tc
, clientdata
);
341 Search for a swig_type_info structure only by mangled name
342 Search is a O(log #types)
344 We start searching at module start, and finish searching when start == end.
345 Note: if start == end at the beginning of the function, we go all the way around
348 SWIGRUNTIME swig_type_info
*
349 SWIG_MangledTypeQueryModule(swig_module_info
*start
,
350 swig_module_info
*end
,
352 swig_module_info
*iter
= start
;
355 register size_t l
= 0;
356 register size_t r
= iter
->size
- 1;
358 /* since l+r >= 0, we can (>> 1) instead (/ 2) */
359 register size_t i
= (l
+ r
) >> 1;
360 const char *iname
= iter
->types
[i
]->name
;
362 register int compare
= strcmp(name
, iname
);
364 return iter
->types
[i
];
365 } else if (compare
< 0) {
371 } else if (compare
> 0) {
375 break; /* should never happen */
380 } while (iter
!= end
);
385 Search for a swig_type_info structure for either a mangled name or a human readable name.
386 It first searches the mangled names of the types, which is a O(log #types)
387 If a type is not found it then searches the human readable names, which is O(#types).
389 We start searching at module start, and finish searching when start == end.
390 Note: if start == end at the beginning of the function, we go all the way around
393 SWIGRUNTIME swig_type_info
*
394 SWIG_TypeQueryModule(swig_module_info
*start
,
395 swig_module_info
*end
,
397 /* STEP 1: Search the name field using binary search */
398 swig_type_info
*ret
= SWIG_MangledTypeQueryModule(start
, end
, name
);
402 /* STEP 2: If the type hasn't been found, do a complete search
403 of the str field (the human readable name) */
404 swig_module_info
*iter
= start
;
406 register size_t i
= 0;
407 for (; i
< iter
->size
; ++i
) {
408 if (iter
->types
[i
]->str
&& (SWIG_TypeEquiv(iter
->types
[i
]->str
, name
)))
409 return iter
->types
[i
];
412 } while (iter
!= end
);
415 /* neither found a match */
421 Pack binary data into a string
424 SWIG_PackData(char *c
, void *ptr
, size_t sz
) {
425 static const char hex
[17] = "0123456789abcdef";
426 register const unsigned char *u
= (unsigned char *) ptr
;
427 register const unsigned char *eu
= u
+ sz
;
428 for (; u
!= eu
; ++u
) {
429 register unsigned char uu
= *u
;
430 *(c
++) = hex
[(uu
& 0xf0) >> 4];
431 *(c
++) = hex
[uu
& 0xf];
437 Unpack binary data from a string
439 SWIGRUNTIME
const char *
440 SWIG_UnpackData(const char *c
, void *ptr
, size_t sz
) {
441 register unsigned char *u
= (unsigned char *) ptr
;
442 register const unsigned char *eu
= u
+ sz
;
443 for (; u
!= eu
; ++u
) {
444 register char d
= *(c
++);
445 register unsigned char uu
= 0;
446 if ((d
>= '0') && (d
<= '9'))
447 uu
= ((d
- '0') << 4);
448 else if ((d
>= 'a') && (d
<= 'f'))
449 uu
= ((d
- ('a'-10)) << 4);
453 if ((d
>= '0') && (d
<= '9'))
455 else if ((d
>= 'a') && (d
<= 'f'))
456 uu
|= (d
- ('a'-10));
465 Pack 'void *' into a string buffer.
468 SWIG_PackVoidPtr(char *buff
, void *ptr
, const char *name
, size_t bsz
) {
470 if ((2*sizeof(void *) + 2) > bsz
) return 0;
472 r
= SWIG_PackData(r
,&ptr
,sizeof(void *));
473 if (strlen(name
) + 1 > (bsz
- (r
- buff
))) return 0;
478 SWIGRUNTIME
const char *
479 SWIG_UnpackVoidPtr(const char *c
, void **ptr
, const char *name
) {
481 if (strcmp(c
,"NULL") == 0) {
488 return SWIG_UnpackData(++c
,ptr
,sizeof(void *));
492 SWIG_PackDataName(char *buff
, void *ptr
, size_t sz
, const char *name
, size_t bsz
) {
494 size_t lname
= (name
? strlen(name
) : 0);
495 if ((2*sz
+ 2 + lname
) > bsz
) return 0;
497 r
= SWIG_PackData(r
,ptr
,sz
);
499 strncpy(r
,name
,lname
+1);
506 SWIGRUNTIME
const char *
507 SWIG_UnpackDataName(const char *c
, void *ptr
, size_t sz
, const char *name
) {
509 if (strcmp(c
,"NULL") == 0) {
516 return SWIG_UnpackData(++c
,ptr
,sz
);
523 /* -----------------------------------------------------------------------------
524 * SWIG API. Portion that goes into the runtime
525 * ----------------------------------------------------------------------------- */
531 /* -----------------------------------------------------------------------------
532 * for internal method declarations
533 * ----------------------------------------------------------------------------- */
536 # define SWIGINTERN static SWIGUNUSED
539 #ifndef SWIGINTERNINLINE
540 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
544 Exception handling in wrappers
546 #define SWIG_fail goto fail
547 #define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg)
548 #define SWIG_append_errmsg(msg) SWIG_Python_AddErrMesg(msg,0)
549 #define SWIG_preppend_errmsg(msg) SWIG_Python_AddErrMesg(msg,1)
550 #define SWIG_type_error(type,obj) SWIG_Python_TypeError(type,obj)
551 #define SWIG_null_ref(type) SWIG_Python_NullRef(type)
556 #define SWIG_contract_assert(expr, msg) \
557 if (!(expr)) { PyErr_SetString(PyExc_RuntimeError, (char *) msg ); goto fail; } else
559 /* -----------------------------------------------------------------------------
560 * Constant declarations
561 * ----------------------------------------------------------------------------- */
564 #define SWIG_PY_INT 1
565 #define SWIG_PY_FLOAT 2
566 #define SWIG_PY_STRING 3
567 #define SWIG_PY_POINTER 4
568 #define SWIG_PY_BINARY 5
570 /* Constant information structure */
571 typedef struct swig_const_info
{
577 swig_type_info
**ptype
;
581 /* -----------------------------------------------------------------------------
582 * Alloc. memory flags
583 * ----------------------------------------------------------------------------- */
584 #define SWIG_OLDOBJ 1
585 #define SWIG_NEWOBJ SWIG_OLDOBJ + 1
586 #define SWIG_PYSTR SWIG_NEWOBJ + 1
593 /***********************************************************************
596 * This file contains the runtime support for Python modules
597 * and includes code for managing global variables and pointer
600 * Author : David Beazley (beazley@cs.uchicago.edu)
601 ************************************************************************/
603 /* Common SWIG API */
604 #define SWIG_ConvertPtr(obj, pp, type, flags) SWIG_Python_ConvertPtr(obj, pp, type, flags)
605 #define SWIG_NewPointerObj(p, type, flags) SWIG_Python_NewPointerObj(p, type, flags)
606 #define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags)
609 /* Python-specific SWIG API */
610 #define SWIG_ConvertPacked(obj, ptr, sz, ty, flags) SWIG_Python_ConvertPacked(obj, ptr, sz, ty, flags)
611 #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type)
614 #define SWIG_GetModule(clientdata) SWIG_Python_GetModule()
615 #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer)
617 /* -----------------------------------------------------------------------------
618 * Pointer declarations
619 * ----------------------------------------------------------------------------- */
621 Use SWIG_NO_COBJECT_TYPES to force the use of strings to represent
622 C/C++ pointers in the python side. Very useful for debugging, but
625 #if !defined(SWIG_NO_COBJECT_TYPES) && !defined(SWIG_COBJECT_TYPES)
626 # define SWIG_COBJECT_TYPES
629 /* Flags for pointer conversion */
630 #define SWIG_POINTER_EXCEPTION 0x1
631 #define SWIG_POINTER_DISOWN 0x2
634 /* Add PyOS_snprintf for old Pythons */
635 #if PY_VERSION_HEX < 0x02020000
636 #define PyOS_snprintf snprintf
643 /* -----------------------------------------------------------------------------
644 * Create a new pointer string
645 * ----------------------------------------------------------------------------- */
646 #ifndef SWIG_BUFFER_SIZE
647 #define SWIG_BUFFER_SIZE 1024
650 /* A crude PyString_FromFormat implementation for old Pythons */
651 #if PY_VERSION_HEX < 0x02020000
653 PyString_FromFormat(const char *fmt
, ...) {
655 char buf
[SWIG_BUFFER_SIZE
* 2];
658 res
= vsnprintf(buf
, sizeof(buf
), fmt
, ap
);
660 return (res
< 0 || res
>= sizeof(buf
)) ? 0 : PyString_FromString(buf
);
664 #if PY_VERSION_HEX < 0x01060000
665 #define PyObject_Del(op) PyMem_DEL((op))
668 #if defined(SWIG_COBJECT_TYPES)
669 #if !defined(SWIG_COBJECT_PYTHON)
670 /* -----------------------------------------------------------------------------
671 * Implements a simple Swig Object type, and use it instead of PyCObject
672 * ----------------------------------------------------------------------------- */
680 /* Declarations for objects of type PySwigObject */
683 PySwigObject_print(PySwigObject
*v
, FILE *fp
, int flags
)
685 char result
[SWIG_BUFFER_SIZE
];
687 if (SWIG_PackVoidPtr(result
, v
->ptr
, v
->desc
, sizeof(result
))) {
688 fputs("<Swig Object at ", fp
); fputs(result
, fp
); fputs(">", fp
);
695 SWIGRUNTIME PyObject
*
696 PySwigObject_repr(PySwigObject
*v
)
698 char result
[SWIG_BUFFER_SIZE
];
699 return SWIG_PackVoidPtr(result
, v
->ptr
, v
->desc
, sizeof(result
)) ?
700 PyString_FromFormat("<Swig Object at %s>", result
) : 0;
703 SWIGRUNTIME PyObject
*
704 PySwigObject_str(PySwigObject
*v
)
706 char result
[SWIG_BUFFER_SIZE
];
707 return SWIG_PackVoidPtr(result
, v
->ptr
, v
->desc
, sizeof(result
)) ?
708 PyString_FromString(result
) : 0;
711 SWIGRUNTIME PyObject
*
712 PySwigObject_long(PySwigObject
*v
)
714 return PyLong_FromVoidPtr(v
->ptr
);
717 SWIGRUNTIME PyObject
*
718 PySwigObject_format(const char* fmt
, PySwigObject
*v
)
720 PyObject
*res
= NULL
;
721 PyObject
*args
= PyTuple_New(1);
722 if (args
&& (PyTuple_SetItem(args
, 0, PySwigObject_long(v
)) == 0)) {
723 PyObject
*ofmt
= PyString_FromString(fmt
);
725 res
= PyString_Format(ofmt
,args
);
733 SWIGRUNTIME PyObject
*
734 PySwigObject_oct(PySwigObject
*v
)
736 return PySwigObject_format("%o",v
);
739 SWIGRUNTIME PyObject
*
740 PySwigObject_hex(PySwigObject
*v
)
742 return PySwigObject_format("%x",v
);
746 PySwigObject_compare(PySwigObject
*v
, PySwigObject
*w
)
748 int c
= strcmp(v
->desc
, w
->desc
);
750 return (c
> 0) ? 1 : -1;
754 return (i
< j
) ? -1 : ((i
> j
) ? 1 : 0);
759 PySwigObject_dealloc(PySwigObject
*self
)
764 SWIGRUNTIME PyTypeObject
*
765 PySwigObject_type(void) {
766 static char pyswigobject_type__doc__
[] =
767 "Swig object carries a C/C++ instance pointer";
769 static PyNumberMethods PySwigObject_as_number
= {
770 (binaryfunc
)0, /*nb_add*/
771 (binaryfunc
)0, /*nb_subtract*/
772 (binaryfunc
)0, /*nb_multiply*/
773 (binaryfunc
)0, /*nb_divide*/
774 (binaryfunc
)0, /*nb_remainder*/
775 (binaryfunc
)0, /*nb_divmod*/
776 (ternaryfunc
)0,/*nb_power*/
777 (unaryfunc
)0, /*nb_negative*/
778 (unaryfunc
)0, /*nb_positive*/
779 (unaryfunc
)0, /*nb_absolute*/
780 (inquiry
)0, /*nb_nonzero*/
787 (coercion
)0, /*nb_coerce*/
788 (unaryfunc
)PySwigObject_long
, /*nb_int*/
789 (unaryfunc
)PySwigObject_long
, /*nb_long*/
790 (unaryfunc
)0, /*nb_float*/
791 (unaryfunc
)PySwigObject_oct
, /*nb_oct*/
792 (unaryfunc
)PySwigObject_hex
, /*nb_hex*/
793 #if PY_VERSION_HEX >= 0x02020000
794 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
795 #elif PY_VERSION_HEX >= 0x02000000
796 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
800 static PyTypeObject pyswigobject_type
801 #if !defined(__cplusplus)
803 static int type_init
= 0;
808 PyObject_HEAD_INIT(&PyType_Type
)
810 (char *)"PySwigObject", /*tp_name*/
811 sizeof(PySwigObject
), /*tp_basicsize*/
814 (destructor
)PySwigObject_dealloc
, /*tp_dealloc*/
815 (printfunc
)PySwigObject_print
, /*tp_print*/
816 (getattrfunc
)0, /*tp_getattr*/
817 (setattrfunc
)0, /*tp_setattr*/
818 (cmpfunc
)PySwigObject_compare
, /*tp_compare*/
819 (reprfunc
)PySwigObject_repr
, /*tp_repr*/
820 &PySwigObject_as_number
, /*tp_as_number*/
821 0, /*tp_as_sequence*/
823 (hashfunc
)0, /*tp_hash*/
824 (ternaryfunc
)0, /*tp_call*/
825 (reprfunc
)PySwigObject_str
, /*tp_str*/
826 /* Space for future expansion */
828 pyswigobject_type__doc__
, /* Documentation string */
829 #if PY_VERSION_HEX >= 0x02000000
833 #if PY_VERSION_HEX >= 0x02010000
834 0, /* tp_richcompare */
835 0, /* tp_weaklistoffset */
837 #if PY_VERSION_HEX >= 0x02020000
838 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
840 #if PY_VERSION_HEX >= 0x02030000
844 0,0,0,0 /* tp_alloc -> tp_next */
847 #if !defined(__cplusplus)
848 pyswigobject_type
= tmp
;
852 return &pyswigobject_type
;
855 SWIGRUNTIME PyObject
*
856 PySwigObject_FromVoidPtrAndDesc(void *ptr
, const char *desc
)
858 PySwigObject
*self
= PyObject_NEW(PySwigObject
, PySwigObject_type());
863 return (PyObject
*)self
;
866 SWIGRUNTIMEINLINE
void *
867 PySwigObject_AsVoidPtr(PyObject
*self
)
869 return ((PySwigObject
*)self
)->ptr
;
872 SWIGRUNTIMEINLINE
const char *
873 PySwigObject_GetDesc(PyObject
*self
)
875 return ((PySwigObject
*)self
)->desc
;
878 SWIGRUNTIMEINLINE
int
879 PySwigObject_Check(PyObject
*op
) {
880 return ((op
)->ob_type
== PySwigObject_type())
881 || (strcmp((op
)->ob_type
->tp_name
,"PySwigObject") == 0);
884 /* -----------------------------------------------------------------------------
885 * Implements a simple Swig Packed type, and use it instead of string
886 * ----------------------------------------------------------------------------- */
896 PySwigPacked_print(PySwigPacked
*v
, FILE *fp
, int flags
)
898 char result
[SWIG_BUFFER_SIZE
];
900 fputs("<Swig Packed ", fp
);
901 if (SWIG_PackDataName(result
, v
->pack
, v
->size
, 0, sizeof(result
))) {
910 SWIGRUNTIME PyObject
*
911 PySwigPacked_repr(PySwigPacked
*v
)
913 char result
[SWIG_BUFFER_SIZE
];
914 if (SWIG_PackDataName(result
, v
->pack
, v
->size
, 0, sizeof(result
))) {
915 return PyString_FromFormat("<Swig Packed at %s%s>", result
, v
->desc
);
917 return PyString_FromFormat("<Swig Packed %s>", v
->desc
);
921 SWIGRUNTIME PyObject
*
922 PySwigPacked_str(PySwigPacked
*v
)
924 char result
[SWIG_BUFFER_SIZE
];
925 if (SWIG_PackDataName(result
, v
->pack
, v
->size
, 0, sizeof(result
))){
926 return PyString_FromFormat("%s%s", result
, v
->desc
);
928 return PyString_FromString(v
->desc
);
933 PySwigPacked_compare(PySwigPacked
*v
, PySwigPacked
*w
)
935 int c
= strcmp(v
->desc
, w
->desc
);
937 return (c
> 0) ? 1 : -1;
941 int s
= (i
< j
) ? -1 : ((i
> j
) ? 1 : 0);
942 return s
? s
: strncmp((char *)v
->pack
, (char *)w
->pack
, 2*v
->size
);
947 PySwigPacked_dealloc(PySwigPacked
*self
)
953 SWIGRUNTIME PyTypeObject
*
954 PySwigPacked_type(void) {
955 static char pyswigpacked_type__doc__
[] =
956 "Swig object carries a C/C++ instance pointer";
957 static PyTypeObject pyswigpacked_type
958 #if !defined(__cplusplus)
960 static int type_init
= 0;
965 PyObject_HEAD_INIT(&PyType_Type
)
967 (char *)"PySwigPacked", /*tp_name*/
968 sizeof(PySwigPacked
), /*tp_basicsize*/
971 (destructor
)PySwigPacked_dealloc
, /*tp_dealloc*/
972 (printfunc
)PySwigPacked_print
, /*tp_print*/
973 (getattrfunc
)0, /*tp_getattr*/
974 (setattrfunc
)0, /*tp_setattr*/
975 (cmpfunc
)PySwigPacked_compare
, /*tp_compare*/
976 (reprfunc
)PySwigPacked_repr
, /*tp_repr*/
978 0, /*tp_as_sequence*/
980 (hashfunc
)0, /*tp_hash*/
981 (ternaryfunc
)0, /*tp_call*/
982 (reprfunc
)PySwigPacked_str
, /*tp_str*/
983 /* Space for future expansion */
985 pyswigpacked_type__doc__
, /* Documentation string */
986 #if PY_VERSION_HEX >= 0x02000000
990 #if PY_VERSION_HEX >= 0x02010000
991 0, /* tp_richcompare */
992 0, /* tp_weaklistoffset */
994 #if PY_VERSION_HEX >= 0x02020000
995 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
997 #if PY_VERSION_HEX >= 0x02030000
1001 0,0,0,0 /* tp_alloc -> tp_next */
1004 #if !defined(__cplusplus)
1005 pyswigpacked_type
= tmp
;
1009 return &pyswigpacked_type
;
1012 SWIGRUNTIME PyObject
*
1013 PySwigPacked_FromDataAndDesc(void *ptr
, size_t size
, const char *desc
)
1015 PySwigPacked
*self
= PyObject_NEW(PySwigPacked
, PySwigPacked_type());
1019 void *pack
= malloc(size
);
1021 memcpy(pack
, ptr
, size
);
1025 return (PyObject
*) self
;
1031 SWIGRUNTIMEINLINE
const char *
1032 PySwigPacked_UnpackData(PyObject
*obj
, void *ptr
, size_t size
)
1034 PySwigPacked
*self
= (PySwigPacked
*)obj
;
1035 if (self
->size
!= size
) return 0;
1036 memcpy(ptr
, self
->pack
, size
);
1040 SWIGRUNTIMEINLINE
const char *
1041 PySwigPacked_GetDesc(PyObject
*self
)
1043 return ((PySwigPacked
*)self
)->desc
;
1046 SWIGRUNTIMEINLINE
int
1047 PySwigPacked_Check(PyObject
*op
) {
1048 return ((op
)->ob_type
== PySwigPacked_type())
1049 || (strcmp((op
)->ob_type
->tp_name
,"PySwigPacked") == 0);
1053 /* -----------------------------------------------------------------------------
1054 * Use the old Python PyCObject instead of PySwigObject
1055 * ----------------------------------------------------------------------------- */
1057 #define PySwigObject_GetDesc(obj) PyCObject_GetDesc(obj)
1058 #define PySwigObject_Check(obj) PyCObject_Check(obj)
1059 #define PySwigObject_AsVoidPtr(obj) PyCObject_AsVoidPtr(obj)
1060 #define PySwigObject_FromVoidPtrAndDesc(p, d) PyCObject_FromVoidPtrAndDesc(p, d, NULL)
1066 /* -----------------------------------------------------------------------------
1067 * errors manipulation
1068 * ----------------------------------------------------------------------------- */
1071 SWIG_Python_TypeError(const char *type
, PyObject
*obj
)
1074 #if defined(SWIG_COBJECT_TYPES)
1075 if (obj
&& PySwigObject_Check(obj
)) {
1076 const char *otype
= (const char *) PySwigObject_GetDesc(obj
);
1078 PyErr_Format(PyExc_TypeError
, "a '%s' is expected, 'PySwigObject(%s)' is received",
1085 const char *otype
= (obj
? obj
->ob_type
->tp_name
: 0);
1087 PyObject
*str
= PyObject_Str(obj
);
1088 const char *cstr
= str
? PyString_AsString(str
) : 0;
1090 PyErr_Format(PyExc_TypeError
, "a '%s' is expected, '%s(%s)' is received",
1093 PyErr_Format(PyExc_TypeError
, "a '%s' is expected, '%s' is received",
1100 PyErr_Format(PyExc_TypeError
, "a '%s' is expected", type
);
1102 PyErr_Format(PyExc_TypeError
, "unexpected type is received");
1106 SWIGRUNTIMEINLINE
void
1107 SWIG_Python_NullRef(const char *type
)
1110 PyErr_Format(PyExc_TypeError
, "null reference of type '%s' was received",type
);
1112 PyErr_Format(PyExc_TypeError
, "null reference was received");
1117 SWIG_Python_AddErrMesg(const char* mesg
, int infront
)
1119 if (PyErr_Occurred()) {
1121 PyObject
*value
= 0;
1122 PyObject
*traceback
= 0;
1123 PyErr_Fetch(&type
, &value
, &traceback
);
1125 PyObject
*old_str
= PyObject_Str(value
);
1129 PyErr_Format(type
, "%s %s", mesg
, PyString_AsString(old_str
));
1131 PyErr_Format(type
, "%s %s", PyString_AsString(old_str
), mesg
);
1142 SWIG_Python_ArgFail(int argnum
)
1144 if (PyErr_Occurred()) {
1145 /* add information about failing argument */
1147 PyOS_snprintf(mesg
, sizeof(mesg
), "argument number %d:", argnum
);
1148 return SWIG_Python_AddErrMesg(mesg
, 1);
1155 /* -----------------------------------------------------------------------------
1156 * pointers/data manipulation
1157 * ----------------------------------------------------------------------------- */
1159 /* Convert a pointer value */
1161 SWIG_Python_ConvertPtr(PyObject
*obj
, void **ptr
, swig_type_info
*ty
, int flags
) {
1164 static PyObject
*SWIG_this
= 0;
1166 PyObject
*pyobj
= 0;
1170 if (obj
== Py_None
) {
1175 #ifdef SWIG_COBJECT_TYPES
1176 if (!(PySwigObject_Check(obj
))) {
1178 SWIG_this
= PyString_FromString("this");
1180 obj
= PyObject_GetAttr(obj
,SWIG_this
);
1182 if (!obj
) goto type_error
;
1183 if (!PySwigObject_Check(obj
)) {
1188 vptr
= PySwigObject_AsVoidPtr(obj
);
1189 c
= (const char *) PySwigObject_GetDesc(obj
);
1190 if (newref
) { Py_DECREF(obj
); }
1193 if (!(PyString_Check(obj
))) {
1195 SWIG_this
= PyString_FromString("this");
1197 obj
= PyObject_GetAttr(obj
,SWIG_this
);
1199 if (!obj
) goto type_error
;
1200 if (!PyString_Check(obj
)) {
1205 c
= PyString_AsString(obj
);
1206 /* Pointer values must start with leading underscore */
1207 c
= SWIG_UnpackVoidPtr(c
, &vptr
, ty
->name
);
1208 if (newref
) { Py_DECREF(obj
); }
1209 if (!c
) goto type_error
;
1214 tc
= SWIG_TypeCheck(c
,ty
);
1215 if (!tc
) goto type_error
;
1216 *ptr
= SWIG_TypeCast(tc
,vptr
);
1220 if ((pyobj
) && (flags
& SWIG_POINTER_DISOWN
)) {
1221 PyObject_SetAttrString(pyobj
,(char*)"thisown",Py_False
);
1227 if (pyobj
&& !obj
) {
1229 if (PyCFunction_Check(obj
)) {
1230 /* here we get the method pointer for callbacks */
1231 char *doc
= (((PyCFunctionObject
*)obj
) -> m_ml
-> ml_doc
);
1232 c
= doc
? strstr(doc
, "swig_ptr: ") : 0;
1234 c
= ty
? SWIG_UnpackVoidPtr(c
+ 10, &vptr
, ty
->name
) : 0;
1235 if (!c
) goto type_error
;
1240 if (flags
& SWIG_POINTER_EXCEPTION
) {
1242 SWIG_Python_TypeError(SWIG_TypePrettyName(ty
), obj
);
1244 SWIG_Python_TypeError("C/C++ pointer", obj
);
1250 /* Convert a pointer value, signal an exception on a type mismatch */
1252 SWIG_Python_MustGetPtr(PyObject
*obj
, swig_type_info
*ty
, int argnum
, int flags
) {
1254 if (SWIG_Python_ConvertPtr(obj
, &result
, ty
, flags
) == -1) {
1256 if (flags
& SWIG_POINTER_EXCEPTION
) {
1257 SWIG_Python_TypeError(SWIG_TypePrettyName(ty
), obj
);
1258 SWIG_Python_ArgFail(argnum
);
1264 /* Convert a packed value value */
1266 SWIG_Python_ConvertPacked(PyObject
*obj
, void *ptr
, size_t sz
, swig_type_info
*ty
, int flags
) {
1270 #if defined(SWIG_COBJECT_TYPES) && !defined(SWIG_COBJECT_PYTHON)
1271 c
= PySwigPacked_UnpackData(obj
, ptr
, sz
);
1273 if ((!obj
) || (!PyString_Check(obj
))) goto type_error
;
1274 c
= PyString_AsString(obj
);
1275 /* Pointer values must start with leading underscore */
1276 c
= SWIG_UnpackDataName(c
, ptr
, sz
, ty
->name
);
1278 if (!c
) goto type_error
;
1280 tc
= SWIG_TypeCheck(c
,ty
);
1281 if (!tc
) goto type_error
;
1287 if (flags
& SWIG_POINTER_EXCEPTION
) {
1289 SWIG_Python_TypeError(SWIG_TypePrettyName(ty
), obj
);
1291 SWIG_Python_TypeError("C/C++ packed data", obj
);
1297 /* Create a new array object */
1298 SWIGRUNTIME PyObject
*
1299 SWIG_Python_NewPointerObj(void *ptr
, swig_type_info
*type
, int own
) {
1302 if (!PyErr_Occurred()) {