]>
Commit | Line | Data |
---|---|---|
cfe5e918 RD |
1 | /* ---------------------------------------------------------------------------- |
2 | * This file was automatically generated by SWIG (http://www.swig.org). | |
7449af73 | 3 | * Version 1.3.27 |
cfe5e918 RD |
4 | * |
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 | * ----------------------------------------------------------------------------- */ | |
10 | ||
11 | #define SWIGPYTHON | |
cfe5e918 RD |
12 | |
13 | #ifdef __cplusplus | |
14 | template<class T> class SwigValueWrapper { | |
15 | T *tt; | |
16 | public: | |
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; } | |
24 | private: | |
25 | SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs); | |
093d3ff1 | 26 | }; |
cfe5e918 RD |
27 | #endif |
28 | ||
7449af73 RD |
29 | /*********************************************************************** |
30 | * | |
31 | * This section contains generic SWIG labels for method/variable | |
32 | * declarations/attributes, and other compiler dependent labels. | |
33 | * | |
34 | ************************************************************************/ | |
cfe5e918 | 35 | |
7449af73 RD |
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 | |
093d3ff1 | 40 | # else |
7449af73 | 41 | # define SWIGTEMPLATEDISAMBIGUATOR |
093d3ff1 RD |
42 | # endif |
43 | #endif | |
cfe5e918 | 44 | |
7449af73 RD |
45 | /* inline attribute */ |
46 | #ifndef SWIGINLINE | |
47 | # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__)) | |
48 | # define SWIGINLINE inline | |
49 | # else | |
50 | # define SWIGINLINE | |
51 | # endif | |
52 | #endif | |
53 | ||
54 | /* attribute recognised by some compilers to avoid 'unused' warnings */ | |
55 | #ifndef SWIGUNUSED | |
56 | # if defined(__GNUC__) || defined(__ICC) | |
57 | # define SWIGUNUSED __attribute__ ((unused)) | |
58 | # else | |
59 | # define SWIGUNUSED | |
60 | # endif | |
61 | #endif | |
62 | ||
63 | /* internal SWIG method */ | |
64 | #ifndef SWIGINTERN | |
65 | # define SWIGINTERN static SWIGUNUSED | |
66 | #endif | |
67 | ||
68 | /* internal inline SWIG method */ | |
69 | #ifndef SWIGINTERNINLINE | |
70 | # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE | |
71 | #endif | |
72 | ||
73 | /* exporting methods for Windows DLLs */ | |
74 | #ifndef SWIGEXPORT | |
75 | # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) | |
76 | # if defined(STATIC_LINKED) | |
77 | # define SWIGEXPORT | |
78 | # else | |
79 | # define SWIGEXPORT __declspec(dllexport) | |
80 | # endif | |
81 | # else | |
82 | # define SWIGEXPORT | |
83 | # endif | |
84 | #endif | |
85 | ||
86 | /* calling conventions for Windows */ | |
87 | #ifndef SWIGSTDCALL | |
88 | # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) | |
89 | # define SWIGSTDCALL __stdcall | |
90 | # else | |
91 | # define SWIGSTDCALL | |
92 | # endif | |
93 | #endif | |
94 | ||
95 | ||
cfe5e918 | 96 | |
093d3ff1 | 97 | #include <Python.h> |
cfe5e918 RD |
98 | |
99 | /*********************************************************************** | |
093d3ff1 | 100 | * swigrun.swg |
cfe5e918 | 101 | * |
093d3ff1 RD |
102 | * This file contains generic CAPI SWIG runtime support for pointer |
103 | * type checking. | |
cfe5e918 RD |
104 | * |
105 | ************************************************************************/ | |
106 | ||
093d3ff1 RD |
107 | /* This should only be incremented when either the layout of swig_type_info changes, |
108 | or for whatever reason, the runtime changes incompatibly */ | |
7449af73 | 109 | #define SWIG_RUNTIME_VERSION "2" |
cfe5e918 | 110 | |
093d3ff1 RD |
111 | /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */ |
112 | #ifdef SWIG_TYPE_TABLE | |
7449af73 RD |
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) | |
cfe5e918 | 116 | #else |
7449af73 | 117 | # define SWIG_TYPE_TABLE_NAME |
093d3ff1 RD |
118 | #endif |
119 | ||
120 | /* | |
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'. | |
124 | ||
125 | But only do this if is strictly necessary, ie, if you have problems | |
126 | with your compiler or so. | |
127 | */ | |
7449af73 | 128 | |
093d3ff1 | 129 | #ifndef SWIGRUNTIME |
7449af73 | 130 | # define SWIGRUNTIME SWIGINTERN |
093d3ff1 | 131 | #endif |
7449af73 | 132 | |
093d3ff1 | 133 | #ifndef SWIGRUNTIMEINLINE |
7449af73 | 134 | # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE |
cfe5e918 RD |
135 | #endif |
136 | ||
7449af73 RD |
137 | #include <string.h> |
138 | ||
cfe5e918 RD |
139 | #ifdef __cplusplus |
140 | extern "C" { | |
141 | #endif | |
142 | ||
143 | typedef void *(*swig_converter_func)(void *); | |
144 | typedef struct swig_type_info *(*swig_dycast_func)(void **); | |
145 | ||
7449af73 | 146 | /* Structure to store inforomation on one type */ |
cfe5e918 | 147 | typedef struct swig_type_info { |
7449af73 RD |
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 */ | |
cfe5e918 RD |
153 | } swig_type_info; |
154 | ||
7449af73 RD |
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 */ | |
161 | } swig_cast_info; | |
162 | ||
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 */ | |
173 | } swig_module_info; | |
174 | ||
175 | ||
093d3ff1 RD |
176 | /* |
177 | Compare two type names skipping the space characters, therefore | |
178 | "char*" == "char *" and "Class<int>" == "Class<int >", etc. | |
179 | ||
180 | Return 0 when the two name types are equivalent, as in | |
181 | strncmp, but skipping ' '. | |
182 | */ | |
183 | SWIGRUNTIME int | |
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; | |
7449af73 | 189 | if (*f1 != *f2) return (int)(*f1 - *f2); |
093d3ff1 RD |
190 | } |
191 | return (l1 - f1) - (l2 - f2); | |
192 | } | |
193 | ||
194 | /* | |
195 | Check type equivalence in a name list like <name1>|<name2>|... | |
7449af73 | 196 | Return 0 if not equal, 1 if equal |
093d3ff1 RD |
197 | */ |
198 | SWIGRUNTIME int | |
199 | SWIG_TypeEquiv(const char *nb, const char *tb) { | |
200 | int equiv = 0; | |
201 | const char* te = tb + strlen(tb); | |
202 | const char* ne = nb; | |
203 | while (!equiv && *ne) { | |
204 | for (nb = ne; *ne; ++ne) { | |
205 | if (*ne == '|') break; | |
206 | } | |
7449af73 | 207 | equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; |
093d3ff1 RD |
208 | if (*ne) ++ne; |
209 | } | |
210 | return equiv; | |
211 | } | |
212 | ||
213 | /* | |
7449af73 RD |
214 | Check type equivalence in a name list like <name1>|<name2>|... |
215 | Return 0 if equal, -1 if nb < tb, 1 if nb > tb | |
093d3ff1 | 216 | */ |
7449af73 RD |
217 | SWIGRUNTIME int |
218 | SWIG_TypeCompare(const char *nb, const char *tb) { | |
219 | int equiv = 0; | |
220 | const char* te = tb + strlen(tb); | |
221 | const char* ne = nb; | |
222 | while (!equiv && *ne) { | |
223 | for (nb = ne; *ne; ++ne) { | |
224 | if (*ne == '|') break; | |
093d3ff1 | 225 | } |
7449af73 RD |
226 | equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0; |
227 | if (*ne) ++ne; | |
093d3ff1 | 228 | } |
7449af73 RD |
229 | return equiv; |
230 | } | |
093d3ff1 | 231 | |
093d3ff1 | 232 | |
7449af73 RD |
233 | /* think of this as a c++ template<> or a scheme macro */ |
234 | #define SWIG_TypeCheck_Template(comparison, ty) \ | |
235 | if (ty) { \ | |
236 | swig_cast_info *iter = ty->cast; \ | |
237 | while (iter) { \ | |
238 | if (comparison) { \ | |
239 | if (iter == ty->cast) return iter; \ | |
240 | /* Move iter to the top of the linked list */ \ | |
241 | iter->prev->next = iter->next; \ | |
242 | if (iter->next) \ | |
243 | iter->next->prev = iter->prev; \ | |
244 | iter->next = ty->cast; \ | |
245 | iter->prev = 0; \ | |
246 | if (ty->cast) ty->cast->prev = iter; \ | |
247 | ty->cast = iter; \ | |
248 | return iter; \ | |
249 | } \ | |
250 | iter = iter->next; \ | |
251 | } \ | |
252 | } \ | |
253 | return 0 | |
093d3ff1 RD |
254 | |
255 | /* | |
256 | Check the typename | |
257 | */ | |
7449af73 | 258 | SWIGRUNTIME swig_cast_info * |
093d3ff1 | 259 | SWIG_TypeCheck(const char *c, swig_type_info *ty) { |
7449af73 RD |
260 | SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty); |
261 | } | |
262 | ||
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); | |
093d3ff1 RD |
267 | } |
268 | ||
269 | /* | |
270 | Cast a pointer up an inheritance hierarchy | |
271 | */ | |
272 | SWIGRUNTIMEINLINE void * | |
7449af73 | 273 | SWIG_TypeCast(swig_cast_info *ty, void *ptr) { |
093d3ff1 RD |
274 | return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr); |
275 | } | |
276 | ||
277 | /* | |
278 | Dynamic pointer casting. Down an inheritance hierarchy | |
279 | */ | |
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); | |
286 | if (ty) lastty = ty; | |
287 | } | |
288 | return lastty; | |
289 | } | |
290 | ||
291 | /* | |
292 | Return the name associated with this type | |
293 | */ | |
294 | SWIGRUNTIMEINLINE const char * | |
295 | SWIG_TypeName(const swig_type_info *ty) { | |
296 | return ty->name; | |
297 | } | |
298 | ||
299 | /* | |
300 | Return the pretty name associated with this type, | |
301 | that is an unmangled type name in a form presentable to the user. | |
302 | */ | |
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 | |
308 | specific. */ | |
309 | if (type->str != NULL) { | |
310 | const char *last_name = type->str; | |
311 | const char *s; | |
312 | for (s = type->str; *s; s++) | |
313 | if (*s == '|') last_name = s+1; | |
314 | return last_name; | |
315 | } | |
316 | else | |
317 | return type->name; | |
318 | } | |
319 | ||
093d3ff1 RD |
320 | /* |
321 | Set the clientdata field for a type | |
322 | */ | |
323 | SWIGRUNTIME void | |
7449af73 RD |
324 | SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { |
325 | swig_cast_info *cast = ti->cast; | |
093d3ff1 RD |
326 | /* if (ti->clientdata == clientdata) return; */ |
327 | ti->clientdata = clientdata; | |
7449af73 RD |
328 | |
329 | while (cast) { | |
330 | if (!cast->converter) { | |
331 | swig_type_info *tc = cast->type; | |
332 | if (!tc->clientdata) { | |
333 | SWIG_TypeClientData(tc, clientdata); | |
093d3ff1 | 334 | } |
7449af73 RD |
335 | } |
336 | cast = cast->next; | |
337 | } | |
338 | } | |
339 | ||
340 | /* | |
341 | Search for a swig_type_info structure only by mangled name | |
342 | Search is a O(log #types) | |
343 | ||
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 | |
346 | the circular list. | |
347 | */ | |
348 | SWIGRUNTIME swig_type_info * | |
349 | SWIG_MangledTypeQueryModule(swig_module_info *start, | |
350 | swig_module_info *end, | |
351 | const char *name) { | |
352 | swig_module_info *iter = start; | |
353 | do { | |
354 | if (iter->size) { | |
355 | register size_t l = 0; | |
356 | register size_t r = iter->size - 1; | |
357 | do { | |
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; | |
361 | if (iname) { | |
362 | register int compare = strcmp(name, iname); | |
363 | if (compare == 0) { | |
364 | return iter->types[i]; | |
365 | } else if (compare < 0) { | |
366 | if (i) { | |
367 | r = i - 1; | |
368 | } else { | |
369 | break; | |
370 | } | |
371 | } else if (compare > 0) { | |
372 | l = i + 1; | |
373 | } | |
374 | } else { | |
375 | break; /* should never happen */ | |
376 | } | |
377 | } while (l <= r); | |
093d3ff1 | 378 | } |
7449af73 RD |
379 | iter = iter->next; |
380 | } while (iter != end); | |
381 | return 0; | |
382 | } | |
383 | ||
384 | /* | |
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). | |
388 | ||
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 | |
391 | the circular list. | |
392 | */ | |
393 | SWIGRUNTIME swig_type_info * | |
394 | SWIG_TypeQueryModule(swig_module_info *start, | |
395 | swig_module_info *end, | |
396 | const char *name) { | |
397 | /* STEP 1: Search the name field using binary search */ | |
398 | swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name); | |
399 | if (ret) { | |
400 | return ret; | |
401 | } else { | |
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; | |
405 | do { | |
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]; | |
410 | } | |
411 | iter = iter->next; | |
412 | } while (iter != end); | |
093d3ff1 | 413 | } |
7449af73 RD |
414 | |
415 | /* neither found a match */ | |
416 | return 0; | |
093d3ff1 RD |
417 | } |
418 | ||
7449af73 | 419 | |
093d3ff1 RD |
420 | /* |
421 | Pack binary data into a string | |
422 | */ | |
423 | SWIGRUNTIME char * | |
424 | SWIG_PackData(char *c, void *ptr, size_t sz) { | |
7449af73 RD |
425 | static const char hex[17] = "0123456789abcdef"; |
426 | register const unsigned char *u = (unsigned char *) ptr; | |
427 | register const unsigned char *eu = u + sz; | |
093d3ff1 | 428 | for (; u != eu; ++u) { |
7449af73 | 429 | register unsigned char uu = *u; |
093d3ff1 RD |
430 | *(c++) = hex[(uu & 0xf0) >> 4]; |
431 | *(c++) = hex[uu & 0xf]; | |
432 | } | |
433 | return c; | |
434 | } | |
435 | ||
436 | /* | |
437 | Unpack binary data from a string | |
438 | */ | |
439 | SWIGRUNTIME const char * | |
440 | SWIG_UnpackData(const char *c, void *ptr, size_t sz) { | |
441 | register unsigned char *u = (unsigned char *) ptr; | |
7449af73 | 442 | register const unsigned char *eu = u + sz; |
093d3ff1 | 443 | for (; u != eu; ++u) { |
7449af73 | 444 | register char d = *(c++); |
093d3ff1 RD |
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); | |
450 | else | |
451 | return (char *) 0; | |
452 | d = *(c++); | |
453 | if ((d >= '0') && (d <= '9')) | |
454 | uu |= (d - '0'); | |
455 | else if ((d >= 'a') && (d <= 'f')) | |
456 | uu |= (d - ('a'-10)); | |
457 | else | |
458 | return (char *) 0; | |
459 | *u = uu; | |
460 | } | |
461 | return c; | |
462 | } | |
463 | ||
093d3ff1 RD |
464 | /* |
465 | Pack 'void *' into a string buffer. | |
466 | */ | |
467 | SWIGRUNTIME char * | |
468 | SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) { | |
469 | char *r = buff; | |
470 | if ((2*sizeof(void *) + 2) > bsz) return 0; | |
471 | *(r++) = '_'; | |
472 | r = SWIG_PackData(r,&ptr,sizeof(void *)); | |
473 | if (strlen(name) + 1 > (bsz - (r - buff))) return 0; | |
474 | strcpy(r,name); | |
475 | return buff; | |
476 | } | |
477 | ||
478 | SWIGRUNTIME const char * | |
479 | SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) { | |
480 | if (*c != '_') { | |
481 | if (strcmp(c,"NULL") == 0) { | |
482 | *ptr = (void *) 0; | |
483 | return name; | |
484 | } else { | |
485 | return 0; | |
486 | } | |
487 | } | |
488 | return SWIG_UnpackData(++c,ptr,sizeof(void *)); | |
489 | } | |
490 | ||
491 | SWIGRUNTIME char * | |
492 | SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) { | |
493 | char *r = buff; | |
494 | size_t lname = (name ? strlen(name) : 0); | |
495 | if ((2*sz + 2 + lname) > bsz) return 0; | |
496 | *(r++) = '_'; | |
497 | r = SWIG_PackData(r,ptr,sz); | |
498 | if (lname) { | |
499 | strncpy(r,name,lname+1); | |
500 | } else { | |
501 | *r = 0; | |
502 | } | |
503 | return buff; | |
504 | } | |
cfe5e918 | 505 | |
093d3ff1 RD |
506 | SWIGRUNTIME const char * |
507 | SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) { | |
508 | if (*c != '_') { | |
509 | if (strcmp(c,"NULL") == 0) { | |
510 | memset(ptr,0,sz); | |
511 | return name; | |
512 | } else { | |
513 | return 0; | |
514 | } | |
515 | } | |
516 | return SWIG_UnpackData(++c,ptr,sz); | |
517 | } | |
cfe5e918 RD |
518 | |
519 | #ifdef __cplusplus | |
520 | } | |
521 | #endif | |
522 | ||
093d3ff1 RD |
523 | /* ----------------------------------------------------------------------------- |
524 | * SWIG API. Portion that goes into the runtime | |
525 | * ----------------------------------------------------------------------------- */ | |
cfe5e918 | 526 | |
093d3ff1 RD |
527 | #ifdef __cplusplus |
528 | extern "C" { | |
529 | #endif | |
c32bde28 | 530 | |
093d3ff1 RD |
531 | /* ----------------------------------------------------------------------------- |
532 | * for internal method declarations | |
533 | * ----------------------------------------------------------------------------- */ | |
cfe5e918 | 534 | |
093d3ff1 | 535 | #ifndef SWIGINTERN |
7449af73 | 536 | # define SWIGINTERN static SWIGUNUSED |
093d3ff1 | 537 | #endif |
cfe5e918 | 538 | |
7449af73 RD |
539 | #ifndef SWIGINTERNINLINE |
540 | # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE | |
093d3ff1 | 541 | #endif |
cfe5e918 | 542 | |
093d3ff1 RD |
543 | /* |
544 | Exception handling in wrappers | |
545 | */ | |
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) | |
552 | ||
553 | /* | |
554 | Contract support | |
555 | */ | |
556 | #define SWIG_contract_assert(expr, msg) \ | |
557 | if (!(expr)) { PyErr_SetString(PyExc_RuntimeError, (char *) msg ); goto fail; } else | |
558 | ||
559 | /* ----------------------------------------------------------------------------- | |
560 | * Constant declarations | |
561 | * ----------------------------------------------------------------------------- */ | |
cfe5e918 | 562 | |
093d3ff1 RD |
563 | /* Constant Types */ |
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 | |
569 | ||
570 | /* Constant information structure */ | |
571 | typedef struct swig_const_info { | |
572 | int type; | |
573 | char *name; | |
574 | long lvalue; | |
575 | double dvalue; | |
576 | void *pvalue; | |
577 | swig_type_info **ptype; | |
578 | } swig_const_info; | |
cfe5e918 | 579 | |
c32bde28 | 580 | |
093d3ff1 RD |
581 | /* ----------------------------------------------------------------------------- |
582 | * Alloc. memory flags | |
583 | * ----------------------------------------------------------------------------- */ | |
c32bde28 RD |
584 | #define SWIG_OLDOBJ 1 |
585 | #define SWIG_NEWOBJ SWIG_OLDOBJ + 1 | |
586 | #define SWIG_PYSTR SWIG_NEWOBJ + 1 | |
cfe5e918 RD |
587 | |
588 | #ifdef __cplusplus | |
093d3ff1 RD |
589 | } |
590 | #endif | |
cfe5e918 | 591 | |
cfe5e918 | 592 | |
093d3ff1 RD |
593 | /*********************************************************************** |
594 | * pyrun.swg | |
595 | * | |
596 | * This file contains the runtime support for Python modules | |
597 | * and includes code for managing global variables and pointer | |
598 | * type checking. | |
599 | * | |
600 | * Author : David Beazley (beazley@cs.uchicago.edu) | |
601 | ************************************************************************/ | |
cfe5e918 | 602 | |
093d3ff1 RD |
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) | |
9d7dfdff | 607 | |
cfe5e918 | 608 | |
093d3ff1 RD |
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) | |
cfe5e918 | 612 | |
7449af73 RD |
613 | /* Runtime API */ |
614 | #define SWIG_GetModule(clientdata) SWIG_Python_GetModule() | |
615 | #define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer) | |
cfe5e918 | 616 | |
093d3ff1 RD |
617 | /* ----------------------------------------------------------------------------- |
618 | * Pointer declarations | |
619 | * ----------------------------------------------------------------------------- */ | |
620 | /* | |
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 | |
623 | not always safe. | |
624 | */ | |
625 | #if !defined(SWIG_NO_COBJECT_TYPES) && !defined(SWIG_COBJECT_TYPES) | |
626 | # define SWIG_COBJECT_TYPES | |
627 | #endif | |
cfe5e918 | 628 | |
093d3ff1 RD |
629 | /* Flags for pointer conversion */ |
630 | #define SWIG_POINTER_EXCEPTION 0x1 | |
631 | #define SWIG_POINTER_DISOWN 0x2 | |
cfe5e918 | 632 | |
cfe5e918 | 633 | |
7449af73 RD |
634 | /* Add PyOS_snprintf for old Pythons */ |
635 | #if PY_VERSION_HEX < 0x02020000 | |
636 | #define PyOS_snprintf snprintf | |
637 | #endif | |
638 | ||
093d3ff1 RD |
639 | #ifdef __cplusplus |
640 | extern "C" { | |
641 | #endif | |
cfe5e918 | 642 | |
093d3ff1 RD |
643 | /* ----------------------------------------------------------------------------- |
644 | * Create a new pointer string | |
645 | * ----------------------------------------------------------------------------- */ | |
093d3ff1 RD |
646 | #ifndef SWIG_BUFFER_SIZE |
647 | #define SWIG_BUFFER_SIZE 1024 | |
648 | #endif | |
cfe5e918 | 649 | |
7449af73 RD |
650 | /* A crude PyString_FromFormat implementation for old Pythons */ |
651 | #if PY_VERSION_HEX < 0x02020000 | |
652 | static PyObject * | |
653 | PyString_FromFormat(const char *fmt, ...) { | |
654 | va_list ap; | |
655 | char buf[SWIG_BUFFER_SIZE * 2]; | |
656 | int res; | |
657 | va_start(ap, fmt); | |
658 | res = vsnprintf(buf, sizeof(buf), fmt, ap); | |
659 | va_end(ap); | |
660 | return (res < 0 || res >= sizeof(buf)) ? 0 : PyString_FromString(buf); | |
661 | } | |
662 | #endif | |
663 | ||
664 | #if PY_VERSION_HEX < 0x01060000 | |
665 | #define PyObject_Del(op) PyMem_DEL((op)) | |
666 | #endif | |
667 | ||
093d3ff1 RD |
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 | * ----------------------------------------------------------------------------- */ | |
cfe5e918 | 673 | |
093d3ff1 RD |
674 | typedef struct { |
675 | PyObject_HEAD | |
676 | void *ptr; | |
677 | const char *desc; | |
678 | } PySwigObject; | |
cfe5e918 | 679 | |
093d3ff1 | 680 | /* Declarations for objects of type PySwigObject */ |
cfe5e918 | 681 | |
093d3ff1 RD |
682 | SWIGRUNTIME int |
683 | PySwigObject_print(PySwigObject *v, FILE *fp, int flags) | |
684 | { | |
685 | char result[SWIG_BUFFER_SIZE]; | |
7449af73 | 686 | flags = flags; |
093d3ff1 RD |
687 | if (SWIG_PackVoidPtr(result, v->ptr, v->desc, sizeof(result))) { |
688 | fputs("<Swig Object at ", fp); fputs(result, fp); fputs(">", fp); | |
689 | return 0; | |
c32bde28 | 690 | } else { |
093d3ff1 | 691 | return 1; |
c32bde28 | 692 | } |
cfe5e918 | 693 | } |
9d7dfdff | 694 | |
093d3ff1 RD |
695 | SWIGRUNTIME PyObject * |
696 | PySwigObject_repr(PySwigObject *v) | |
c32bde28 | 697 | { |
093d3ff1 RD |
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; | |
c32bde28 | 701 | } |
cfe5e918 | 702 | |
093d3ff1 RD |
703 | SWIGRUNTIME PyObject * |
704 | PySwigObject_str(PySwigObject *v) | |
cfe5e918 | 705 | { |
093d3ff1 RD |
706 | char result[SWIG_BUFFER_SIZE]; |
707 | return SWIG_PackVoidPtr(result, v->ptr, v->desc, sizeof(result)) ? | |
708 | PyString_FromString(result) : 0; | |
cfe5e918 RD |
709 | } |
710 | ||
093d3ff1 RD |
711 | SWIGRUNTIME PyObject * |
712 | PySwigObject_long(PySwigObject *v) | |
cfe5e918 | 713 | { |
7449af73 RD |
714 | return PyLong_FromVoidPtr(v->ptr); |
715 | } | |
716 | ||
717 | SWIGRUNTIME PyObject * | |
718 | PySwigObject_format(const char* fmt, PySwigObject *v) | |
719 | { | |
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); | |
724 | if (ofmt) { | |
725 | res = PyString_Format(ofmt,args); | |
726 | Py_DECREF(ofmt); | |
727 | } | |
728 | Py_DECREF(args); | |
729 | } | |
730 | return res; | |
cfe5e918 RD |
731 | } |
732 | ||
093d3ff1 RD |
733 | SWIGRUNTIME PyObject * |
734 | PySwigObject_oct(PySwigObject *v) | |
c32bde28 | 735 | { |
7449af73 | 736 | return PySwigObject_format("%o",v); |
c32bde28 | 737 | } |
cfe5e918 | 738 | |
093d3ff1 RD |
739 | SWIGRUNTIME PyObject * |
740 | PySwigObject_hex(PySwigObject *v) | |
cfe5e918 | 741 | { |
7449af73 | 742 | return PySwigObject_format("%x",v); |
cfe5e918 RD |
743 | } |
744 | ||
093d3ff1 RD |
745 | SWIGRUNTIME int |
746 | PySwigObject_compare(PySwigObject *v, PySwigObject *w) | |
cfe5e918 | 747 | { |
093d3ff1 RD |
748 | int c = strcmp(v->desc, w->desc); |
749 | if (c) { | |
7449af73 | 750 | return (c > 0) ? 1 : -1; |
093d3ff1 RD |
751 | } else { |
752 | void *i = v->ptr; | |
753 | void *j = w->ptr; | |
7449af73 | 754 | return (i < j) ? -1 : ((i > j) ? 1 : 0); |
c32bde28 | 755 | } |
093d3ff1 RD |
756 | } |
757 | ||
758 | SWIGRUNTIME void | |
759 | PySwigObject_dealloc(PySwigObject *self) | |
760 | { | |
7449af73 | 761 | PyObject_Del(self); |
093d3ff1 RD |
762 | } |
763 | ||
764 | SWIGRUNTIME PyTypeObject* | |
7449af73 RD |
765 | PySwigObject_type(void) { |
766 | static char pyswigobject_type__doc__[] = | |
093d3ff1 | 767 | "Swig object carries a C/C++ instance pointer"; |
9d7dfdff | 768 | |
093d3ff1 RD |
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*/ | |
781 | 0, /*nb_invert*/ | |
782 | 0, /*nb_lshift*/ | |
783 | 0, /*nb_rshift*/ | |
784 | 0, /*nb_and*/ | |
785 | 0, /*nb_xor*/ | |
786 | 0, /*nb_or*/ | |
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*/ | |
7449af73 | 793 | #if PY_VERSION_HEX >= 0x02020000 |
093d3ff1 | 794 | 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */ |
7449af73 RD |
795 | #elif PY_VERSION_HEX >= 0x02000000 |
796 | 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */ | |
093d3ff1 RD |
797 | #endif |
798 | }; | |
799 | ||
7449af73 RD |
800 | static PyTypeObject pyswigobject_type |
801 | #if !defined(__cplusplus) | |
802 | ; | |
803 | static int type_init = 0; | |
093d3ff1 | 804 | if (!type_init) { |
7449af73 RD |
805 | PyTypeObject tmp |
806 | #endif | |
807 | = { | |
093d3ff1 RD |
808 | PyObject_HEAD_INIT(&PyType_Type) |
809 | 0, /*ob_size*/ | |
7449af73 | 810 | (char *)"PySwigObject", /*tp_name*/ |
093d3ff1 RD |
811 | sizeof(PySwigObject), /*tp_basicsize*/ |
812 | 0, /*tp_itemsize*/ | |
813 | /* methods */ | |
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*/ | |
822 | 0, /*tp_as_mapping*/ | |
823 | (hashfunc)0, /*tp_hash*/ | |
824 | (ternaryfunc)0, /*tp_call*/ | |
825 | (reprfunc)PySwigObject_str, /*tp_str*/ | |
826 | /* Space for future expansion */ | |
7449af73 RD |
827 | 0,0,0,0, |
828 | pyswigobject_type__doc__, /* Documentation string */ | |
093d3ff1 RD |
829 | #if PY_VERSION_HEX >= 0x02000000 |
830 | 0, /* tp_traverse */ | |
831 | 0, /* tp_clear */ | |
832 | #endif | |
833 | #if PY_VERSION_HEX >= 0x02010000 | |
834 | 0, /* tp_richcompare */ | |
835 | 0, /* tp_weaklistoffset */ | |
836 | #endif | |
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 */ | |
839 | #endif | |
840 | #if PY_VERSION_HEX >= 0x02030000 | |
841 | 0, /* tp_del */ | |
842 | #endif | |
843 | #ifdef COUNT_ALLOCS | |
844 | 0,0,0,0 /* tp_alloc -> tp_next */ | |
845 | #endif | |
846 | }; | |
7449af73 RD |
847 | #if !defined(__cplusplus) |
848 | pyswigobject_type = tmp; | |
093d3ff1 | 849 | type_init = 1; |
c32bde28 | 850 | } |
7449af73 RD |
851 | #endif |
852 | return &pyswigobject_type; | |
093d3ff1 RD |
853 | } |
854 | ||
855 | SWIGRUNTIME PyObject * | |
856 | PySwigObject_FromVoidPtrAndDesc(void *ptr, const char *desc) | |
857 | { | |
7449af73 RD |
858 | PySwigObject *self = PyObject_NEW(PySwigObject, PySwigObject_type()); |
859 | if (self) { | |
860 | self->ptr = ptr; | |
861 | self->desc = desc; | |
862 | } | |
093d3ff1 RD |
863 | return (PyObject *)self; |
864 | } | |
865 | ||
866 | SWIGRUNTIMEINLINE void * | |
867 | PySwigObject_AsVoidPtr(PyObject *self) | |
868 | { | |
869 | return ((PySwigObject *)self)->ptr; | |
870 | } | |
871 | ||
872 | SWIGRUNTIMEINLINE const char * | |
873 | PySwigObject_GetDesc(PyObject *self) | |
874 | { | |
875 | return ((PySwigObject *)self)->desc; | |
876 | } | |
877 | ||
878 | SWIGRUNTIMEINLINE int | |
879 | PySwigObject_Check(PyObject *op) { | |
7449af73 | 880 | return ((op)->ob_type == PySwigObject_type()) |
093d3ff1 RD |
881 | || (strcmp((op)->ob_type->tp_name,"PySwigObject") == 0); |
882 | } | |
883 | ||
884 | /* ----------------------------------------------------------------------------- | |
885 | * Implements a simple Swig Packed type, and use it instead of string | |
886 | * ----------------------------------------------------------------------------- */ | |
887 | ||
888 | typedef struct { | |
889 | PyObject_HEAD | |
890 | void *pack; | |
891 | const char *desc; | |
892 | size_t size; | |
893 | } PySwigPacked; | |
894 | ||
895 | SWIGRUNTIME int | |
896 | PySwigPacked_print(PySwigPacked *v, FILE *fp, int flags) | |
897 | { | |
898 | char result[SWIG_BUFFER_SIZE]; | |
7449af73 | 899 | flags = flags; |
093d3ff1 RD |
900 | fputs("<Swig Packed ", fp); |
901 | if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) { | |
902 | fputs("at ", fp); | |
903 | fputs(result, fp); | |
c32bde28 | 904 | } |
093d3ff1 RD |
905 | fputs(v->desc,fp); |
906 | fputs(">", fp); | |
907 | return 0; | |
908 | } | |
9d7dfdff | 909 | |
093d3ff1 RD |
910 | SWIGRUNTIME PyObject * |
911 | PySwigPacked_repr(PySwigPacked *v) | |
912 | { | |
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); | |
916 | } else { | |
917 | return PyString_FromFormat("<Swig Packed %s>", v->desc); | |
918 | } | |
c32bde28 RD |
919 | } |
920 | ||
093d3ff1 RD |
921 | SWIGRUNTIME PyObject * |
922 | PySwigPacked_str(PySwigPacked *v) | |
923 | { | |
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); | |
927 | } else { | |
7449af73 | 928 | return PyString_FromString(v->desc); |
093d3ff1 RD |
929 | } |
930 | } | |
c32bde28 | 931 | |
093d3ff1 RD |
932 | SWIGRUNTIME int |
933 | PySwigPacked_compare(PySwigPacked *v, PySwigPacked *w) | |
c32bde28 | 934 | { |
093d3ff1 RD |
935 | int c = strcmp(v->desc, w->desc); |
936 | if (c) { | |
7449af73 | 937 | return (c > 0) ? 1 : -1; |
093d3ff1 RD |
938 | } else { |
939 | size_t i = v->size; | |
940 | size_t j = w->size; | |
7449af73 | 941 | int s = (i < j) ? -1 : ((i > j) ? 1 : 0); |
093d3ff1 | 942 | return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size); |
c32bde28 | 943 | } |
c32bde28 RD |
944 | } |
945 | ||
093d3ff1 RD |
946 | SWIGRUNTIME void |
947 | PySwigPacked_dealloc(PySwigPacked *self) | |
c32bde28 | 948 | { |
093d3ff1 | 949 | free(self->pack); |
7449af73 | 950 | PyObject_Del(self); |
cfe5e918 RD |
951 | } |
952 | ||
093d3ff1 | 953 | SWIGRUNTIME PyTypeObject* |
7449af73 RD |
954 | PySwigPacked_type(void) { |
955 | static char pyswigpacked_type__doc__[] = | |
093d3ff1 | 956 | "Swig object carries a C/C++ instance pointer"; |
7449af73 RD |
957 | static PyTypeObject pyswigpacked_type |
958 | #if !defined(__cplusplus) | |
959 | ; | |
960 | static int type_init = 0; | |
093d3ff1 | 961 | if (!type_init) { |
7449af73 RD |
962 | PyTypeObject tmp |
963 | #endif | |
964 | = { | |
093d3ff1 RD |
965 | PyObject_HEAD_INIT(&PyType_Type) |
966 | 0, /*ob_size*/ | |
7449af73 | 967 | (char *)"PySwigPacked", /*tp_name*/ |
093d3ff1 RD |
968 | sizeof(PySwigPacked), /*tp_basicsize*/ |
969 | 0, /*tp_itemsize*/ | |
970 | /* methods */ | |
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*/ | |
977 | 0, /*tp_as_number*/ | |
978 | 0, /*tp_as_sequence*/ | |
979 | 0, /*tp_as_mapping*/ | |
980 | (hashfunc)0, /*tp_hash*/ | |
981 | (ternaryfunc)0, /*tp_call*/ | |
982 | (reprfunc)PySwigPacked_str, /*tp_str*/ | |
983 | /* Space for future expansion */ | |
7449af73 RD |
984 | 0,0,0,0, |
985 | pyswigpacked_type__doc__, /* Documentation string */ | |
093d3ff1 RD |
986 | #if PY_VERSION_HEX >= 0x02000000 |
987 | 0, /* tp_traverse */ | |
988 | 0, /* tp_clear */ | |
989 | #endif | |
990 | #if PY_VERSION_HEX >= 0x02010000 | |
991 | 0, /* tp_richcompare */ | |
992 | 0, /* tp_weaklistoffset */ | |
993 | #endif | |
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 */ | |
996 | #endif | |
997 | #if PY_VERSION_HEX >= 0x02030000 | |
998 | 0, /* tp_del */ | |
999 | #endif | |
1000 | #ifdef COUNT_ALLOCS | |
1001 | 0,0,0,0 /* tp_alloc -> tp_next */ | |
1002 | #endif | |
1003 | }; | |
7449af73 RD |
1004 | #if !defined(__cplusplus) |
1005 | pyswigpacked_type = tmp; | |
093d3ff1 RD |
1006 | type_init = 1; |
1007 | } | |
7449af73 RD |
1008 | #endif |
1009 | return &pyswigpacked_type; | |
093d3ff1 RD |
1010 | } |
1011 | ||
1012 | SWIGRUNTIME PyObject * | |
1013 | PySwigPacked_FromDataAndDesc(void *ptr, size_t size, const char *desc) | |
1014 | { | |
7449af73 | 1015 | PySwigPacked *self = PyObject_NEW(PySwigPacked, PySwigPacked_type()); |
093d3ff1 RD |
1016 | if (self == NULL) { |
1017 | return NULL; | |
1018 | } else { | |
1019 | void *pack = malloc(size); | |
7449af73 RD |
1020 | if (pack) { |
1021 | memcpy(pack, ptr, size); | |
1022 | self->pack = pack; | |
1023 | self->desc = desc; | |
1024 | self->size = size; | |
1025 | return (PyObject *) self; | |
1026 | } | |
1027 | return NULL; | |
7e63a440 | 1028 | } |
093d3ff1 RD |
1029 | } |
1030 | ||
1031 | SWIGRUNTIMEINLINE const char * | |
1032 | PySwigPacked_UnpackData(PyObject *obj, void *ptr, size_t size) | |
1033 | { | |
1034 | PySwigPacked *self = (PySwigPacked *)obj; | |
1035 | if (self->size != size) return 0; | |
1036 | memcpy(ptr, self->pack, size); | |
1037 | return self->desc; | |
1038 | } | |
1039 | ||
1040 | SWIGRUNTIMEINLINE const char * | |
1041 | PySwigPacked_GetDesc(PyObject *self) | |
1042 | { | |
1043 | return ((PySwigPacked *)self)->desc; | |
1044 | } | |
1045 | ||
1046 | SWIGRUNTIMEINLINE int | |
1047 | PySwigPacked_Check(PyObject *op) { | |
7449af73 | 1048 | return ((op)->ob_type == PySwigPacked_type()) |
093d3ff1 RD |
1049 | || (strcmp((op)->ob_type->tp_name,"PySwigPacked") == 0); |
1050 | } | |
cfe5e918 | 1051 | |
093d3ff1 RD |
1052 | #else |
1053 | /* ----------------------------------------------------------------------------- | |
1054 | * Use the old Python PyCObject instead of PySwigObject | |
1055 | * ----------------------------------------------------------------------------- */ | |
cfe5e918 | 1056 | |
093d3ff1 RD |
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) | |
c32bde28 | 1061 | |
093d3ff1 RD |
1062 | #endif |
1063 | ||
1064 | #endif | |
1065 | ||
1066 | /* ----------------------------------------------------------------------------- | |
1067 | * errors manipulation | |
1068 | * ----------------------------------------------------------------------------- */ | |
1069 | ||
1070 | SWIGRUNTIME void | |
1071 | SWIG_Python_TypeError(const char *type, PyObject *obj) | |
cfe5e918 | 1072 | { |
093d3ff1 RD |
1073 | if (type) { |
1074 | #if defined(SWIG_COBJECT_TYPES) | |
7449af73 | 1075 | if (obj && PySwigObject_Check(obj)) { |
093d3ff1 RD |
1076 | const char *otype = (const char *) PySwigObject_GetDesc(obj); |
1077 | if (otype) { | |
1078 | PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'PySwigObject(%s)' is received", | |
1079 | type, otype); | |
1080 | return; | |
1081 | } | |
1082 | } else | |
1083 | #endif | |
1084 | { | |
1085 | const char *otype = (obj ? obj->ob_type->tp_name : 0); | |
1086 | if (otype) { | |
1087 | PyObject *str = PyObject_Str(obj); | |
1088 | const char *cstr = str ? PyString_AsString(str) : 0; | |
1089 | if (cstr) { | |
1090 | PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received", | |
1091 | type, otype, cstr); | |
1092 | } else { | |
1093 | PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received", | |
1094 | type, otype); | |
c32bde28 | 1095 | } |
7449af73 | 1096 | Py_XDECREF(str); |
093d3ff1 | 1097 | return; |
c32bde28 | 1098 | } |
093d3ff1 RD |
1099 | } |
1100 | PyErr_Format(PyExc_TypeError, "a '%s' is expected", type); | |
1101 | } else { | |
1102 | PyErr_Format(PyExc_TypeError, "unexpected type is received"); | |
cfe5e918 RD |
1103 | } |
1104 | } | |
1105 | ||
093d3ff1 RD |
1106 | SWIGRUNTIMEINLINE void |
1107 | SWIG_Python_NullRef(const char *type) | |
1108 | { | |
1109 | if (type) { | |
1110 | PyErr_Format(PyExc_TypeError, "null reference of type '%s' was received",type); | |
1111 | } else { | |
1112 | PyErr_Format(PyExc_TypeError, "null reference was received"); | |
1113 | } | |
1114 | } | |
cfe5e918 | 1115 | |
093d3ff1 RD |
1116 | SWIGRUNTIME int |
1117 | SWIG_Python_AddErrMesg(const char* mesg, int infront) | |
cfe5e918 | 1118 | { |
093d3ff1 RD |
1119 | if (PyErr_Occurred()) { |
1120 | PyObject *type = 0; | |
1121 | PyObject *value = 0; | |
1122 | PyObject *traceback = 0; | |
1123 | PyErr_Fetch(&type, &value, &traceback); | |
1124 | if (value) { | |
1125 | PyObject *old_str = PyObject_Str(value); | |
1126 | Py_XINCREF(type); | |
1127 | PyErr_Clear(); | |
1128 | if (infront) { | |
1129 | PyErr_Format(type, "%s %s", mesg, PyString_AsString(old_str)); | |
1130 | } else { | |
1131 | PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg); | |
1132 | } | |
1133 | Py_DECREF(old_str); | |
1134 | } | |
c32bde28 | 1135 | return 1; |
093d3ff1 RD |
1136 | } else { |
1137 | return 0; | |
c32bde28 | 1138 | } |
cfe5e918 RD |
1139 | } |
1140 | ||
093d3ff1 RD |
1141 | SWIGRUNTIME int |
1142 | SWIG_Python_ArgFail(int argnum) | |
1143 | { | |
1144 | if (PyErr_Occurred()) { | |
1145 | /* add information about failing argument */ | |
1146 | char mesg[256]; | |
7449af73 | 1147 | PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum); |
093d3ff1 RD |
1148 | return SWIG_Python_AddErrMesg(mesg, 1); |
1149 | } else { | |
1150 | return 0; | |
1151 | } | |
cfe5e918 RD |
1152 | } |
1153 | ||
1154 | ||
093d3ff1 RD |
1155 | /* ----------------------------------------------------------------------------- |
1156 | * pointers/data manipulation | |
1157 | * ----------------------------------------------------------------------------- */ | |
1158 | ||
1159 | /* Convert a pointer value */ | |
1160 | SWIGRUNTIME int | |
1161 | SWIG_Python_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) { | |
7449af73 | 1162 | swig_cast_info *tc; |
093d3ff1 RD |
1163 | const char *c = 0; |
1164 | static PyObject *SWIG_this = 0; | |
1165 | int newref = 0; | |
1166 | PyObject *pyobj = 0; | |
1167 | void *vptr; | |
9d7dfdff | 1168 | |
093d3ff1 RD |
1169 | if (!obj) return 0; |
1170 | if (obj == Py_None) { | |
1171 | *ptr = 0; | |
1172 | return 0; | |
1173 | } | |
1174 | ||
1175 | #ifdef SWIG_COBJECT_TYPES | |
1176 | if (!(PySwigObject_Check(obj))) { | |
1177 | if (!SWIG_this) | |
1178 | SWIG_this = PyString_FromString("this"); | |
1179 | pyobj = obj; | |
1180 | obj = PyObject_GetAttr(obj,SWIG_this); | |
1181 | newref = 1; | |
1182 | if (!obj) goto type_error; | |
1183 | if (!PySwigObject_Check(obj)) { | |
1184 | Py_DECREF(obj); | |
1185 | goto type_error; | |
1186 | } | |
1187 | } | |
1188 | vptr = PySwigObject_AsVoidPtr(obj); | |
1189 | c = (const char *) PySwigObject_GetDesc(obj); | |
1190 | if (newref) { Py_DECREF(obj); } | |
1191 | goto type_check; | |
cfe5e918 | 1192 | #else |
093d3ff1 RD |
1193 | if (!(PyString_Check(obj))) { |
1194 | if (!SWIG_this) | |
1195 | SWIG_this = PyString_FromString("this"); | |
1196 | pyobj = obj; | |
1197 | obj = PyObject_GetAttr(obj,SWIG_this); | |
1198 | newref = 1; | |
1199 | if (!obj) goto type_error; | |
1200 | if (!PyString_Check(obj)) { | |
1201 | Py_DECREF(obj); | |
1202 | goto type_error; | |
1203 | } | |
1204 | } | |
7449af73 | 1205 | c = PyString_AsString(obj); |
093d3ff1 RD |
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; | |
cfe5e918 | 1210 | #endif |
cfe5e918 | 1211 | |
093d3ff1 | 1212 | type_check: |
093d3ff1 RD |
1213 | if (ty) { |
1214 | tc = SWIG_TypeCheck(c,ty); | |
1215 | if (!tc) goto type_error; | |
1216 | *ptr = SWIG_TypeCast(tc,vptr); | |
1217 | } else { | |
1218 | *ptr = vptr; | |
1219 | } | |
093d3ff1 RD |
1220 | if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) { |
1221 | PyObject_SetAttrString(pyobj,(char*)"thisown",Py_False); | |
1222 | } | |
1223 | return 0; | |
1224 | ||
1225 | type_error: | |
1226 | PyErr_Clear(); | |
1227 | if (pyobj && !obj) { | |
1228 | obj = pyobj; | |
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; | |
1233 | if (c) { | |
7449af73 | 1234 | c = ty ? SWIG_UnpackVoidPtr(c + 10, &vptr, ty->name) : 0; |
093d3ff1 RD |
1235 | if (!c) goto type_error; |
1236 | goto type_check; | |
1237 | } | |
cfe5e918 | 1238 | } |
093d3ff1 RD |
1239 | } |
1240 | if (flags & SWIG_POINTER_EXCEPTION) { | |
1241 | if (ty) { | |
1242 | SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); | |
1243 | } else { | |
1244 | SWIG_Python_TypeError("C/C++ pointer", obj); | |
cfe5e918 | 1245 | } |
093d3ff1 RD |
1246 | } |
1247 | return -1; | |
1248 | } | |
1249 | ||
1250 | /* Convert a pointer value, signal an exception on a type mismatch */ | |
1251 | SWIGRUNTIME void * | |
1252 | SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) { | |
1253 | void *result; | |
1254 | if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) { | |
1255 | PyErr_Clear(); | |
1256 | if (flags & SWIG_POINTER_EXCEPTION) { | |
1257 | SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); | |
1258 | SWIG_Python_ArgFail(argnum); | |
cfe5e918 | 1259 | } |
093d3ff1 RD |
1260 | } |
1261 | return result; | |
cfe5e918 RD |
1262 | } |
1263 | ||
093d3ff1 RD |
1264 | /* Convert a packed value value */ |
1265 | SWIGRUNTIME int | |
1266 | SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty, int flags) { | |
7449af73 | 1267 | swig_cast_info *tc; |
093d3ff1 | 1268 | const char *c = 0; |
cfe5e918 | 1269 | |
093d3ff1 RD |
1270 | #if defined(SWIG_COBJECT_TYPES) && !defined(SWIG_COBJECT_PYTHON) |
1271 | c = PySwigPacked_UnpackData(obj, ptr, sz); | |
1272 | #else | |
1273 | if ((!obj) || (!PyString_Check(obj))) goto type_error; | |
7449af73 | 1274 | c = PyString_AsString(obj); |
093d3ff1 RD |
1275 | /* Pointer values must start with leading underscore */ |
1276 | c = SWIG_UnpackDataName(c, ptr, sz, ty->name); | |
1277 | #endif | |
1278 | if (!c) goto type_error; | |
1279 | if (ty) { | |
1280 | tc = SWIG_TypeCheck(c,ty); | |
1281 | if (!tc) goto type_error; | |
1282 | } | |
1283 | return 0; | |
1284 | ||
1285 | type_error: | |
1286 | PyErr_Clear(); | |
1287 | if (flags & SWIG_POINTER_EXCEPTION) { | |
1288 | if (ty) { | |
1289 | SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj); | |
1290 | } else { | |
1291 | SWIG_Python_TypeError("C/C++ packed data", obj); | |
cfe5e918 | 1292 | } |
093d3ff1 RD |
1293 | } |
1294 | return -1; | |
1295 | } | |
1296 | ||
1297 | /* Create a new array object */ | |
1298 | SWIGRUNTIME PyObject * | |
1299 | SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int own) { | |
1300 | PyObject *robj = 0; | |
7449af73 RD |
1301 | if (!type) { |
1302 | if (!PyErr_Occurred()) { | |
1303 | PyErr_Forma |