• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.5.8/source4/lib/wmi/
1/* ----------------------------------------------------------------------------
2 * This file was automatically generated by SWIG (http://www.swig.org).
3 * Version 1.3.36
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
12#define SWIG_PYTHON_NO_BUILD_NONE
13/* -----------------------------------------------------------------------------
14 *  This section contains generic SWIG labels for method/variable
15 *  declarations/attributes, and other compiler dependent labels.
16 * ----------------------------------------------------------------------------- */
17
18/* template workaround for compilers that cannot correctly implement the C++ standard */
19#ifndef SWIGTEMPLATEDISAMBIGUATOR
20# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
21#  define SWIGTEMPLATEDISAMBIGUATOR template
22# elif defined(__HP_aCC)
23/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
24/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
25#  define SWIGTEMPLATEDISAMBIGUATOR template
26# else
27#  define SWIGTEMPLATEDISAMBIGUATOR
28# endif
29#endif
30
31/* inline attribute */
32#ifndef SWIGINLINE
33# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
34#   define SWIGINLINE inline
35# else
36#   define SWIGINLINE
37# endif
38#endif
39
40/* attribute recognised by some compilers to avoid 'unused' warnings */
41#ifndef SWIGUNUSED
42# if defined(__GNUC__)
43#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
44#     define SWIGUNUSED __attribute__ ((__unused__))
45#   else
46#     define SWIGUNUSED
47#   endif
48# elif defined(__ICC)
49#   define SWIGUNUSED __attribute__ ((__unused__))
50# else
51#   define SWIGUNUSED
52# endif
53#endif
54
55#ifndef SWIG_MSC_UNSUPPRESS_4505
56# if defined(_MSC_VER)
57#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
58# endif
59#endif
60
61#ifndef SWIGUNUSEDPARM
62# ifdef __cplusplus
63#   define SWIGUNUSEDPARM(p)
64# else
65#   define SWIGUNUSEDPARM(p) p SWIGUNUSED
66# endif
67#endif
68
69/* internal SWIG method */
70#ifndef SWIGINTERN
71# define SWIGINTERN static SWIGUNUSED
72#endif
73
74/* internal inline SWIG method */
75#ifndef SWIGINTERNINLINE
76# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
77#endif
78
79/* exporting methods */
80#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
81#  ifndef GCC_HASCLASSVISIBILITY
82#    define GCC_HASCLASSVISIBILITY
83#  endif
84#endif
85
86#ifndef SWIGEXPORT
87# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
88#   if defined(STATIC_LINKED)
89#     define SWIGEXPORT
90#   else
91#     define SWIGEXPORT __declspec(dllexport)
92#   endif
93# else
94#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
95#     define SWIGEXPORT __attribute__ ((visibility("default")))
96#   else
97#     define SWIGEXPORT
98#   endif
99# endif
100#endif
101
102/* calling conventions for Windows */
103#ifndef SWIGSTDCALL
104# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
105#   define SWIGSTDCALL __stdcall
106# else
107#   define SWIGSTDCALL
108# endif
109#endif
110
111/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
112#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
113# define _CRT_SECURE_NO_DEPRECATE
114#endif
115
116/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
117#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
118# define _SCL_SECURE_NO_DEPRECATE
119#endif
120
121
122
123/* Python.h has to appear first */
124#include <Python.h>
125
126/* -----------------------------------------------------------------------------
127 * swigrun.swg
128 *
129 * This file contains generic CAPI SWIG runtime support for pointer
130 * type checking.
131 * ----------------------------------------------------------------------------- */
132
133/* This should only be incremented when either the layout of swig_type_info changes,
134   or for whatever reason, the runtime changes incompatibly */
135#define SWIG_RUNTIME_VERSION "4"
136
137/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
138#ifdef SWIG_TYPE_TABLE
139# define SWIG_QUOTE_STRING(x) #x
140# define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
141# define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
142#else
143# define SWIG_TYPE_TABLE_NAME
144#endif
145
146/*
147  You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
148  creating a static or dynamic library from the swig runtime code.
149  In 99.9% of the cases, swig just needs to declare them as 'static'.
150
151  But only do this if is strictly necessary, ie, if you have problems
152  with your compiler or so.
153*/
154
155#ifndef SWIGRUNTIME
156# define SWIGRUNTIME SWIGINTERN
157#endif
158
159#ifndef SWIGRUNTIMEINLINE
160# define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
161#endif
162
163/*  Generic buffer size */
164#ifndef SWIG_BUFFER_SIZE
165# define SWIG_BUFFER_SIZE 1024
166#endif
167
168/* Flags for pointer conversions */
169#define SWIG_POINTER_DISOWN        0x1
170#define SWIG_CAST_NEW_MEMORY       0x2
171
172/* Flags for new pointer objects */
173#define SWIG_POINTER_OWN           0x1
174
175
176/*
177   Flags/methods for returning states.
178
179   The swig conversion methods, as ConvertPtr, return and integer
180   that tells if the conversion was successful or not. And if not,
181   an error code can be returned (see swigerrors.swg for the codes).
182
183   Use the following macros/flags to set or process the returning
184   states.
185
186   In old swig versions, you usually write code as:
187
188     if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
189       // success code
190     } else {
191       //fail code
192     }
193
194   Now you can be more explicit as:
195
196    int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
197    if (SWIG_IsOK(res)) {
198      // success code
199    } else {
200      // fail code
201    }
202
203   that seems to be the same, but now you can also do
204
205    Type *ptr;
206    int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
207    if (SWIG_IsOK(res)) {
208      // success code
209      if (SWIG_IsNewObj(res) {
210        ...
211	delete *ptr;
212      } else {
213        ...
214      }
215    } else {
216      // fail code
217    }
218
219   I.e., now SWIG_ConvertPtr can return new objects and you can
220   identify the case and take care of the deallocation. Of course that
221   requires also to SWIG_ConvertPtr to return new result values, as
222
223      int SWIG_ConvertPtr(obj, ptr,...) {
224        if (<obj is ok>) {
225          if (<need new object>) {
226            *ptr = <ptr to new allocated object>;
227            return SWIG_NEWOBJ;
228          } else {
229            *ptr = <ptr to old object>;
230            return SWIG_OLDOBJ;
231          }
232        } else {
233          return SWIG_BADOBJ;
234        }
235      }
236
237   Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
238   more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
239   swig errors code.
240
241   Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
242   allows to return the 'cast rank', for example, if you have this
243
244       int food(double)
245       int fooi(int);
246
247   and you call
248
249      food(1)   // cast rank '1'  (1 -> 1.0)
250      fooi(1)   // cast rank '0'
251
252   just use the SWIG_AddCast()/SWIG_CheckState()
253
254
255 */
256#define SWIG_OK                    (0)
257#define SWIG_ERROR                 (-1)
258#define SWIG_IsOK(r)               (r >= 0)
259#define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)
260
261/* The CastRankLimit says how many bits are used for the cast rank */
262#define SWIG_CASTRANKLIMIT         (1 << 8)
263/* The NewMask denotes the object was created (using new/malloc) */
264#define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
265/* The TmpMask is for in/out typemaps that use temporal objects */
266#define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
267/* Simple returning values */
268#define SWIG_BADOBJ                (SWIG_ERROR)
269#define SWIG_OLDOBJ                (SWIG_OK)
270#define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
271#define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
272/* Check, add and del mask methods */
273#define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
274#define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
275#define SWIG_IsNewObj(r)           (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
276#define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
277#define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
278#define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
279
280
281/* Cast-Rank Mode */
282#if defined(SWIG_CASTRANK_MODE)
283#  ifndef SWIG_TypeRank
284#    define SWIG_TypeRank             unsigned long
285#  endif
286#  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
287#    define SWIG_MAXCASTRANK          (2)
288#  endif
289#  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
290#  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
291SWIGINTERNINLINE int SWIG_AddCast(int r) {
292  return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
293}
294SWIGINTERNINLINE int SWIG_CheckState(int r) {
295  return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
296}
297#else /* no cast-rank mode */
298#  define SWIG_AddCast
299#  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
300#endif
301
302
303
304
305#include <string.h>
306
307#ifdef __cplusplus
308extern "C" {
309#endif
310
311typedef void *(*swig_converter_func)(void *, int *);
312typedef struct swig_type_info *(*swig_dycast_func)(void **);
313
314/* Structure to store information on one type */
315typedef struct swig_type_info {
316  const char             *name;			/* mangled name of this type */
317  const char             *str;			/* human readable name of this type */
318  swig_dycast_func        dcast;		/* dynamic cast function down a hierarchy */
319  struct swig_cast_info  *cast;			/* linked list of types that can cast into this type */
320  void                   *clientdata;		/* language specific type data */
321  int                    owndata;		/* flag if the structure owns the clientdata */
322} swig_type_info;
323
324/* Structure to store a type and conversion function used for casting */
325typedef struct swig_cast_info {
326  swig_type_info         *type;			/* pointer to type that is equivalent to this type */
327  swig_converter_func     converter;		/* function to cast the void pointers */
328  struct swig_cast_info  *next;			/* pointer to next cast in linked list */
329  struct swig_cast_info  *prev;			/* pointer to the previous cast */
330} swig_cast_info;
331
332/* Structure used to store module information
333 * Each module generates one structure like this, and the runtime collects
334 * all of these structures and stores them in a circularly linked list.*/
335typedef struct swig_module_info {
336  swig_type_info         **types;		/* Array of pointers to swig_type_info structures that are in this module */
337  size_t                 size;		        /* Number of types in this module */
338  struct swig_module_info *next;		/* Pointer to next element in circularly linked list */
339  swig_type_info         **type_initial;	/* Array of initially generated type structures */
340  swig_cast_info         **cast_initial;	/* Array of initially generated casting structures */
341  void                    *clientdata;		/* Language specific module data */
342} swig_module_info;
343
344/*
345  Compare two type names skipping the space characters, therefore
346  "char*" == "char *" and "Class<int>" == "Class<int >", etc.
347
348  Return 0 when the two name types are equivalent, as in
349  strncmp, but skipping ' '.
350*/
351SWIGRUNTIME int
352SWIG_TypeNameComp(const char *f1, const char *l1,
353		  const char *f2, const char *l2) {
354  for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
355    while ((*f1 == ' ') && (f1 != l1)) ++f1;
356    while ((*f2 == ' ') && (f2 != l2)) ++f2;
357    if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
358  }
359  return (int)((l1 - f1) - (l2 - f2));
360}
361
362/*
363  Check type equivalence in a name list like <name1>|<name2>|...
364  Return 0 if not equal, 1 if equal
365*/
366SWIGRUNTIME int
367SWIG_TypeEquiv(const char *nb, const char *tb) {
368  int equiv = 0;
369  const char* te = tb + strlen(tb);
370  const char* ne = nb;
371  while (!equiv && *ne) {
372    for (nb = ne; *ne; ++ne) {
373      if (*ne == '|') break;
374    }
375    equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
376    if (*ne) ++ne;
377  }
378  return equiv;
379}
380
381/*
382  Check type equivalence in a name list like <name1>|<name2>|...
383  Return 0 if equal, -1 if nb < tb, 1 if nb > tb
384*/
385SWIGRUNTIME int
386SWIG_TypeCompare(const char *nb, const char *tb) {
387  int equiv = 0;
388  const char* te = tb + strlen(tb);
389  const char* ne = nb;
390  while (!equiv && *ne) {
391    for (nb = ne; *ne; ++ne) {
392      if (*ne == '|') break;
393    }
394    equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
395    if (*ne) ++ne;
396  }
397  return equiv;
398}
399
400
401/* think of this as a c++ template<> or a scheme macro */
402#define SWIG_TypeCheck_Template(comparison, ty)         \
403  if (ty) {                                             \
404    swig_cast_info *iter = ty->cast;                    \
405    while (iter) {                                      \
406      if (comparison) {                                 \
407        if (iter == ty->cast) return iter;              \
408        /* Move iter to the top of the linked list */   \
409        iter->prev->next = iter->next;                  \
410        if (iter->next)                                 \
411          iter->next->prev = iter->prev;                \
412        iter->next = ty->cast;                          \
413        iter->prev = 0;                                 \
414        if (ty->cast) ty->cast->prev = iter;            \
415        ty->cast = iter;                                \
416        return iter;                                    \
417      }                                                 \
418      iter = iter->next;                                \
419    }                                                   \
420  }                                                     \
421  return 0
422
423/*
424  Check the typename
425*/
426SWIGRUNTIME swig_cast_info *
427SWIG_TypeCheck(const char *c, swig_type_info *ty) {
428  SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty);
429}
430
431/* Same as previous function, except strcmp is replaced with a pointer comparison */
432SWIGRUNTIME swig_cast_info *
433SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
434  SWIG_TypeCheck_Template(iter->type == from, into);
435}
436
437/*
438  Cast a pointer up an inheritance hierarchy
439*/
440SWIGRUNTIMEINLINE void *
441SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
442  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
443}
444
445/*
446   Dynamic pointer casting. Down an inheritance hierarchy
447*/
448SWIGRUNTIME swig_type_info *
449SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
450  swig_type_info *lastty = ty;
451  if (!ty || !ty->dcast) return ty;
452  while (ty && (ty->dcast)) {
453    ty = (*ty->dcast)(ptr);
454    if (ty) lastty = ty;
455  }
456  return lastty;
457}
458
459/*
460  Return the name associated with this type
461*/
462SWIGRUNTIMEINLINE const char *
463SWIG_TypeName(const swig_type_info *ty) {
464  return ty->name;
465}
466
467/*
468  Return the pretty name associated with this type,
469  that is an unmangled type name in a form presentable to the user.
470*/
471SWIGRUNTIME const char *
472SWIG_TypePrettyName(const swig_type_info *type) {
473  /* The "str" field contains the equivalent pretty names of the
474     type, separated by vertical-bar characters.  We choose
475     to print the last name, as it is often (?) the most
476     specific. */
477  if (!type) return NULL;
478  if (type->str != NULL) {
479    const char *last_name = type->str;
480    const char *s;
481    for (s = type->str; *s; s++)
482      if (*s == '|') last_name = s+1;
483    return last_name;
484  }
485  else
486    return type->name;
487}
488
489/*
490   Set the clientdata field for a type
491*/
492SWIGRUNTIME void
493SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
494  swig_cast_info *cast = ti->cast;
495  /* if (ti->clientdata == clientdata) return; */
496  ti->clientdata = clientdata;
497
498  while (cast) {
499    if (!cast->converter) {
500      swig_type_info *tc = cast->type;
501      if (!tc->clientdata) {
502	SWIG_TypeClientData(tc, clientdata);
503      }
504    }
505    cast = cast->next;
506  }
507}
508SWIGRUNTIME void
509SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
510  SWIG_TypeClientData(ti, clientdata);
511  ti->owndata = 1;
512}
513
514/*
515  Search for a swig_type_info structure only by mangled name
516  Search is a O(log #types)
517
518  We start searching at module start, and finish searching when start == end.
519  Note: if start == end at the beginning of the function, we go all the way around
520  the circular list.
521*/
522SWIGRUNTIME swig_type_info *
523SWIG_MangledTypeQueryModule(swig_module_info *start,
524                            swig_module_info *end,
525		            const char *name) {
526  swig_module_info *iter = start;
527  do {
528    if (iter->size) {
529      register size_t l = 0;
530      register size_t r = iter->size - 1;
531      do {
532	/* since l+r >= 0, we can (>> 1) instead (/ 2) */
533	register size_t i = (l + r) >> 1;
534	const char *iname = iter->types[i]->name;
535	if (iname) {
536	  register int compare = strcmp(name, iname);
537	  if (compare == 0) {
538	    return iter->types[i];
539	  } else if (compare < 0) {
540	    if (i) {
541	      r = i - 1;
542	    } else {
543	      break;
544	    }
545	  } else if (compare > 0) {
546	    l = i + 1;
547	  }
548	} else {
549	  break; /* should never happen */
550	}
551      } while (l <= r);
552    }
553    iter = iter->next;
554  } while (iter != end);
555  return 0;
556}
557
558/*
559  Search for a swig_type_info structure for either a mangled name or a human readable name.
560  It first searches the mangled names of the types, which is a O(log #types)
561  If a type is not found it then searches the human readable names, which is O(#types).
562
563  We start searching at module start, and finish searching when start == end.
564  Note: if start == end at the beginning of the function, we go all the way around
565  the circular list.
566*/
567SWIGRUNTIME swig_type_info *
568SWIG_TypeQueryModule(swig_module_info *start,
569                     swig_module_info *end,
570		     const char *name) {
571  /* STEP 1: Search the name field using binary search */
572  swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
573  if (ret) {
574    return ret;
575  } else {
576    /* STEP 2: If the type hasn't been found, do a complete search
577       of the str field (the human readable name) */
578    swig_module_info *iter = start;
579    do {
580      register size_t i = 0;
581      for (; i < iter->size; ++i) {
582	if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
583	  return iter->types[i];
584      }
585      iter = iter->next;
586    } while (iter != end);
587  }
588
589  /* neither found a match */
590  return 0;
591}
592
593/*
594   Pack binary data into a string
595*/
596SWIGRUNTIME char *
597SWIG_PackData(char *c, void *ptr, size_t sz) {
598  static const char hex[17] = "0123456789abcdef";
599  register const unsigned char *u = (unsigned char *) ptr;
600  register const unsigned char *eu =  u + sz;
601  for (; u != eu; ++u) {
602    register unsigned char uu = *u;
603    *(c++) = hex[(uu & 0xf0) >> 4];
604    *(c++) = hex[uu & 0xf];
605  }
606  return c;
607}
608
609/*
610   Unpack binary data from a string
611*/
612SWIGRUNTIME const char *
613SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
614  register unsigned char *u = (unsigned char *) ptr;
615  register const unsigned char *eu = u + sz;
616  for (; u != eu; ++u) {
617    register char d = *(c++);
618    register unsigned char uu;
619    if ((d >= '0') && (d <= '9'))
620      uu = ((d - '0') << 4);
621    else if ((d >= 'a') && (d <= 'f'))
622      uu = ((d - ('a'-10)) << 4);
623    else
624      return (char *) 0;
625    d = *(c++);
626    if ((d >= '0') && (d <= '9'))
627      uu |= (d - '0');
628    else if ((d >= 'a') && (d <= 'f'))
629      uu |= (d - ('a'-10));
630    else
631      return (char *) 0;
632    *u = uu;
633  }
634  return c;
635}
636
637/*
638   Pack 'void *' into a string buffer.
639*/
640SWIGRUNTIME char *
641SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
642  char *r = buff;
643  if ((2*sizeof(void *) + 2) > bsz) return 0;
644  *(r++) = '_';
645  r = SWIG_PackData(r,&ptr,sizeof(void *));
646  if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
647  strcpy(r,name);
648  return buff;
649}
650
651SWIGRUNTIME const char *
652SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
653  if (*c != '_') {
654    if (strcmp(c,"NULL") == 0) {
655      *ptr = (void *) 0;
656      return name;
657    } else {
658      return 0;
659    }
660  }
661  return SWIG_UnpackData(++c,ptr,sizeof(void *));
662}
663
664SWIGRUNTIME char *
665SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
666  char *r = buff;
667  size_t lname = (name ? strlen(name) : 0);
668  if ((2*sz + 2 + lname) > bsz) return 0;
669  *(r++) = '_';
670  r = SWIG_PackData(r,ptr,sz);
671  if (lname) {
672    strncpy(r,name,lname+1);
673  } else {
674    *r = 0;
675  }
676  return buff;
677}
678
679SWIGRUNTIME const char *
680SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
681  if (*c != '_') {
682    if (strcmp(c,"NULL") == 0) {
683      memset(ptr,0,sz);
684      return name;
685    } else {
686      return 0;
687    }
688  }
689  return SWIG_UnpackData(++c,ptr,sz);
690}
691
692#ifdef __cplusplus
693}
694#endif
695
696/*  Errors in SWIG */
697#define  SWIG_UnknownError    	   -1
698#define  SWIG_IOError        	   -2
699#define  SWIG_RuntimeError   	   -3
700#define  SWIG_IndexError     	   -4
701#define  SWIG_TypeError      	   -5
702#define  SWIG_DivisionByZero 	   -6
703#define  SWIG_OverflowError  	   -7
704#define  SWIG_SyntaxError    	   -8
705#define  SWIG_ValueError     	   -9
706#define  SWIG_SystemError    	   -10
707#define  SWIG_AttributeError 	   -11
708#define  SWIG_MemoryError    	   -12
709#define  SWIG_NullReferenceError   -13
710
711
712
713
714/* Add PyOS_snprintf for old Pythons */
715#if PY_VERSION_HEX < 0x02020000
716# if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM)
717#  define PyOS_snprintf _snprintf
718# else
719#  define PyOS_snprintf snprintf
720# endif
721#endif
722
723/* A crude PyString_FromFormat implementation for old Pythons */
724#if PY_VERSION_HEX < 0x02020000
725
726#ifndef SWIG_PYBUFFER_SIZE
727# define SWIG_PYBUFFER_SIZE 1024
728#endif
729
730static PyObject *
731PyString_FromFormat(const char *fmt, ...) {
732  va_list ap;
733  char buf[SWIG_PYBUFFER_SIZE * 2];
734  int res;
735  va_start(ap, fmt);
736  res = vsnprintf(buf, sizeof(buf), fmt, ap);
737  va_end(ap);
738  return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf);
739}
740#endif
741
742/* Add PyObject_Del for old Pythons */
743#if PY_VERSION_HEX < 0x01060000
744# define PyObject_Del(op) PyMem_DEL((op))
745#endif
746#ifndef PyObject_DEL
747# define PyObject_DEL PyObject_Del
748#endif
749
750/* A crude PyExc_StopIteration exception for old Pythons */
751#if PY_VERSION_HEX < 0x02020000
752# ifndef PyExc_StopIteration
753#  define PyExc_StopIteration PyExc_RuntimeError
754# endif
755# ifndef PyObject_GenericGetAttr
756#  define PyObject_GenericGetAttr 0
757# endif
758#endif
759/* Py_NotImplemented is defined in 2.1 and up. */
760#if PY_VERSION_HEX < 0x02010000
761# ifndef Py_NotImplemented
762#  define Py_NotImplemented PyExc_RuntimeError
763# endif
764#endif
765
766
767/* A crude PyString_AsStringAndSize implementation for old Pythons */
768#if PY_VERSION_HEX < 0x02010000
769# ifndef PyString_AsStringAndSize
770#  define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;}
771# endif
772#endif
773
774/* PySequence_Size for old Pythons */
775#if PY_VERSION_HEX < 0x02000000
776# ifndef PySequence_Size
777#  define PySequence_Size PySequence_Length
778# endif
779#endif
780
781
782/* PyBool_FromLong for old Pythons */
783#if PY_VERSION_HEX < 0x02030000
784static
785PyObject *PyBool_FromLong(long ok)
786{
787  PyObject *result = ok ? Py_True : Py_False;
788  Py_INCREF(result);
789  return result;
790}
791#endif
792
793/* Py_ssize_t for old Pythons */
794/* This code is as recommended by: */
795/* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */
796#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
797typedef int Py_ssize_t;
798# define PY_SSIZE_T_MAX INT_MAX
799# define PY_SSIZE_T_MIN INT_MIN
800#endif
801
802/* -----------------------------------------------------------------------------
803 * error manipulation
804 * ----------------------------------------------------------------------------- */
805
806SWIGRUNTIME PyObject*
807SWIG_Python_ErrorType(int code) {
808  PyObject* type = 0;
809  switch(code) {
810  case SWIG_MemoryError:
811    type = PyExc_MemoryError;
812    break;
813  case SWIG_IOError:
814    type = PyExc_IOError;
815    break;
816  case SWIG_RuntimeError:
817    type = PyExc_RuntimeError;
818    break;
819  case SWIG_IndexError:
820    type = PyExc_IndexError;
821    break;
822  case SWIG_TypeError:
823    type = PyExc_TypeError;
824    break;
825  case SWIG_DivisionByZero:
826    type = PyExc_ZeroDivisionError;
827    break;
828  case SWIG_OverflowError:
829    type = PyExc_OverflowError;
830    break;
831  case SWIG_SyntaxError:
832    type = PyExc_SyntaxError;
833    break;
834  case SWIG_ValueError:
835    type = PyExc_ValueError;
836    break;
837  case SWIG_SystemError:
838    type = PyExc_SystemError;
839    break;
840  case SWIG_AttributeError:
841    type = PyExc_AttributeError;
842    break;
843  default:
844    type = PyExc_RuntimeError;
845  }
846  return type;
847}
848
849
850SWIGRUNTIME void
851SWIG_Python_AddErrorMsg(const char* mesg)
852{
853  PyObject *type = 0;
854  PyObject *value = 0;
855  PyObject *traceback = 0;
856
857  if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback);
858  if (value) {
859    PyObject *old_str = PyObject_Str(value);
860    PyErr_Clear();
861    Py_XINCREF(type);
862    PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg);
863    Py_DECREF(old_str);
864    Py_DECREF(value);
865  } else {
866    PyErr_SetString(PyExc_RuntimeError, mesg);
867  }
868}
869
870
871
872#if defined(SWIG_PYTHON_NO_THREADS)
873#  if defined(SWIG_PYTHON_THREADS)
874#    undef SWIG_PYTHON_THREADS
875#  endif
876#endif
877#if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */
878#  if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL)
879#    if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */
880#      define SWIG_PYTHON_USE_GIL
881#    endif
882#  endif
883#  if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */
884#    ifndef SWIG_PYTHON_INITIALIZE_THREADS
885#     define SWIG_PYTHON_INITIALIZE_THREADS  PyEval_InitThreads()
886#    endif
887#    ifdef __cplusplus /* C++ code */
888       class SWIG_Python_Thread_Block {
889         bool status;
890         PyGILState_STATE state;
891       public:
892         void end() { if (status) { PyGILState_Release(state); status = false;} }
893         SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {}
894         ~SWIG_Python_Thread_Block() { end(); }
895       };
896       class SWIG_Python_Thread_Allow {
897         bool status;
898         PyThreadState *save;
899       public:
900         void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
901         SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
902         ~SWIG_Python_Thread_Allow() { end(); }
903       };
904#      define SWIG_PYTHON_THREAD_BEGIN_BLOCK   SWIG_Python_Thread_Block _swig_thread_block
905#      define SWIG_PYTHON_THREAD_END_BLOCK     _swig_thread_block.end()
906#      define SWIG_PYTHON_THREAD_BEGIN_ALLOW   SWIG_Python_Thread_Allow _swig_thread_allow
907#      define SWIG_PYTHON_THREAD_END_ALLOW     _swig_thread_allow.end()
908#    else /* C code */
909#      define SWIG_PYTHON_THREAD_BEGIN_BLOCK   PyGILState_STATE _swig_thread_block = PyGILState_Ensure()
910#      define SWIG_PYTHON_THREAD_END_BLOCK     PyGILState_Release(_swig_thread_block)
911#      define SWIG_PYTHON_THREAD_BEGIN_ALLOW   PyThreadState *_swig_thread_allow = PyEval_SaveThread()
912#      define SWIG_PYTHON_THREAD_END_ALLOW     PyEval_RestoreThread(_swig_thread_allow)
913#    endif
914#  else /* Old thread way, not implemented, user must provide it */
915#    if !defined(SWIG_PYTHON_INITIALIZE_THREADS)
916#      define SWIG_PYTHON_INITIALIZE_THREADS
917#    endif
918#    if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK)
919#      define SWIG_PYTHON_THREAD_BEGIN_BLOCK
920#    endif
921#    if !defined(SWIG_PYTHON_THREAD_END_BLOCK)
922#      define SWIG_PYTHON_THREAD_END_BLOCK
923#    endif
924#    if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW)
925#      define SWIG_PYTHON_THREAD_BEGIN_ALLOW
926#    endif
927#    if !defined(SWIG_PYTHON_THREAD_END_ALLOW)
928#      define SWIG_PYTHON_THREAD_END_ALLOW
929#    endif
930#  endif
931#else /* No thread support */
932#  define SWIG_PYTHON_INITIALIZE_THREADS
933#  define SWIG_PYTHON_THREAD_BEGIN_BLOCK
934#  define SWIG_PYTHON_THREAD_END_BLOCK
935#  define SWIG_PYTHON_THREAD_BEGIN_ALLOW
936#  define SWIG_PYTHON_THREAD_END_ALLOW
937#endif
938
939/* -----------------------------------------------------------------------------
940 * Python API portion that goes into the runtime
941 * ----------------------------------------------------------------------------- */
942
943#ifdef __cplusplus
944extern "C" {
945#if 0
946} /* cc-mode */
947#endif
948#endif
949
950/* -----------------------------------------------------------------------------
951 * Constant declarations
952 * ----------------------------------------------------------------------------- */
953
954/* Constant Types */
955#define SWIG_PY_POINTER 4
956#define SWIG_PY_BINARY  5
957
958/* Constant information structure */
959typedef struct swig_const_info {
960  int type;
961  char *name;
962  long lvalue;
963  double dvalue;
964  void   *pvalue;
965  swig_type_info **ptype;
966} swig_const_info;
967
968#ifdef __cplusplus
969#if 0
970{ /* cc-mode */
971#endif
972}
973#endif
974
975
976/* -----------------------------------------------------------------------------
977 * See the LICENSE file for information on copyright, usage and redistribution
978 * of SWIG, and the README file for authors - http://www.swig.org/release.html.
979 *
980 * pyrun.swg
981 *
982 * This file contains the runtime support for Python modules
983 * and includes code for managing global variables and pointer
984 * type checking.
985 *
986 * ----------------------------------------------------------------------------- */
987
988/* Common SWIG API */
989
990/* for raw pointers */
991#define SWIG_Python_ConvertPtr(obj, pptr, type, flags)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
992#define SWIG_ConvertPtr(obj, pptr, type, flags)         SWIG_Python_ConvertPtr(obj, pptr, type, flags)
993#define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)
994#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(ptr, type, flags)
995#define SWIG_CheckImplicit(ty)                          SWIG_Python_CheckImplicit(ty)
996#define SWIG_AcquirePtr(ptr, src)                       SWIG_Python_AcquirePtr(ptr, src)
997#define swig_owntype                                    int
998
999/* for raw packed data */
1000#define SWIG_ConvertPacked(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
1001#define SWIG_NewPackedObj(ptr, sz, type)                SWIG_Python_NewPackedObj(ptr, sz, type)
1002
1003/* for class or struct pointers */
1004#define SWIG_ConvertInstance(obj, pptr, type, flags)    SWIG_ConvertPtr(obj, pptr, type, flags)
1005#define SWIG_NewInstanceObj(ptr, type, flags)           SWIG_NewPointerObj(ptr, type, flags)
1006
1007/* for C or C++ function pointers */
1008#define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_Python_ConvertFunctionPtr(obj, pptr, type)
1009#define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_Python_NewPointerObj(ptr, type, 0)
1010
1011/* for C++ member pointers, ie, member methods */
1012#define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
1013#define SWIG_NewMemberObj(ptr, sz, type)                SWIG_Python_NewPackedObj(ptr, sz, type)
1014
1015
1016/* Runtime API */
1017
1018#define SWIG_GetModule(clientdata)                      SWIG_Python_GetModule()
1019#define SWIG_SetModule(clientdata, pointer)             SWIG_Python_SetModule(pointer)
1020#define SWIG_NewClientData(obj)                         PySwigClientData_New(obj)
1021
1022#define SWIG_SetErrorObj                                SWIG_Python_SetErrorObj
1023#define SWIG_SetErrorMsg                        	SWIG_Python_SetErrorMsg
1024#define SWIG_ErrorType(code)                    	SWIG_Python_ErrorType(code)
1025#define SWIG_Error(code, msg)            		SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg)
1026#define SWIG_fail                        		goto fail
1027
1028
1029/* Runtime API implementation */
1030
1031/* Error manipulation */
1032
1033SWIGINTERN void
1034SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
1035  SWIG_PYTHON_THREAD_BEGIN_BLOCK;
1036  PyErr_SetObject(errtype, obj);
1037  Py_DECREF(obj);
1038  SWIG_PYTHON_THREAD_END_BLOCK;
1039}
1040
1041SWIGINTERN void
1042SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
1043  SWIG_PYTHON_THREAD_BEGIN_BLOCK;
1044  PyErr_SetString(errtype, (char *) msg);
1045  SWIG_PYTHON_THREAD_END_BLOCK;
1046}
1047
1048#define SWIG_Python_Raise(obj, type, desc)  SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj)
1049
1050/* Set a constant value */
1051
1052SWIGINTERN void
1053SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {
1054  PyDict_SetItemString(d, (char*) name, obj);
1055  Py_DECREF(obj);
1056}
1057
1058/* Append a value to the result obj */
1059
1060SWIGINTERN PyObject*
1061SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
1062#if !defined(SWIG_PYTHON_OUTPUT_TUPLE)
1063  if (!result) {
1064    result = obj;
1065  } else if (result == Py_None) {
1066    Py_DECREF(result);
1067    result = obj;
1068  } else {
1069    if (!PyList_Check(result)) {
1070      PyObject *o2 = result;
1071      result = PyList_New(1);
1072      PyList_SetItem(result, 0, o2);
1073    }
1074    PyList_Append(result,obj);
1075    Py_DECREF(obj);
1076  }
1077  return result;
1078#else
1079  PyObject*   o2;
1080  PyObject*   o3;
1081  if (!result) {
1082    result = obj;
1083  } else if (result == Py_None) {
1084    Py_DECREF(result);
1085    result = obj;
1086  } else {
1087    if (!PyTuple_Check(result)) {
1088      o2 = result;
1089      result = PyTuple_New(1);
1090      PyTuple_SET_ITEM(result, 0, o2);
1091    }
1092    o3 = PyTuple_New(1);
1093    PyTuple_SET_ITEM(o3, 0, obj);
1094    o2 = result;
1095    result = PySequence_Concat(o2, o3);
1096    Py_DECREF(o2);
1097    Py_DECREF(o3);
1098  }
1099  return result;
1100#endif
1101}
1102
1103/* Unpack the argument tuple */
1104
1105SWIGINTERN int
1106SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
1107{
1108  if (!args) {
1109    if (!min && !max) {
1110      return 1;
1111    } else {
1112      PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none",
1113		   name, (min == max ? "" : "at least "), (int)min);
1114      return 0;
1115    }
1116  }
1117  if (!PyTuple_Check(args)) {
1118    PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
1119    return 0;
1120  } else {
1121    register Py_ssize_t l = PyTuple_GET_SIZE(args);
1122    if (l < min) {
1123      PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
1124		   name, (min == max ? "" : "at least "), (int)min, (int)l);
1125      return 0;
1126    } else if (l > max) {
1127      PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d",
1128		   name, (min == max ? "" : "at most "), (int)max, (int)l);
1129      return 0;
1130    } else {
1131      register int i;
1132      for (i = 0; i < l; ++i) {
1133	objs[i] = PyTuple_GET_ITEM(args, i);
1134      }
1135      for (; l < max; ++l) {
1136	objs[l] = 0;
1137      }
1138      return i + 1;
1139    }
1140  }
1141}
1142
1143/* A functor is a function object with one single object argument */
1144#if PY_VERSION_HEX >= 0x02020000
1145#define SWIG_Python_CallFunctor(functor, obj)	        PyObject_CallFunctionObjArgs(functor, obj, NULL);
1146#else
1147#define SWIG_Python_CallFunctor(functor, obj)	        PyObject_CallFunction(functor, "O", obj);
1148#endif
1149
1150/*
1151  Helper for static pointer initialization for both C and C++ code, for example
1152  static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...);
1153*/
1154#ifdef __cplusplus
1155#define SWIG_STATIC_POINTER(var)  var
1156#else
1157#define SWIG_STATIC_POINTER(var)  var = 0; if (!var) var
1158#endif
1159
1160/* -----------------------------------------------------------------------------
1161 * Pointer declarations
1162 * ----------------------------------------------------------------------------- */
1163
1164/* Flags for new pointer objects */
1165#define SWIG_POINTER_NOSHADOW       (SWIG_POINTER_OWN      << 1)
1166#define SWIG_POINTER_NEW            (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN)
1167
1168#define SWIG_POINTER_IMPLICIT_CONV  (SWIG_POINTER_DISOWN   << 1)
1169
1170#ifdef __cplusplus
1171extern "C" {
1172#if 0
1173} /* cc-mode */
1174#endif
1175#endif
1176
1177/*  How to access Py_None */
1178#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
1179#  ifndef SWIG_PYTHON_NO_BUILD_NONE
1180#    ifndef SWIG_PYTHON_BUILD_NONE
1181#      define SWIG_PYTHON_BUILD_NONE
1182#    endif
1183#  endif
1184#endif
1185
1186#ifdef SWIG_PYTHON_BUILD_NONE
1187#  ifdef Py_None
1188#   undef Py_None
1189#   define Py_None SWIG_Py_None()
1190#  endif
1191SWIGRUNTIMEINLINE PyObject *
1192_SWIG_Py_None(void)
1193{
1194  PyObject *none = Py_BuildValue((char*)"");
1195  Py_DECREF(none);
1196  return none;
1197}
1198SWIGRUNTIME PyObject *
1199SWIG_Py_None(void)
1200{
1201  static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None();
1202  return none;
1203}
1204#endif
1205
1206/* The python void return value */
1207
1208SWIGRUNTIMEINLINE PyObject *
1209SWIG_Py_Void(void)
1210{
1211  PyObject *none = Py_None;
1212  Py_INCREF(none);
1213  return none;
1214}
1215
1216/* PySwigClientData */
1217
1218typedef struct {
1219  PyObject *klass;
1220  PyObject *newraw;
1221  PyObject *newargs;
1222  PyObject *destroy;
1223  int delargs;
1224  int implicitconv;
1225} PySwigClientData;
1226
1227SWIGRUNTIMEINLINE int
1228SWIG_Python_CheckImplicit(swig_type_info *ty)
1229{
1230  PySwigClientData *data = (PySwigClientData *)ty->clientdata;
1231  return data ? data->implicitconv : 0;
1232}
1233
1234SWIGRUNTIMEINLINE PyObject *
1235SWIG_Python_ExceptionType(swig_type_info *desc) {
1236  PySwigClientData *data = desc ? (PySwigClientData *) desc->clientdata : 0;
1237  PyObject *klass = data ? data->klass : 0;
1238  return (klass ? klass : PyExc_RuntimeError);
1239}
1240
1241
1242SWIGRUNTIME PySwigClientData *
1243PySwigClientData_New(PyObject* obj)
1244{
1245  if (!obj) {
1246    return 0;
1247  } else {
1248    PySwigClientData *data = (PySwigClientData *)malloc(sizeof(PySwigClientData));
1249    /* the klass element */
1250    data->klass = obj;
1251    Py_INCREF(data->klass);
1252    /* the newraw method and newargs arguments used to create a new raw instance */
1253    if (PyClass_Check(obj)) {
1254      data->newraw = 0;
1255      data->newargs = obj;
1256      Py_INCREF(obj);
1257    } else {
1258#if (PY_VERSION_HEX < 0x02020000)
1259      data->newraw = 0;
1260#else
1261      data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__");
1262#endif
1263      if (data->newraw) {
1264	Py_INCREF(data->newraw);
1265	data->newargs = PyTuple_New(1);
1266	PyTuple_SetItem(data->newargs, 0, obj);
1267      } else {
1268	data->newargs = obj;
1269      }
1270      Py_INCREF(data->newargs);
1271    }
1272    /* the destroy method, aka as the C++ delete method */
1273    data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__");
1274    if (PyErr_Occurred()) {
1275      PyErr_Clear();
1276      data->destroy = 0;
1277    }
1278    if (data->destroy) {
1279      int flags;
1280      Py_INCREF(data->destroy);
1281      flags = PyCFunction_GET_FLAGS(data->destroy);
1282#ifdef METH_O
1283      data->delargs = !(flags & (METH_O));
1284#else
1285      data->delargs = 0;
1286#endif
1287    } else {
1288      data->delargs = 0;
1289    }
1290    data->implicitconv = 0;
1291    return data;
1292  }
1293}
1294
1295SWIGRUNTIME void
1296PySwigClientData_Del(PySwigClientData* data)
1297{
1298  Py_XDECREF(data->newraw);
1299  Py_XDECREF(data->newargs);
1300  Py_XDECREF(data->destroy);
1301}
1302
1303/* =============== PySwigObject =====================*/
1304
1305typedef struct {
1306  PyObject_HEAD
1307  void *ptr;
1308  swig_type_info *ty;
1309  int own;
1310  PyObject *next;
1311} PySwigObject;
1312
1313SWIGRUNTIME PyObject *
1314PySwigObject_long(PySwigObject *v)
1315{
1316  return PyLong_FromVoidPtr(v->ptr);
1317}
1318
1319SWIGRUNTIME PyObject *
1320PySwigObject_format(const char* fmt, PySwigObject *v)
1321{
1322  PyObject *res = NULL;
1323  PyObject *args = PyTuple_New(1);
1324  if (args) {
1325    if (PyTuple_SetItem(args, 0, PySwigObject_long(v)) == 0) {
1326      PyObject *ofmt = PyString_FromString(fmt);
1327      if (ofmt) {
1328	res = PyString_Format(ofmt,args);
1329	Py_DECREF(ofmt);
1330      }
1331      Py_DECREF(args);
1332    }
1333  }
1334  return res;
1335}
1336
1337SWIGRUNTIME PyObject *
1338PySwigObject_oct(PySwigObject *v)
1339{
1340  return PySwigObject_format("%o",v);
1341}
1342
1343SWIGRUNTIME PyObject *
1344PySwigObject_hex(PySwigObject *v)
1345{
1346  return PySwigObject_format("%x",v);
1347}
1348
1349SWIGRUNTIME PyObject *
1350#ifdef METH_NOARGS
1351PySwigObject_repr(PySwigObject *v)
1352#else
1353PySwigObject_repr(PySwigObject *v, PyObject *args)
1354#endif
1355{
1356  const char *name = SWIG_TypePrettyName(v->ty);
1357  PyObject *hex = PySwigObject_hex(v);
1358  PyObject *repr = PyString_FromFormat("<Swig Object of type '%s' at 0x%s>", name, PyString_AsString(hex));
1359  Py_DECREF(hex);
1360  if (v->next) {
1361#ifdef METH_NOARGS
1362    PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next);
1363#else
1364    PyObject *nrep = PySwigObject_repr((PySwigObject *)v->next, args);
1365#endif
1366    PyString_ConcatAndDel(&repr,nrep);
1367  }
1368  return repr;
1369}
1370
1371SWIGRUNTIME int
1372PySwigObject_print(PySwigObject *v, FILE *fp, int SWIGUNUSEDPARM(flags))
1373{
1374#ifdef METH_NOARGS
1375  PyObject *repr = PySwigObject_repr(v);
1376#else
1377  PyObject *repr = PySwigObject_repr(v, NULL);
1378#endif
1379  if (repr) {
1380    fputs(PyString_AsString(repr), fp);
1381    Py_DECREF(repr);
1382    return 0;
1383  } else {
1384    return 1;
1385  }
1386}
1387
1388SWIGRUNTIME PyObject *
1389PySwigObject_str(PySwigObject *v)
1390{
1391  char result[SWIG_BUFFER_SIZE];
1392  return SWIG_PackVoidPtr(result, v->ptr, v->ty->name, sizeof(result)) ?
1393    PyString_FromString(result) : 0;
1394}
1395
1396SWIGRUNTIME int
1397PySwigObject_compare(PySwigObject *v, PySwigObject *w)
1398{
1399  void *i = v->ptr;
1400  void *j = w->ptr;
1401  return (i < j) ? -1 : ((i > j) ? 1 : 0);
1402}
1403
1404SWIGRUNTIME PyTypeObject* _PySwigObject_type(void);
1405
1406SWIGRUNTIME PyTypeObject*
1407PySwigObject_type(void) {
1408  static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type();
1409  return type;
1410}
1411
1412SWIGRUNTIMEINLINE int
1413PySwigObject_Check(PyObject *op) {
1414  return ((op)->ob_type == PySwigObject_type())
1415    || (strcmp((op)->ob_type->tp_name,"PySwigObject") == 0);
1416}
1417
1418SWIGRUNTIME PyObject *
1419PySwigObject_New(void *ptr, swig_type_info *ty, int own);
1420
1421SWIGRUNTIME void
1422PySwigObject_dealloc(PyObject *v)
1423{
1424  PySwigObject *sobj = (PySwigObject *) v;
1425  PyObject *next = sobj->next;
1426  if (sobj->own == SWIG_POINTER_OWN) {
1427    swig_type_info *ty = sobj->ty;
1428    PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
1429    PyObject *destroy = data ? data->destroy : 0;
1430    if (destroy) {
1431      /* destroy is always a VARARGS method */
1432      PyObject *res;
1433      if (data->delargs) {
1434	/* we need to create a temporal object to carry the destroy operation */
1435	PyObject *tmp = PySwigObject_New(sobj->ptr, ty, 0);
1436	res = SWIG_Python_CallFunctor(destroy, tmp);
1437	Py_DECREF(tmp);
1438      } else {
1439	PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
1440	PyObject *mself = PyCFunction_GET_SELF(destroy);
1441	res = ((*meth)(mself, v));
1442      }
1443      Py_XDECREF(res);
1444    }
1445#if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
1446    else {
1447      const char *name = SWIG_TypePrettyName(ty);
1448      printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
1449    }
1450#endif
1451  }
1452  Py_XDECREF(next);
1453  PyObject_DEL(v);
1454}
1455
1456SWIGRUNTIME PyObject*
1457PySwigObject_append(PyObject* v, PyObject* next)
1458{
1459  PySwigObject *sobj = (PySwigObject *) v;
1460#ifndef METH_O
1461  PyObject *tmp = 0;
1462  if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL;
1463  next = tmp;
1464#endif
1465  if (!PySwigObject_Check(next)) {
1466    return NULL;
1467  }
1468  sobj->next = next;
1469  Py_INCREF(next);
1470  return SWIG_Py_Void();
1471}
1472
1473SWIGRUNTIME PyObject*
1474#ifdef METH_NOARGS
1475PySwigObject_next(PyObject* v)
1476#else
1477PySwigObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1478#endif
1479{
1480  PySwigObject *sobj = (PySwigObject *) v;
1481  if (sobj->next) {
1482    Py_INCREF(sobj->next);
1483    return sobj->next;
1484  } else {
1485    return SWIG_Py_Void();
1486  }
1487}
1488
1489SWIGINTERN PyObject*
1490#ifdef METH_NOARGS
1491PySwigObject_disown(PyObject *v)
1492#else
1493PySwigObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1494#endif
1495{
1496  PySwigObject *sobj = (PySwigObject *)v;
1497  sobj->own = 0;
1498  return SWIG_Py_Void();
1499}
1500
1501SWIGINTERN PyObject*
1502#ifdef METH_NOARGS
1503PySwigObject_acquire(PyObject *v)
1504#else
1505PySwigObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
1506#endif
1507{
1508  PySwigObject *sobj = (PySwigObject *)v;
1509  sobj->own = SWIG_POINTER_OWN;
1510  return SWIG_Py_Void();
1511}
1512
1513SWIGINTERN PyObject*
1514PySwigObject_own(PyObject *v, PyObject *args)
1515{
1516  PyObject *val = 0;
1517#if (PY_VERSION_HEX < 0x02020000)
1518  if (!PyArg_ParseTuple(args,(char *)"|O:own",&val))
1519#else
1520  if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val))
1521#endif
1522    {
1523      return NULL;
1524    }
1525  else
1526    {
1527      PySwigObject *sobj = (PySwigObject *)v;
1528      PyObject *obj = PyBool_FromLong(sobj->own);
1529      if (val) {
1530#ifdef METH_NOARGS
1531	if (PyObject_IsTrue(val)) {
1532	  PySwigObject_acquire(v);
1533	} else {
1534	  PySwigObject_disown(v);
1535	}
1536#else
1537	if (PyObject_IsTrue(val)) {
1538	  PySwigObject_acquire(v,args);
1539	} else {
1540	  PySwigObject_disown(v,args);
1541	}
1542#endif
1543      }
1544      return obj;
1545    }
1546}
1547
1548#ifdef METH_O
1549static PyMethodDef
1550swigobject_methods[] = {
1551  {(char *)"disown",  (PyCFunction)PySwigObject_disown,  METH_NOARGS,  (char *)"releases ownership of the pointer"},
1552  {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_NOARGS,  (char *)"aquires ownership of the pointer"},
1553  {(char *)"own",     (PyCFunction)PySwigObject_own,     METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
1554  {(char *)"append",  (PyCFunction)PySwigObject_append,  METH_O,       (char *)"appends another 'this' object"},
1555  {(char *)"next",    (PyCFunction)PySwigObject_next,    METH_NOARGS,  (char *)"returns the next 'this' object"},
1556  {(char *)"__repr__",(PyCFunction)PySwigObject_repr,    METH_NOARGS,  (char *)"returns object representation"},
1557  {0, 0, 0, 0}
1558};
1559#else
1560static PyMethodDef
1561swigobject_methods[] = {
1562  {(char *)"disown",  (PyCFunction)PySwigObject_disown,  METH_VARARGS,  (char *)"releases ownership of the pointer"},
1563  {(char *)"acquire", (PyCFunction)PySwigObject_acquire, METH_VARARGS,  (char *)"aquires ownership of the pointer"},
1564  {(char *)"own",     (PyCFunction)PySwigObject_own,     METH_VARARGS,  (char *)"returns/sets ownership of the pointer"},
1565  {(char *)"append",  (PyCFunction)PySwigObject_append,  METH_VARARGS,  (char *)"appends another 'this' object"},
1566  {(char *)"next",    (PyCFunction)PySwigObject_next,    METH_VARARGS,  (char *)"returns the next 'this' object"},
1567  {(char *)"__repr__",(PyCFunction)PySwigObject_repr,   METH_VARARGS,  (char *)"returns object representation"},
1568  {0, 0, 0, 0}
1569};
1570#endif
1571
1572#if PY_VERSION_HEX < 0x02020000
1573SWIGINTERN PyObject *
1574PySwigObject_getattr(PySwigObject *sobj,char *name)
1575{
1576  return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name);
1577}
1578#endif
1579
1580SWIGRUNTIME PyTypeObject*
1581_PySwigObject_type(void) {
1582  static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
1583
1584  static PyNumberMethods PySwigObject_as_number = {
1585    (binaryfunc)0, /*nb_add*/
1586    (binaryfunc)0, /*nb_subtract*/
1587    (binaryfunc)0, /*nb_multiply*/
1588    (binaryfunc)0, /*nb_divide*/
1589    (binaryfunc)0, /*nb_remainder*/
1590    (binaryfunc)0, /*nb_divmod*/
1591    (ternaryfunc)0,/*nb_power*/
1592    (unaryfunc)0,  /*nb_negative*/
1593    (unaryfunc)0,  /*nb_positive*/
1594    (unaryfunc)0,  /*nb_absolute*/
1595    (inquiry)0,    /*nb_nonzero*/
1596    0,		   /*nb_invert*/
1597    0,		   /*nb_lshift*/
1598    0,		   /*nb_rshift*/
1599    0,		   /*nb_and*/
1600    0,		   /*nb_xor*/
1601    0,		   /*nb_or*/
1602    (coercion)0,   /*nb_coerce*/
1603    (unaryfunc)PySwigObject_long, /*nb_int*/
1604    (unaryfunc)PySwigObject_long, /*nb_long*/
1605    (unaryfunc)0,                 /*nb_float*/
1606    (unaryfunc)PySwigObject_oct,  /*nb_oct*/
1607    (unaryfunc)PySwigObject_hex,  /*nb_hex*/
1608#if PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
1609    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
1610#elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */
1611    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
1612#elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */
1613    0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
1614#endif
1615  };
1616
1617  static PyTypeObject pyswigobject_type;
1618  static int type_init = 0;
1619  if (!type_init) {
1620    const PyTypeObject tmp
1621      = {
1622	PyObject_HEAD_INIT(NULL)
1623	0,				    /* ob_size */
1624	(char *)"PySwigObject",		    /* tp_name */
1625	sizeof(PySwigObject),		    /* tp_basicsize */
1626	0,			            /* tp_itemsize */
1627	(destructor)PySwigObject_dealloc,   /* tp_dealloc */
1628	(printfunc)PySwigObject_print,	    /* tp_print */
1629#if PY_VERSION_HEX < 0x02020000
1630	(getattrfunc)PySwigObject_getattr,  /* tp_getattr */
1631#else
1632	(getattrfunc)0,			    /* tp_getattr */
1633#endif
1634	(setattrfunc)0,			    /* tp_setattr */
1635	(cmpfunc)PySwigObject_compare,	    /* tp_compare */
1636	(reprfunc)PySwigObject_repr,	    /* tp_repr */
1637	&PySwigObject_as_number,	    /* tp_as_number */
1638	0,				    /* tp_as_sequence */
1639	0,				    /* tp_as_mapping */
1640	(hashfunc)0,			    /* tp_hash */
1641	(ternaryfunc)0,			    /* tp_call */
1642	(reprfunc)PySwigObject_str,	    /* tp_str */
1643	PyObject_GenericGetAttr,            /* tp_getattro */
1644	0,				    /* tp_setattro */
1645	0,		                    /* tp_as_buffer */
1646	Py_TPFLAGS_DEFAULT,	            /* tp_flags */
1647	swigobject_doc, 	            /* tp_doc */
1648	0,                                  /* tp_traverse */
1649	0,                                  /* tp_clear */
1650	0,                                  /* tp_richcompare */
1651	0,                                  /* tp_weaklistoffset */
1652#if PY_VERSION_HEX >= 0x02020000
1653	0,                                  /* tp_iter */
1654	0,                                  /* tp_iternext */
1655	swigobject_methods,		    /* tp_methods */
1656	0,			            /* tp_members */
1657	0,				    /* tp_getset */
1658	0,			            /* tp_base */
1659	0,				    /* tp_dict */
1660	0,				    /* tp_descr_get */
1661	0,				    /* tp_descr_set */
1662	0,				    /* tp_dictoffset */
1663	0,				    /* tp_init */
1664	0,				    /* tp_alloc */
1665	0,			            /* tp_new */
1666	0,	                            /* tp_free */
1667        0,                                  /* tp_is_gc */
1668	0,				    /* tp_bases */
1669	0,				    /* tp_mro */
1670	0,				    /* tp_cache */
1671 	0,				    /* tp_subclasses */
1672	0,				    /* tp_weaklist */
1673#endif
1674#if PY_VERSION_HEX >= 0x02030000
1675	0,                                  /* tp_del */
1676#endif
1677#ifdef COUNT_ALLOCS
1678	0,0,0,0                             /* tp_alloc -> tp_next */
1679#endif
1680      };
1681    pyswigobject_type = tmp;
1682    pyswigobject_type.ob_type = &PyType_Type;
1683    type_init = 1;
1684  }
1685  return &pyswigobject_type;
1686}
1687
1688SWIGRUNTIME PyObject *
1689PySwigObject_New(void *ptr, swig_type_info *ty, int own)
1690{
1691  PySwigObject *sobj = PyObject_NEW(PySwigObject, PySwigObject_type());
1692  if (sobj) {
1693    sobj->ptr  = ptr;
1694    sobj->ty   = ty;
1695    sobj->own  = own;
1696    sobj->next = 0;
1697  }
1698  return (PyObject *)sobj;
1699}
1700
1701/* -----------------------------------------------------------------------------
1702 * Implements a simple Swig Packed type, and use it instead of string
1703 * ----------------------------------------------------------------------------- */
1704
1705typedef struct {
1706  PyObject_HEAD
1707  void *pack;
1708  swig_type_info *ty;
1709  size_t size;
1710} PySwigPacked;
1711
1712SWIGRUNTIME int
1713PySwigPacked_print(PySwigPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags))
1714{
1715  char result[SWIG_BUFFER_SIZE];
1716  fputs("<Swig Packed ", fp);
1717  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
1718    fputs("at ", fp);
1719    fputs(result, fp);
1720  }
1721  fputs(v->ty->name,fp);
1722  fputs(">", fp);
1723  return 0;
1724}
1725
1726SWIGRUNTIME PyObject *
1727PySwigPacked_repr(PySwigPacked *v)
1728{
1729  char result[SWIG_BUFFER_SIZE];
1730  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
1731    return PyString_FromFormat("<Swig Packed at %s%s>", result, v->ty->name);
1732  } else {
1733    return PyString_FromFormat("<Swig Packed %s>", v->ty->name);
1734  }
1735}
1736
1737SWIGRUNTIME PyObject *
1738PySwigPacked_str(PySwigPacked *v)
1739{
1740  char result[SWIG_BUFFER_SIZE];
1741  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){
1742    return PyString_FromFormat("%s%s", result, v->ty->name);
1743  } else {
1744    return PyString_FromString(v->ty->name);
1745  }
1746}
1747
1748SWIGRUNTIME int
1749PySwigPacked_compare(PySwigPacked *v, PySwigPacked *w)
1750{
1751  size_t i = v->size;
1752  size_t j = w->size;
1753  int s = (i < j) ? -1 : ((i > j) ? 1 : 0);
1754  return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size);
1755}
1756
1757SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void);
1758
1759SWIGRUNTIME PyTypeObject*
1760PySwigPacked_type(void) {
1761  static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type();
1762  return type;
1763}
1764
1765SWIGRUNTIMEINLINE int
1766PySwigPacked_Check(PyObject *op) {
1767  return ((op)->ob_type == _PySwigPacked_type())
1768    || (strcmp((op)->ob_type->tp_name,"PySwigPacked") == 0);
1769}
1770
1771SWIGRUNTIME void
1772PySwigPacked_dealloc(PyObject *v)
1773{
1774  if (PySwigPacked_Check(v)) {
1775    PySwigPacked *sobj = (PySwigPacked *) v;
1776    free(sobj->pack);
1777  }
1778  PyObject_DEL(v);
1779}
1780
1781SWIGRUNTIME PyTypeObject*
1782_PySwigPacked_type(void) {
1783  static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
1784  static PyTypeObject pyswigpacked_type;
1785  static int type_init = 0;
1786  if (!type_init) {
1787    const PyTypeObject tmp
1788      = {
1789	PyObject_HEAD_INIT(NULL)
1790	0,				    /* ob_size */
1791	(char *)"PySwigPacked",		    /* tp_name */
1792	sizeof(PySwigPacked),		    /* tp_basicsize */
1793	0,				    /* tp_itemsize */
1794	(destructor)PySwigPacked_dealloc,   /* tp_dealloc */
1795	(printfunc)PySwigPacked_print,	    /* tp_print */
1796	(getattrfunc)0,			    /* tp_getattr */
1797	(setattrfunc)0,			    /* tp_setattr */
1798	(cmpfunc)PySwigPacked_compare,	    /* tp_compare */
1799	(reprfunc)PySwigPacked_repr,	    /* tp_repr */
1800	0,	                            /* tp_as_number */
1801	0,				    /* tp_as_sequence */
1802	0,				    /* tp_as_mapping */
1803	(hashfunc)0,			    /* tp_hash */
1804	(ternaryfunc)0,			    /* tp_call */
1805	(reprfunc)PySwigPacked_str,	    /* tp_str */
1806	PyObject_GenericGetAttr,            /* tp_getattro */
1807	0,				    /* tp_setattro */
1808	0,		                    /* tp_as_buffer */
1809	Py_TPFLAGS_DEFAULT,	            /* tp_flags */
1810	swigpacked_doc, 	            /* tp_doc */
1811	0,                                  /* tp_traverse */
1812	0,                                  /* tp_clear */
1813	0,                                  /* tp_richcompare */
1814	0,                                  /* tp_weaklistoffset */
1815#if PY_VERSION_HEX >= 0x02020000
1816	0,                                  /* tp_iter */
1817	0,                                  /* tp_iternext */
1818	0,		                    /* tp_methods */
1819	0,			            /* tp_members */
1820	0,				    /* tp_getset */
1821	0,			            /* tp_base */
1822	0,				    /* tp_dict */
1823	0,				    /* tp_descr_get */
1824	0,				    /* tp_descr_set */
1825	0,				    /* tp_dictoffset */
1826	0,				    /* tp_init */
1827	0,				    /* tp_alloc */
1828	0,			            /* tp_new */
1829	0, 	                            /* tp_free */
1830        0,                                  /* tp_is_gc */
1831	0,				    /* tp_bases */
1832	0,				    /* tp_mro */
1833	0,				    /* tp_cache */
1834 	0,				    /* tp_subclasses */
1835	0,				    /* tp_weaklist */
1836#endif
1837#if PY_VERSION_HEX >= 0x02030000
1838	0,                                  /* tp_del */
1839#endif
1840#ifdef COUNT_ALLOCS
1841	0,0,0,0                             /* tp_alloc -> tp_next */
1842#endif
1843      };
1844    pyswigpacked_type = tmp;
1845    pyswigpacked_type.ob_type = &PyType_Type;
1846    type_init = 1;
1847  }
1848  return &pyswigpacked_type;
1849}
1850
1851SWIGRUNTIME PyObject *
1852PySwigPacked_New(void *ptr, size_t size, swig_type_info *ty)
1853{
1854  PySwigPacked *sobj = PyObject_NEW(PySwigPacked, PySwigPacked_type());
1855  if (sobj) {
1856    void *pack = malloc(size);
1857    if (pack) {
1858      memcpy(pack, ptr, size);
1859      sobj->pack = pack;
1860      sobj->ty   = ty;
1861      sobj->size = size;
1862    } else {
1863      PyObject_DEL((PyObject *) sobj);
1864      sobj = 0;
1865    }
1866  }
1867  return (PyObject *) sobj;
1868}
1869
1870SWIGRUNTIME swig_type_info *
1871PySwigPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
1872{
1873  if (PySwigPacked_Check(obj)) {
1874    PySwigPacked *sobj = (PySwigPacked *)obj;
1875    if (sobj->size != size) return 0;
1876    memcpy(ptr, sobj->pack, size);
1877    return sobj->ty;
1878  } else {
1879    return 0;
1880  }
1881}
1882
1883/* -----------------------------------------------------------------------------
1884 * pointers/data manipulation
1885 * ----------------------------------------------------------------------------- */
1886
1887SWIGRUNTIMEINLINE PyObject *
1888_SWIG_This(void)
1889{
1890  return PyString_FromString("this");
1891}
1892
1893SWIGRUNTIME PyObject *
1894SWIG_This(void)
1895{
1896  static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This();
1897  return swig_this;
1898}
1899
1900/* #define SWIG_PYTHON_SLOW_GETSET_THIS */
1901
1902SWIGRUNTIME PySwigObject *
1903SWIG_Python_GetSwigThis(PyObject *pyobj)
1904{
1905  if (PySwigObject_Check(pyobj)) {
1906    return (PySwigObject *) pyobj;
1907  } else {
1908    PyObject *obj = 0;
1909#if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000))
1910    if (PyInstance_Check(pyobj)) {
1911      obj = _PyInstance_Lookup(pyobj, SWIG_This());
1912    } else {
1913      PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
1914      if (dictptr != NULL) {
1915	PyObject *dict = *dictptr;
1916	obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
1917      } else {
1918#ifdef PyWeakref_CheckProxy
1919	if (PyWeakref_CheckProxy(pyobj)) {
1920	  PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
1921	  return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
1922	}
1923#endif
1924	obj = PyObject_GetAttr(pyobj,SWIG_This());
1925	if (obj) {
1926	  Py_DECREF(obj);
1927	} else {
1928	  if (PyErr_Occurred()) PyErr_Clear();
1929	  return 0;
1930	}
1931      }
1932    }
1933#else
1934    obj = PyObject_GetAttr(pyobj,SWIG_This());
1935    if (obj) {
1936      Py_DECREF(obj);
1937    } else {
1938      if (PyErr_Occurred()) PyErr_Clear();
1939      return 0;
1940    }
1941#endif
1942    if (obj && !PySwigObject_Check(obj)) {
1943      /* a PyObject is called 'this', try to get the 'real this'
1944	 PySwigObject from it */
1945      return SWIG_Python_GetSwigThis(obj);
1946    }
1947    return (PySwigObject *)obj;
1948  }
1949}
1950
1951/* Acquire a pointer value */
1952
1953SWIGRUNTIME int
1954SWIG_Python_AcquirePtr(PyObject *obj, int own) {
1955  if (own == SWIG_POINTER_OWN) {
1956    PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
1957    if (sobj) {
1958      int oldown = sobj->own;
1959      sobj->own = own;
1960      return oldown;
1961    }
1962  }
1963  return 0;
1964}
1965
1966/* Convert a pointer value */
1967
1968SWIGRUNTIME int
1969SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) {
1970  if (!obj) return SWIG_ERROR;
1971  if (obj == Py_None) {
1972    if (ptr) *ptr = 0;
1973    return SWIG_OK;
1974  } else {
1975    PySwigObject *sobj = SWIG_Python_GetSwigThis(obj);
1976    if (own)
1977      *own = 0;
1978    while (sobj) {
1979      void *vptr = sobj->ptr;
1980      if (ty) {
1981	swig_type_info *to = sobj->ty;
1982	if (to == ty) {
1983	  /* no type cast needed */
1984	  if (ptr) *ptr = vptr;
1985	  break;
1986	} else {
1987	  swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
1988	  if (!tc) {
1989	    sobj = (PySwigObject *)sobj->next;
1990	  } else {
1991	    if (ptr) {
1992              int newmemory = 0;
1993              *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
1994              if (newmemory == SWIG_CAST_NEW_MEMORY) {
1995                assert(own);
1996                if (own)
1997                  *own = *own | SWIG_CAST_NEW_MEMORY;
1998              }
1999            }
2000	    break;
2001	  }
2002	}
2003      } else {
2004	if (ptr) *ptr = vptr;
2005	break;
2006      }
2007    }
2008    if (sobj) {
2009      if (own)
2010        *own = *own | sobj->own;
2011      if (flags & SWIG_POINTER_DISOWN) {
2012	sobj->own = 0;
2013      }
2014      return SWIG_OK;
2015    } else {
2016      int res = SWIG_ERROR;
2017      if (flags & SWIG_POINTER_IMPLICIT_CONV) {
2018	PySwigClientData *data = ty ? (PySwigClientData *) ty->clientdata : 0;
2019	if (data && !data->implicitconv) {
2020	  PyObject *klass = data->klass;
2021	  if (klass) {
2022	    PyObject *impconv;
2023	    data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
2024	    impconv = SWIG_Python_CallFunctor(klass, obj);
2025	    data->implicitconv = 0;
2026	    if (PyErr_Occurred()) {
2027	      PyErr_Clear();
2028	      impconv = 0;
2029	    }
2030	    if (impconv) {
2031	      PySwigObject *iobj = SWIG_Python_GetSwigThis(impconv);
2032	      if (iobj) {
2033		void *vptr;
2034		res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
2035		if (SWIG_IsOK(res)) {
2036		  if (ptr) {
2037		    *ptr = vptr;
2038		    /* transfer the ownership to 'ptr' */
2039		    iobj->own = 0;
2040		    res = SWIG_AddCast(res);
2041		    res = SWIG_AddNewMask(res);
2042		  } else {
2043		    res = SWIG_AddCast(res);
2044		  }
2045		}
2046	      }
2047	      Py_DECREF(impconv);
2048	    }
2049	  }
2050	}
2051      }
2052      return res;
2053    }
2054  }
2055}
2056
2057/* Convert a function ptr value */
2058
2059SWIGRUNTIME int
2060SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
2061  if (!PyCFunction_Check(obj)) {
2062    return SWIG_ConvertPtr(obj, ptr, ty, 0);
2063  } else {
2064    void *vptr = 0;
2065
2066    /* here we get the method pointer for callbacks */
2067    const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
2068    const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
2069    if (desc) {
2070      desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
2071      if (!desc) return SWIG_ERROR;
2072    }
2073    if (ty) {
2074      swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
2075      if (tc) {
2076        int newmemory = 0;
2077        *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
2078        assert(!newmemory); /* newmemory handling not yet implemented */
2079      } else {
2080        return SWIG_ERROR;
2081      }
2082    } else {
2083      *ptr = vptr;
2084    }
2085    return SWIG_OK;
2086  }
2087}
2088
2089/* Convert a packed value value */
2090
2091SWIGRUNTIME int
2092SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) {
2093  swig_type_info *to = PySwigPacked_UnpackData(obj, ptr, sz);
2094  if (!to) return SWIG_ERROR;
2095  if (ty) {
2096    if (to != ty) {
2097      /* check type cast? */
2098      swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
2099      if (!tc) return SWIG_ERROR;
2100    }
2101  }
2102  return SWIG_OK;
2103}
2104
2105/* -----------------------------------------------------------------------------
2106 * Create a new pointer object
2107 * ----------------------------------------------------------------------------- */
2108
2109/*
2110  Create a new instance object, whitout calling __init__, and set the
2111  'this' attribute.
2112*/
2113
2114SWIGRUNTIME PyObject*
2115SWIG_Python_NewShadowInstance(PySwigClientData *data, PyObject *swig_this)
2116{
2117#if (PY_VERSION_HEX >= 0x02020000)
2118  PyObject *inst = 0;
2119  PyObject *newraw = data->newraw;
2120  if (newraw) {
2121    inst = PyObject_Call(newraw, data->newargs, NULL);
2122    if (inst) {
2123#if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2124      PyObject **dictptr = _PyObject_GetDictPtr(inst);
2125      if (dictptr != NULL) {
2126	PyObject *dict = *dictptr;
2127	if (dict == NULL) {
2128	  dict = PyDict_New();
2129	  *dictptr = dict;
2130	  PyDict_SetItem(dict, SWIG_This(), swig_this);
2131	}
2132      }
2133#else
2134      PyObject *key = SWIG_This();
2135      PyObject_SetAttr(inst, key, swig_this);
2136#endif
2137    }
2138  } else {
2139    PyObject *dict = PyDict_New();
2140    PyDict_SetItem(dict, SWIG_This(), swig_this);
2141    inst = PyInstance_NewRaw(data->newargs, dict);
2142    Py_DECREF(dict);
2143  }
2144  return inst;
2145#else
2146#if (PY_VERSION_HEX >= 0x02010000)
2147  PyObject *inst;
2148  PyObject *dict = PyDict_New();
2149  PyDict_SetItem(dict, SWIG_This(), swig_this);
2150  inst = PyInstance_NewRaw(data->newargs, dict);
2151  Py_DECREF(dict);
2152  return (PyObject *) inst;
2153#else
2154  PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type);
2155  if (inst == NULL) {
2156    return NULL;
2157  }
2158  inst->in_class = (PyClassObject *)data->newargs;
2159  Py_INCREF(inst->in_class);
2160  inst->in_dict = PyDict_New();
2161  if (inst->in_dict == NULL) {
2162    Py_DECREF(inst);
2163    return NULL;
2164  }
2165#ifdef Py_TPFLAGS_HAVE_WEAKREFS
2166  inst->in_weakreflist = NULL;
2167#endif
2168#ifdef Py_TPFLAGS_GC
2169  PyObject_GC_Init(inst);
2170#endif
2171  PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this);
2172  return (PyObject *) inst;
2173#endif
2174#endif
2175}
2176
2177SWIGRUNTIME void
2178SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
2179{
2180 PyObject *dict;
2181#if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
2182 PyObject **dictptr = _PyObject_GetDictPtr(inst);
2183 if (dictptr != NULL) {
2184   dict = *dictptr;
2185   if (dict == NULL) {
2186     dict = PyDict_New();
2187     *dictptr = dict;
2188   }
2189   PyDict_SetItem(dict, SWIG_This(), swig_this);
2190   return;
2191 }
2192#endif
2193 dict = PyObject_GetAttrString(inst, (char*)"__dict__");
2194 PyDict_SetItem(dict, SWIG_This(), swig_this);
2195 Py_DECREF(dict);
2196}
2197
2198
2199SWIGINTERN PyObject *
2200SWIG_Python_InitShadowInstance(PyObject *args) {
2201  PyObject *obj[2];
2202  if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) {
2203    return NULL;
2204  } else {
2205    PySwigObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
2206    if (sthis) {
2207      PySwigObject_append((PyObject*) sthis, obj[1]);
2208    } else {
2209      SWIG_Python_SetSwigThis(obj[0], obj[1]);
2210    }
2211    return SWIG_Py_Void();
2212  }
2213}
2214
2215/* Create a new pointer object */
2216
2217SWIGRUNTIME PyObject *
2218SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) {
2219  if (!ptr) {
2220    return SWIG_Py_Void();
2221  } else {
2222    int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
2223    PyObject *robj = PySwigObject_New(ptr, type, own);
2224    PySwigClientData *clientdata = type ? (PySwigClientData *)(type->clientdata) : 0;
2225    if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
2226      PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
2227      if (inst) {
2228	Py_DECREF(robj);
2229	robj = inst;
2230      }
2231    }
2232    return robj;
2233  }
2234}
2235
2236/* Create a new packed object */
2237
2238SWIGRUNTIMEINLINE PyObject *
2239SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
2240  return ptr ? PySwigPacked_New((void *) ptr, sz, type) : SWIG_Py_Void();
2241}
2242
2243/* -----------------------------------------------------------------------------*
2244 *  Get type list
2245 * -----------------------------------------------------------------------------*/
2246
2247#ifdef SWIG_LINK_RUNTIME
2248void *SWIG_ReturnGlobalTypeList(void *);
2249#endif
2250
2251SWIGRUNTIME swig_module_info *
2252SWIG_Python_GetModule(void) {
2253  static void *type_pointer = (void *)0;
2254  /* first check if module already created */
2255  if (!type_pointer) {
2256#ifdef SWIG_LINK_RUNTIME
2257    type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
2258#else
2259    type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
2260				    (char*)"type_pointer" SWIG_TYPE_TABLE_NAME);
2261    if (PyErr_Occurred()) {
2262      PyErr_Clear();
2263      type_pointer = (void *)0;
2264    }
2265#endif
2266  }
2267  return (swig_module_info *) type_pointer;
2268}
2269
2270#if PY_MAJOR_VERSION < 2
2271/* PyModule_AddObject function was introduced in Python 2.0.  The following function
2272   is copied out of Python/modsupport.c in python version 2.3.4 */
2273SWIGINTERN int
2274PyModule_AddObject(PyObject *m, char *name, PyObject *o)
2275{
2276  PyObject *dict;
2277  if (!PyModule_Check(m)) {
2278    PyErr_SetString(PyExc_TypeError,
2279		    "PyModule_AddObject() needs module as first arg");
2280    return SWIG_ERROR;
2281  }
2282  if (!o) {
2283    PyErr_SetString(PyExc_TypeError,
2284		    "PyModule_AddObject() needs non-NULL value");
2285    return SWIG_ERROR;
2286  }
2287
2288  dict = PyModule_GetDict(m);
2289  if (dict == NULL) {
2290    /* Internal error -- modules must have a dict! */
2291    PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__",
2292		 PyModule_GetName(m));
2293    return SWIG_ERROR;
2294  }
2295  if (PyDict_SetItemString(dict, name, o))
2296    return SWIG_ERROR;
2297  Py_DECREF(o);
2298  return SWIG_OK;
2299}
2300#endif
2301
2302SWIGRUNTIME void
2303SWIG_Python_DestroyModule(void *vptr)
2304{
2305  swig_module_info *swig_module = (swig_module_info *) vptr;
2306  swig_type_info **types = swig_module->types;
2307  size_t i;
2308  for (i =0; i < swig_module->size; ++i) {
2309    swig_type_info *ty = types[i];
2310    if (ty->owndata) {
2311      PySwigClientData *data = (PySwigClientData *) ty->clientdata;
2312      if (data) PySwigClientData_Del(data);
2313    }
2314  }
2315  Py_DECREF(SWIG_This());
2316}
2317
2318SWIGRUNTIME void
2319SWIG_Python_SetModule(swig_module_info *swig_module) {
2320  static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */
2321
2322  PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
2323				   swig_empty_runtime_method_table);
2324  PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule);
2325  if (pointer && module) {
2326    PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer);
2327  } else {
2328    Py_XDECREF(pointer);
2329  }
2330}
2331
2332/* The python cached type query */
2333SWIGRUNTIME PyObject *
2334SWIG_Python_TypeCache(void) {
2335  static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New();
2336  return cache;
2337}
2338
2339SWIGRUNTIME swig_type_info *
2340SWIG_Python_TypeQuery(const char *type)
2341{
2342  PyObject *cache = SWIG_Python_TypeCache();
2343  PyObject *key = PyString_FromString(type);
2344  PyObject *obj = PyDict_GetItem(cache, key);
2345  swig_type_info *descriptor;
2346  if (obj) {
2347    descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj);
2348  } else {
2349    swig_module_info *swig_module = SWIG_Python_GetModule();
2350    descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
2351    if (descriptor) {
2352      obj = PyCObject_FromVoidPtr(descriptor, NULL);
2353      PyDict_SetItem(cache, key, obj);
2354      Py_DECREF(obj);
2355    }
2356  }
2357  Py_DECREF(key);
2358  return descriptor;
2359}
2360
2361/*
2362   For backward compatibility only
2363*/
2364#define SWIG_POINTER_EXCEPTION  0
2365#define SWIG_arg_fail(arg)      SWIG_Python_ArgFail(arg)
2366#define SWIG_MustGetPtr(p, type, argnum, flags)  SWIG_Python_MustGetPtr(p, type, argnum, flags)
2367
2368SWIGRUNTIME int
2369SWIG_Python_AddErrMesg(const char* mesg, int infront)
2370{
2371  if (PyErr_Occurred()) {
2372    PyObject *type = 0;
2373    PyObject *value = 0;
2374    PyObject *traceback = 0;
2375    PyErr_Fetch(&type, &value, &traceback);
2376    if (value) {
2377      PyObject *old_str = PyObject_Str(value);
2378      Py_XINCREF(type);
2379      PyErr_Clear();
2380      if (infront) {
2381	PyErr_Format(type, "%s %s", mesg, PyString_AsString(old_str));
2382      } else {
2383	PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg);
2384      }
2385      Py_DECREF(old_str);
2386    }
2387    return 1;
2388  } else {
2389    return 0;
2390  }
2391}
2392
2393SWIGRUNTIME int
2394SWIG_Python_ArgFail(int argnum)
2395{
2396  if (PyErr_Occurred()) {
2397    /* add information about failing argument */
2398    char mesg[256];
2399    PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum);
2400    return SWIG_Python_AddErrMesg(mesg, 1);
2401  } else {
2402    return 0;
2403  }
2404}
2405
2406SWIGRUNTIMEINLINE const char *
2407PySwigObject_GetDesc(PyObject *self)
2408{
2409  PySwigObject *v = (PySwigObject *)self;
2410  swig_type_info *ty = v ? v->ty : 0;
2411  return ty ? ty->str : (char*)"";
2412}
2413
2414SWIGRUNTIME void
2415SWIG_Python_TypeError(const char *type, PyObject *obj)
2416{
2417  if (type) {
2418#if defined(SWIG_COBJECT_TYPES)
2419    if (obj && PySwigObject_Check(obj)) {
2420      const char *otype = (const char *) PySwigObject_GetDesc(obj);
2421      if (otype) {
2422	PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'PySwigObject(%s)' is received",
2423		     type, otype);
2424	return;
2425      }
2426    } else
2427#endif
2428    {
2429      const char *otype = (obj ? obj->ob_type->tp_name : 0);
2430      if (otype) {
2431	PyObject *str = PyObject_Str(obj);
2432	const char *cstr = str ? PyString_AsString(str) : 0;
2433	if (cstr) {
2434	  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
2435		       type, otype, cstr);
2436	} else {
2437	  PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
2438		       type, otype);
2439	}
2440	Py_XDECREF(str);
2441	return;
2442      }
2443    }
2444    PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
2445  } else {
2446    PyErr_Format(PyExc_TypeError, "unexpected type is received");
2447  }
2448}
2449
2450
2451/* Convert a pointer value, signal an exception on a type mismatch */
2452SWIGRUNTIME void *
2453SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) {
2454  void *result;
2455  if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
2456    PyErr_Clear();
2457    if (flags & SWIG_POINTER_EXCEPTION) {
2458      SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj);
2459      SWIG_Python_ArgFail(argnum);
2460    }
2461  }
2462  return result;
2463}
2464
2465
2466#ifdef __cplusplus
2467#if 0
2468{ /* cc-mode */
2469#endif
2470}
2471#endif
2472
2473
2474
2475#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
2476
2477#define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else
2478
2479
2480
2481void push_object(PyObject **stack, PyObject *o)
2482{
2483	if ((!*stack) || (*stack == Py_None)) {
2484    		*stack = o;
2485	} else {
2486		PyObject *o2, *o3;
2487    		if (!PyTuple_Check(*stack)) {
2488        		o2 = *stack;
2489        		*stack = PyTuple_New(1);
2490        		PyTuple_SetItem(*stack,0,o2);
2491    		}
2492    		o3 = PyTuple_New(1);
2493	        PyTuple_SetItem(o3,0,o);
2494	        o2 = *stack;
2495    		*stack = PySequence_Concat(o2,o3);
2496	        Py_DECREF(o2);
2497    		Py_DECREF(o3);
2498	}
2499}
2500
2501
2502/* -------- TYPES TABLE (BEGIN) -------- */
2503
2504#define SWIGTYPE_p_BSTR swig_types[0]
2505#define SWIGTYPE_p_IEnumWbemClassObject swig_types[1]
2506#define SWIGTYPE_p_IUnknown swig_types[2]
2507#define SWIGTYPE_p_IWbemContext swig_types[3]
2508#define SWIGTYPE_p_IWbemServices swig_types[4]
2509#define SWIGTYPE_p_TALLOC_CTX swig_types[5]
2510#define SWIGTYPE_p_char swig_types[6]
2511#define SWIGTYPE_p_com_context swig_types[7]
2512#define SWIGTYPE_p_int swig_types[8]
2513#define SWIGTYPE_p_long_long swig_types[9]
2514#define SWIGTYPE_p_p_IEnumWbemClassObject swig_types[10]
2515#define SWIGTYPE_p_p_IWbemServices swig_types[11]
2516#define SWIGTYPE_p_p_WbemClassObject swig_types[12]
2517#define SWIGTYPE_p_short swig_types[13]
2518#define SWIGTYPE_p_signed_char swig_types[14]
2519#define SWIGTYPE_p_unsigned_char swig_types[15]
2520#define SWIGTYPE_p_unsigned_int swig_types[16]
2521#define SWIGTYPE_p_unsigned_long_long swig_types[17]
2522#define SWIGTYPE_p_unsigned_short swig_types[18]
2523static swig_type_info *swig_types[20];
2524static swig_module_info swig_module = {swig_types, 19, 0, 0, 0, 0};
2525#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
2526#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
2527
2528/* -------- TYPES TABLE (END) -------- */
2529
2530#if (PY_VERSION_HEX <= 0x02000000)
2531# if !defined(SWIG_PYTHON_CLASSIC)
2532#  error "This python version requires swig to be run with the '-classic' option"
2533# endif
2534#endif
2535#if (PY_VERSION_HEX <= 0x02020000)
2536# error "This python version requires swig to be run with the '-nomodern' option"
2537#endif
2538#if (PY_VERSION_HEX <= 0x02020000)
2539# error "This python version requires swig to be run with the '-nomodernargs' option"
2540#endif
2541#ifndef METH_O
2542# error "This python version requires swig to be run with the '-nofastunpack' option"
2543#endif
2544#ifdef SWIG_TypeQuery
2545# undef SWIG_TypeQuery
2546#endif
2547#define SWIG_TypeQuery SWIG_Python_TypeQuery
2548
2549/*-----------------------------------------------
2550              @(target):= _wmi.so
2551  ------------------------------------------------*/
2552#define SWIG_init    init_wmi
2553
2554#define SWIG_name    "_wmi"
2555
2556#define SWIGVERSION 0x010336
2557#define SWIG_VERSION SWIGVERSION
2558
2559
2560#define SWIG_as_voidptr(a) (void *)((const void *)(a))
2561#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a))
2562
2563
2564#include "libcli/util/pyerrors.h"
2565
2566
2567#include "includes.h"
2568#include "librpc/gen_ndr/misc.h"
2569#include "librpc/rpc/dcerpc.h"
2570#include "lib/com/dcom/dcom.h"
2571#include "librpc/gen_ndr/com_dcom.h"
2572#include "lib/wmi/wmi.h"
2573
2574
2575WERROR WBEM_ConnectServer(struct com_context *ctx, const char *server, const char *nspace, const char *user, const char *password,
2576	const char *locale, uint32_t flags, const char *authority, struct IWbemContext* wbem_ctx, struct IWbemServices** services);
2577WERROR IEnumWbemClassObject_SmartNext(struct IEnumWbemClassObject *d, TALLOC_CTX *mem_ctx, int32_t lTimeout,uint32_t uCount,
2578	struct WbemClassObject **apObjects, uint32_t *puReturned);
2579
2580static PyObject *PyObject_FromCVAR(uint32_t cimtype, union CIMVAR *cvar);
2581static PyObject *PySWbemObject_FromWbemClassObject(struct WbemClassObject *wco);
2582
2583static struct com_context *com_ctx;
2584static PyObject *ComError;
2585static PyObject *mod_win32_client;
2586static PyObject *mod_pywintypes;
2587
2588typedef struct IUnknown IUnknown;
2589typedef struct IWbemServices IWbemServices;
2590typedef struct IWbemClassObject IWbemClassObject;
2591typedef struct IEnumWbemClassObject IEnumWbemClassObject;
2592
2593
2594SWIGINTERN swig_type_info*
2595SWIG_pchar_descriptor(void)
2596{
2597  static int init = 0;
2598  static swig_type_info* info = 0;
2599  if (!init) {
2600    info = SWIG_TypeQuery("_p_char");
2601    init = 1;
2602  }
2603  return info;
2604}
2605
2606
2607SWIGINTERN int
2608SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
2609{
2610  if (PyString_Check(obj)) {
2611    char *cstr; Py_ssize_t len;
2612    PyString_AsStringAndSize(obj, &cstr, &len);
2613    if (cptr)  {
2614      if (alloc) {
2615	/*
2616	   In python the user should not be able to modify the inner
2617	   string representation. To warranty that, if you define
2618	   SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
2619	   buffer is always returned.
2620
2621	   The default behavior is just to return the pointer value,
2622	   so, be careful.
2623	*/
2624#if defined(SWIG_PYTHON_SAFE_CSTRINGS)
2625	if (*alloc != SWIG_OLDOBJ)
2626#else
2627	if (*alloc == SWIG_NEWOBJ)
2628#endif
2629	  {
2630	    *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1));
2631	    *alloc = SWIG_NEWOBJ;
2632	  }
2633	else {
2634	  *cptr = cstr;
2635	  *alloc = SWIG_OLDOBJ;
2636	}
2637      } else {
2638	*cptr = PyString_AsString(obj);
2639      }
2640    }
2641    if (psize) *psize = len + 1;
2642    return SWIG_OK;
2643  } else {
2644    swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
2645    if (pchar_descriptor) {
2646      void* vptr = 0;
2647      if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
2648	if (cptr) *cptr = (char *) vptr;
2649	if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
2650	if (alloc) *alloc = SWIG_OLDOBJ;
2651	return SWIG_OK;
2652      }
2653    }
2654  }
2655  return SWIG_TypeError;
2656}
2657
2658
2659
2660
2661
2662#include <limits.h>
2663#if !defined(SWIG_NO_LLONG_MAX)
2664# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
2665#   define LLONG_MAX __LONG_LONG_MAX__
2666#   define LLONG_MIN (-LLONG_MAX - 1LL)
2667#   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
2668# endif
2669#endif
2670
2671
2672SWIGINTERN int
2673SWIG_AsVal_double (PyObject *obj, double *val)
2674{
2675  int res = SWIG_TypeError;
2676  if (PyFloat_Check(obj)) {
2677    if (val) *val = PyFloat_AsDouble(obj);
2678    return SWIG_OK;
2679  } else if (PyInt_Check(obj)) {
2680    if (val) *val = PyInt_AsLong(obj);
2681    return SWIG_OK;
2682  } else if (PyLong_Check(obj)) {
2683    double v = PyLong_AsDouble(obj);
2684    if (!PyErr_Occurred()) {
2685      if (val) *val = v;
2686      return SWIG_OK;
2687    } else {
2688      PyErr_Clear();
2689    }
2690  }
2691#ifdef SWIG_PYTHON_CAST_MODE
2692  {
2693    int dispatch = 0;
2694    double d = PyFloat_AsDouble(obj);
2695    if (!PyErr_Occurred()) {
2696      if (val) *val = d;
2697      return SWIG_AddCast(SWIG_OK);
2698    } else {
2699      PyErr_Clear();
2700    }
2701    if (!dispatch) {
2702      long v = PyLong_AsLong(obj);
2703      if (!PyErr_Occurred()) {
2704	if (val) *val = v;
2705	return SWIG_AddCast(SWIG_AddCast(SWIG_OK));
2706      } else {
2707	PyErr_Clear();
2708      }
2709    }
2710  }
2711#endif
2712  return res;
2713}
2714
2715
2716#include <float.h>
2717
2718
2719#include <math.h>
2720
2721
2722SWIGINTERNINLINE int
2723SWIG_CanCastAsInteger(double *d, double min, double max) {
2724  double x = *d;
2725  if ((min <= x && x <= max)) {
2726   double fx = floor(x);
2727   double cx = ceil(x);
2728   double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
2729   if ((errno == EDOM) || (errno == ERANGE)) {
2730     errno = 0;
2731   } else {
2732     double summ, reps, diff;
2733     if (rd < x) {
2734       diff = x - rd;
2735     } else if (rd > x) {
2736       diff = rd - x;
2737     } else {
2738       return 1;
2739     }
2740     summ = rd + x;
2741     reps = diff/summ;
2742     if (reps < 8*DBL_EPSILON) {
2743       *d = rd;
2744       return 1;
2745     }
2746   }
2747  }
2748  return 0;
2749}
2750
2751
2752SWIGINTERN int
2753SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val)
2754{
2755  if (PyInt_Check(obj)) {
2756    long v = PyInt_AsLong(obj);
2757    if (v >= 0) {
2758      if (val) *val = v;
2759      return SWIG_OK;
2760    } else {
2761      return SWIG_OverflowError;
2762    }
2763  } else if (PyLong_Check(obj)) {
2764    unsigned long v = PyLong_AsUnsignedLong(obj);
2765    if (!PyErr_Occurred()) {
2766      if (val) *val = v;
2767      return SWIG_OK;
2768    } else {
2769      PyErr_Clear();
2770    }
2771  }
2772#ifdef SWIG_PYTHON_CAST_MODE
2773  {
2774    int dispatch = 0;
2775    unsigned long v = PyLong_AsUnsignedLong(obj);
2776    if (!PyErr_Occurred()) {
2777      if (val) *val = v;
2778      return SWIG_AddCast(SWIG_OK);
2779    } else {
2780      PyErr_Clear();
2781    }
2782    if (!dispatch) {
2783      double d;
2784      int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
2785      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, ULONG_MAX)) {
2786	if (val) *val = (unsigned long)(d);
2787	return res;
2788      }
2789    }
2790  }
2791#endif
2792  return SWIG_TypeError;
2793}
2794
2795
2796SWIGINTERN int
2797SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val)
2798{
2799  unsigned long v;
2800  int res = SWIG_AsVal_unsigned_SS_long (obj, &v);
2801  if (SWIG_IsOK(res)) {
2802    if ((v > UINT_MAX)) {
2803      return SWIG_OverflowError;
2804    } else {
2805      if (val) *val = (unsigned int)(v);
2806    }
2807  }
2808  return res;
2809}
2810
2811
2812  #define SWIG_From_long   PyInt_FromLong
2813
2814
2815SWIGINTERNINLINE PyObject*
2816SWIG_From_unsigned_SS_long  (unsigned long value)
2817{
2818  return (value > LONG_MAX) ?
2819    PyLong_FromUnsignedLong(value) : PyInt_FromLong((long)(value));
2820}
2821
2822
2823SWIGINTERNINLINE PyObject *
2824SWIG_From_unsigned_SS_int  (unsigned int value)
2825{
2826  return SWIG_From_unsigned_SS_long  (value);
2827}
2828
2829
2830SWIGINTERN int
2831SWIG_AsVal_long (PyObject *obj, long* val)
2832{
2833  if (PyInt_Check(obj)) {
2834    if (val) *val = PyInt_AsLong(obj);
2835    return SWIG_OK;
2836  } else if (PyLong_Check(obj)) {
2837    long v = PyLong_AsLong(obj);
2838    if (!PyErr_Occurred()) {
2839      if (val) *val = v;
2840      return SWIG_OK;
2841    } else {
2842      PyErr_Clear();
2843    }
2844  }
2845#ifdef SWIG_PYTHON_CAST_MODE
2846  {
2847    int dispatch = 0;
2848    long v = PyInt_AsLong(obj);
2849    if (!PyErr_Occurred()) {
2850      if (val) *val = v;
2851      return SWIG_AddCast(SWIG_OK);
2852    } else {
2853      PyErr_Clear();
2854    }
2855    if (!dispatch) {
2856      double d;
2857      int res = SWIG_AddCast(SWIG_AsVal_double (obj,&d));
2858      if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
2859	if (val) *val = (long)(d);
2860	return res;
2861      }
2862    }
2863  }
2864#endif
2865  return SWIG_TypeError;
2866}
2867
2868
2869SWIGINTERN int
2870SWIG_AsVal_int (PyObject * obj, int *val)
2871{
2872  long v;
2873  int res = SWIG_AsVal_long (obj, &v);
2874  if (SWIG_IsOK(res)) {
2875    if ((v < INT_MIN || v > INT_MAX)) {
2876      return SWIG_OverflowError;
2877    } else {
2878      if (val) *val = (int)(v);
2879    }
2880  }
2881  return res;
2882}
2883
2884#ifdef __cplusplus
2885extern "C" {
2886#endif
2887
2888
2889#define RETURN_CVAR_ARRAY(fmt, arr) {\
2890	PyObject *l, *o;\
2891	uint32_t i;\
2892\
2893	if (!arr) {\
2894		Py_INCREF(Py_None);\
2895		return Py_None;\
2896	}\
2897	l = PyList_New(arr->count);\
2898	if (!l) return NULL;\
2899	for (i = 0; i < arr->count; ++i) {\
2900		o = _Py_BuildValue(fmt, arr->item[i]);\
2901		if (!o) {\
2902			Py_DECREF(l);\
2903			return NULL;\
2904		}\
2905		PyList_SET_ITEM(l, i, o);\
2906	}\
2907	return l;\
2908}
2909
2910static PyObject *_Py_BuildValue(char *str, ...)
2911{
2912   PyObject * result = NULL;
2913   va_list lst;
2914   va_start(lst, str);
2915   if (str && *str == 'I') {
2916        uint32_t value = va_arg(lst, uint32_t);
2917	if (value & 0x80000000) {
2918           result = Py_BuildValue("L", (long)value);
2919        } else {
2920           result = Py_BuildValue("i", value);
2921	}
2922   } else {
2923       result = Py_VaBuildValue(str, lst);
2924   }
2925   va_end(lst);
2926   return result;
2927}
2928
2929
2930static PyObject *PyObject_FromCVAR(uint32_t cimtype, union CIMVAR *cvar)
2931{
2932	switch (cimtype) {
2933        case CIM_SINT8: return Py_BuildValue("b", cvar->v_sint8);
2934        case CIM_UINT8: return Py_BuildValue("B", cvar->v_uint8);
2935        case CIM_SINT16: return Py_BuildValue("h", cvar->v_sint16);
2936        case CIM_UINT16: return Py_BuildValue("H", cvar->v_uint16);
2937        case CIM_SINT32: return Py_BuildValue("i", cvar->v_sint32);
2938        case CIM_UINT32: return _Py_BuildValue("I", cvar->v_uint32);
2939        case CIM_SINT64: return Py_BuildValue("L", cvar->v_sint64);
2940        case CIM_UINT64: return Py_BuildValue("K", cvar->v_uint64);
2941        case CIM_REAL32: return Py_BuildValue("f", cvar->v_real32);
2942        case CIM_REAL64: return Py_BuildValue("d", cvar->v_real64);
2943        case CIM_BOOLEAN: return Py_BuildValue("h", cvar->v_boolean);
2944        case CIM_STRING: return Py_BuildValue("s", cvar->v_string);
2945        case CIM_DATETIME: return Py_BuildValue("s", cvar->v_datetime);
2946        case CIM_REFERENCE: return Py_BuildValue("s", cvar->v_reference);
2947        case CIM_OBJECT: return PySWbemObject_FromWbemClassObject(cvar->v_object);
2948        case CIM_ARR_SINT8: RETURN_CVAR_ARRAY("b", cvar->a_sint8);
2949        case CIM_ARR_UINT8: RETURN_CVAR_ARRAY("B", cvar->a_uint8);
2950        case CIM_ARR_SINT16: RETURN_CVAR_ARRAY("h", cvar->a_sint16);
2951        case CIM_ARR_UINT16: RETURN_CVAR_ARRAY("H", cvar->a_uint16);
2952        case CIM_ARR_SINT32: RETURN_CVAR_ARRAY("i", cvar->a_sint32);
2953        case CIM_ARR_UINT32: RETURN_CVAR_ARRAY("I", cvar->a_uint32);
2954        case CIM_ARR_SINT64: RETURN_CVAR_ARRAY("L", cvar->a_sint64);
2955        case CIM_ARR_UINT64: RETURN_CVAR_ARRAY("K", cvar->a_uint64);
2956        case CIM_ARR_REAL32: RETURN_CVAR_ARRAY("f", cvar->a_real32);
2957        case CIM_ARR_REAL64: RETURN_CVAR_ARRAY("d", cvar->a_real64);
2958        case CIM_ARR_BOOLEAN: RETURN_CVAR_ARRAY("h", cvar->a_boolean);
2959        case CIM_ARR_STRING: RETURN_CVAR_ARRAY("s", cvar->a_string);
2960        case CIM_ARR_DATETIME: RETURN_CVAR_ARRAY("s", cvar->a_datetime);
2961        case CIM_ARR_REFERENCE: RETURN_CVAR_ARRAY("s", cvar->a_reference);
2962	default:
2963		{
2964		char *str;
2965		str = talloc_asprintf(NULL, "Unsupported CIMTYPE(0x%04X)", cimtype);
2966		PyErr_SetString(PyExc_RuntimeError, str);
2967		talloc_free(str);
2968		return NULL;
2969		}
2970	}
2971}
2972
2973#undef RETURN_CVAR_ARRAY
2974
2975PyObject *PySWbemObject_InitProperites(PyObject *o, struct WbemClassObject *wco)
2976{
2977	PyObject *properties;
2978	PyObject *addProp;
2979	uint32_t i;
2980	int32_t r;
2981	PyObject *result;
2982
2983	result = NULL;
2984	properties = PyObject_GetAttrString(o, "Properties_");
2985	if (!properties) return NULL;
2986	addProp = PyObject_GetAttrString(properties, "Add");
2987	if (!addProp) {
2988		Py_DECREF(properties);
2989		return NULL;
2990	}
2991
2992	for (i = 0; i < wco->obj_class->__PROPERTY_COUNT; ++i) {
2993		PyObject *args, *property;
2994
2995		args = Py_BuildValue("(si)", wco->obj_class->properties[i].property.name, wco->obj_class->properties[i].property.desc->cimtype & CIM_TYPEMASK);
2996		if (!args) goto finish;
2997		property = PyObject_CallObject(addProp, args);
2998		Py_DECREF(args);
2999		if (!property) goto finish;
3000		if (wco->flags & WCF_INSTANCE) {
3001			PyObject *value;
3002
3003			if (wco->instance->default_flags[i] & 1) {
3004				value = Py_None;
3005				Py_INCREF(Py_None);
3006			} else
3007				value = PyObject_FromCVAR(wco->obj_class->properties[i].property.desc->cimtype & CIM_TYPEMASK, &wco->instance->data[i]);
3008			if (!value) {
3009				Py_DECREF(property);
3010				goto finish;
3011			}
3012			r = PyObject_SetAttrString(property, "Value", value);
3013			Py_DECREF(value);
3014			if (r == -1) {
3015				PyErr_SetString(PyExc_RuntimeError, "Error setting value of property");
3016				goto finish;
3017			}
3018		}
3019		Py_DECREF(property);
3020	}
3021
3022	Py_INCREF(Py_None);
3023	result = Py_None;
3024finish:
3025	Py_DECREF(addProp);
3026	Py_DECREF(properties);
3027	return result;
3028}
3029
3030static PyObject *PySWbemObject_FromWbemClassObject(struct WbemClassObject *wco)
3031{
3032	PyObject *swo_class, *swo, *args, *result;
3033
3034	swo_class = PyObject_GetAttrString(mod_win32_client, "SWbemObject");
3035	if (!swo_class) return NULL;
3036	args = PyTuple_New(0);
3037	if (!args) {
3038		Py_DECREF(swo_class);
3039		return NULL;
3040	}
3041	swo = PyObject_CallObject(swo_class, args);
3042	Py_DECREF(args);
3043	Py_DECREF(swo_class);
3044	if (!swo) return NULL;
3045
3046	result = PySWbemObject_InitProperites(swo, wco);
3047	if (!result) {
3048		Py_DECREF(swo);
3049		return NULL;
3050	}
3051	Py_DECREF(result);
3052
3053	return swo;
3054}
3055
3056
3057SWIGINTERN PyObject *_wrap_WBEM_ConnectServer(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3058  PyObject *resultobj = 0;
3059  struct com_context *arg1 = (struct com_context *) 0 ;
3060  char *arg2 = (char *) 0 ;
3061  char *arg3 = (char *) 0 ;
3062  char *arg4 = (char *) 0 ;
3063  char *arg5 = (char *) 0 ;
3064  char *arg6 = (char *) 0 ;
3065  uint32_t arg7 ;
3066  char *arg8 = (char *) 0 ;
3067  struct IWbemContext *arg9 = (struct IWbemContext *) 0 ;
3068  struct IWbemServices **arg10 = (struct IWbemServices **) 0 ;
3069  int res2 ;
3070  char *buf2 = 0 ;
3071  int alloc2 = 0 ;
3072  int res3 ;
3073  char *buf3 = 0 ;
3074  int alloc3 = 0 ;
3075  int res4 ;
3076  char *buf4 = 0 ;
3077  int alloc4 = 0 ;
3078  int res5 ;
3079  char *buf5 = 0 ;
3080  int alloc5 = 0 ;
3081  int res6 ;
3082  char *buf6 = 0 ;
3083  int alloc6 = 0 ;
3084  unsigned int val7 ;
3085  int ecode7 = 0 ;
3086  int res8 ;
3087  char *buf8 = 0 ;
3088  int alloc8 = 0 ;
3089  void *argp9 = 0 ;
3090  int res9 = 0 ;
3091  struct IWbemServices *temp10 ;
3092  PyObject * obj0 = 0 ;
3093  PyObject * obj1 = 0 ;
3094  PyObject * obj2 = 0 ;
3095  PyObject * obj3 = 0 ;
3096  PyObject * obj4 = 0 ;
3097  PyObject * obj5 = 0 ;
3098  PyObject * obj6 = 0 ;
3099  PyObject * obj7 = 0 ;
3100  char *  kwnames[] = {
3101    (char *) "server",(char *) "nspace",(char *) "user",(char *) "password",(char *) "locale",(char *) "flags",(char *) "authority",(char *) "wbem_ctx", NULL
3102  };
3103  WERROR result;
3104
3105  {
3106    arg1 = com_ctx;
3107  }
3108  {
3109    arg10 = &temp10;
3110  }
3111  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOOOOO:WBEM_ConnectServer",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
3112  res2 = SWIG_AsCharPtrAndSize(obj0, &buf2, NULL, &alloc2);
3113  if (!SWIG_IsOK(res2)) {
3114    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "WBEM_ConnectServer" "', argument " "2"" of type '" "char const *""'");
3115  }
3116  arg2 = (char *)(buf2);
3117  res3 = SWIG_AsCharPtrAndSize(obj1, &buf3, NULL, &alloc3);
3118  if (!SWIG_IsOK(res3)) {
3119    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "WBEM_ConnectServer" "', argument " "3"" of type '" "char const *""'");
3120  }
3121  arg3 = (char *)(buf3);
3122  res4 = SWIG_AsCharPtrAndSize(obj2, &buf4, NULL, &alloc4);
3123  if (!SWIG_IsOK(res4)) {
3124    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "WBEM_ConnectServer" "', argument " "4"" of type '" "char const *""'");
3125  }
3126  arg4 = (char *)(buf4);
3127  res5 = SWIG_AsCharPtrAndSize(obj3, &buf5, NULL, &alloc5);
3128  if (!SWIG_IsOK(res5)) {
3129    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "WBEM_ConnectServer" "', argument " "5"" of type '" "char const *""'");
3130  }
3131  arg5 = (char *)(buf5);
3132  res6 = SWIG_AsCharPtrAndSize(obj4, &buf6, NULL, &alloc6);
3133  if (!SWIG_IsOK(res6)) {
3134    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "WBEM_ConnectServer" "', argument " "6"" of type '" "char const *""'");
3135  }
3136  arg6 = (char *)(buf6);
3137  ecode7 = SWIG_AsVal_unsigned_SS_int(obj5, &val7);
3138  if (!SWIG_IsOK(ecode7)) {
3139    SWIG_exception_fail(SWIG_ArgError(ecode7), "in method '" "WBEM_ConnectServer" "', argument " "7"" of type '" "uint32_t""'");
3140  }
3141  arg7 = (uint32_t)(val7);
3142  res8 = SWIG_AsCharPtrAndSize(obj6, &buf8, NULL, &alloc8);
3143  if (!SWIG_IsOK(res8)) {
3144    SWIG_exception_fail(SWIG_ArgError(res8), "in method '" "WBEM_ConnectServer" "', argument " "8"" of type '" "char const *""'");
3145  }
3146  arg8 = (char *)(buf8);
3147  res9 = SWIG_ConvertPtr(obj7, &argp9,SWIGTYPE_p_IWbemContext, 0 |  0 );
3148  if (!SWIG_IsOK(res9)) {
3149    SWIG_exception_fail(SWIG_ArgError(res9), "in method '" "WBEM_ConnectServer" "', argument " "9"" of type '" "struct IWbemContext *""'");
3150  }
3151  arg9 = (struct IWbemContext *)(argp9);
3152  result = WBEM_ConnectServer(arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4,(char const *)arg5,(char const *)arg6,arg7,(char const *)arg8,arg9,arg10);
3153  if (!W_ERROR_IS_OK(result)) {
3154    PyErr_SetWERROR(result);
3155    SWIG_fail;
3156  } else if (resultobj == NULL) {
3157    resultobj = Py_None;
3158  }
3159  {
3160    PyObject *o;
3161    o = SWIG_NewPointerObj(*arg10, SWIGTYPE_p_IWbemServices, 0);
3162    push_object(&resultobj, o);
3163  }
3164  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3165  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
3166  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
3167  if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
3168  if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
3169  if (alloc8 == SWIG_NEWOBJ) free((char*)buf8);
3170  return resultobj;
3171fail:
3172  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
3173  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
3174  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
3175  if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
3176  if (alloc6 == SWIG_NEWOBJ) free((char*)buf6);
3177  if (alloc8 == SWIG_NEWOBJ) free((char*)buf8);
3178  return NULL;
3179}
3180
3181
3182SWIGINTERN PyObject *_wrap_IUnknown_Release(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3183  PyObject *resultobj = 0;
3184  IUnknown *arg1 = (IUnknown *) 0 ;
3185  TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3186  void *argp1 = 0 ;
3187  int res1 = 0 ;
3188  PyObject *swig_obj[1] ;
3189  uint32_t result;
3190
3191  arg2 = NULL;
3192  if (!args) SWIG_fail;
3193  swig_obj[0] = args;
3194  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IUnknown, 0 |  0 );
3195  if (!SWIG_IsOK(res1)) {
3196    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IUnknown_Release" "', argument " "1"" of type '" "IUnknown *""'");
3197  }
3198  arg1 = (IUnknown *)(argp1);
3199  result = (uint32_t)IUnknown_Release(arg1,arg2);
3200  resultobj = SWIG_From_unsigned_SS_int((unsigned int)(result));
3201  return resultobj;
3202fail:
3203  return NULL;
3204}
3205
3206
3207SWIGINTERN PyObject *_wrap_new_IUnknown(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3208  PyObject *resultobj = 0;
3209  IUnknown *result = 0 ;
3210
3211  if (!SWIG_Python_UnpackTuple(args,"new_IUnknown",0,0,0)) SWIG_fail;
3212  result = (IUnknown *)calloc(1, sizeof(IUnknown));
3213  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IUnknown, SWIG_POINTER_NEW |  0 );
3214  return resultobj;
3215fail:
3216  return NULL;
3217}
3218
3219
3220SWIGINTERN PyObject *_wrap_delete_IUnknown(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3221  PyObject *resultobj = 0;
3222  IUnknown *arg1 = (IUnknown *) 0 ;
3223  void *argp1 = 0 ;
3224  int res1 = 0 ;
3225  PyObject *swig_obj[1] ;
3226
3227  if (!args) SWIG_fail;
3228  swig_obj[0] = args;
3229  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IUnknown, SWIG_POINTER_DISOWN |  0 );
3230  if (!SWIG_IsOK(res1)) {
3231    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IUnknown" "', argument " "1"" of type '" "IUnknown *""'");
3232  }
3233  arg1 = (IUnknown *)(argp1);
3234  free((char *) arg1);
3235  resultobj = SWIG_Py_Void();
3236  return resultobj;
3237fail:
3238  return NULL;
3239}
3240
3241
3242SWIGINTERN PyObject *IUnknown_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3243  PyObject *obj;
3244  if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
3245  SWIG_TypeNewClientData(SWIGTYPE_p_IUnknown, SWIG_NewClientData(obj));
3246  return SWIG_Py_Void();
3247}
3248
3249SWIGINTERN PyObject *IUnknown_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3250  return SWIG_Python_InitShadowInstance(args);
3251}
3252
3253SWIGINTERN PyObject *_wrap_IWbemServices_ExecQuery(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3254  PyObject *resultobj = 0;
3255  IWbemServices *arg1 = (IWbemServices *) 0 ;
3256  TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3257  struct BSTR arg3 ;
3258  struct BSTR arg4 ;
3259  int32_t arg5 ;
3260  struct IWbemContext *arg6 = (struct IWbemContext *) 0 ;
3261  struct IEnumWbemClassObject **arg7 = (struct IEnumWbemClassObject **) 0 ;
3262  void *argp1 = 0 ;
3263  int res1 = 0 ;
3264  int val5 ;
3265  int ecode5 = 0 ;
3266  void *argp6 = 0 ;
3267  int res6 = 0 ;
3268  struct IEnumWbemClassObject *temp7 ;
3269  PyObject * obj0 = 0 ;
3270  PyObject * obj1 = 0 ;
3271  PyObject * obj2 = 0 ;
3272  PyObject * obj3 = 0 ;
3273  PyObject * obj4 = 0 ;
3274  char *  kwnames[] = {
3275    (char *) "self",(char *) "strQueryLanguage",(char *) "strQuery",(char *) "lFlags",(char *) "pCtx", NULL
3276  };
3277  WERROR result;
3278
3279  arg2 = NULL;
3280  {
3281    arg7 = &temp7;
3282  }
3283  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOO:IWbemServices_ExecQuery",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
3284  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IWbemServices, 0 |  0 );
3285  if (!SWIG_IsOK(res1)) {
3286    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IWbemServices_ExecQuery" "', argument " "1"" of type '" "IWbemServices *""'");
3287  }
3288  arg1 = (IWbemServices *)(argp1);
3289  {
3290    (&arg3)->data = PyString_AsString(obj1);
3291  }
3292  {
3293    (&arg4)->data = PyString_AsString(obj2);
3294  }
3295  ecode5 = SWIG_AsVal_int(obj3, &val5);
3296  if (!SWIG_IsOK(ecode5)) {
3297    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "IWbemServices_ExecQuery" "', argument " "5"" of type '" "int32_t""'");
3298  }
3299  arg5 = (int32_t)(val5);
3300  res6 = SWIG_ConvertPtr(obj4, &argp6,SWIGTYPE_p_IWbemContext, 0 |  0 );
3301  if (!SWIG_IsOK(res6)) {
3302    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "IWbemServices_ExecQuery" "', argument " "6"" of type '" "struct IWbemContext *""'");
3303  }
3304  arg6 = (struct IWbemContext *)(argp6);
3305  result = IWbemServices_ExecQuery(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
3306  if (!W_ERROR_IS_OK(result)) {
3307    PyErr_SetWERROR(result);
3308    SWIG_fail;
3309  } else if (resultobj == NULL) {
3310    resultobj = Py_None;
3311  }
3312  {
3313    PyObject *o;
3314    o = SWIG_NewPointerObj(*arg7, SWIGTYPE_p_IEnumWbemClassObject, 0);
3315    push_object(&resultobj, o);
3316  }
3317  return resultobj;
3318fail:
3319  return NULL;
3320}
3321
3322
3323SWIGINTERN PyObject *_wrap_IWbemServices_ExecNotificationQuery(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3324  PyObject *resultobj = 0;
3325  IWbemServices *arg1 = (IWbemServices *) 0 ;
3326  TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3327  struct BSTR arg3 ;
3328  struct BSTR arg4 ;
3329  int32_t arg5 ;
3330  struct IWbemContext *arg6 = (struct IWbemContext *) 0 ;
3331  struct IEnumWbemClassObject **arg7 = (struct IEnumWbemClassObject **) 0 ;
3332  void *argp1 = 0 ;
3333  int res1 = 0 ;
3334  int val5 ;
3335  int ecode5 = 0 ;
3336  void *argp6 = 0 ;
3337  int res6 = 0 ;
3338  struct IEnumWbemClassObject *temp7 ;
3339  PyObject * obj0 = 0 ;
3340  PyObject * obj1 = 0 ;
3341  PyObject * obj2 = 0 ;
3342  PyObject * obj3 = 0 ;
3343  PyObject * obj4 = 0 ;
3344  char *  kwnames[] = {
3345    (char *) "self",(char *) "strQueryLanguage",(char *) "strQuery",(char *) "lFlags",(char *) "pCtx", NULL
3346  };
3347  WERROR result;
3348
3349  arg2 = NULL;
3350  {
3351    arg7 = &temp7;
3352  }
3353  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOOO:IWbemServices_ExecNotificationQuery",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
3354  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IWbemServices, 0 |  0 );
3355  if (!SWIG_IsOK(res1)) {
3356    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IWbemServices_ExecNotificationQuery" "', argument " "1"" of type '" "IWbemServices *""'");
3357  }
3358  arg1 = (IWbemServices *)(argp1);
3359  {
3360    (&arg3)->data = PyString_AsString(obj1);
3361  }
3362  {
3363    (&arg4)->data = PyString_AsString(obj2);
3364  }
3365  ecode5 = SWIG_AsVal_int(obj3, &val5);
3366  if (!SWIG_IsOK(ecode5)) {
3367    SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "IWbemServices_ExecNotificationQuery" "', argument " "5"" of type '" "int32_t""'");
3368  }
3369  arg5 = (int32_t)(val5);
3370  res6 = SWIG_ConvertPtr(obj4, &argp6,SWIGTYPE_p_IWbemContext, 0 |  0 );
3371  if (!SWIG_IsOK(res6)) {
3372    SWIG_exception_fail(SWIG_ArgError(res6), "in method '" "IWbemServices_ExecNotificationQuery" "', argument " "6"" of type '" "struct IWbemContext *""'");
3373  }
3374  arg6 = (struct IWbemContext *)(argp6);
3375  result = IWbemServices_ExecNotificationQuery(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
3376  if (!W_ERROR_IS_OK(result)) {
3377    PyErr_SetWERROR(result);
3378    SWIG_fail;
3379  } else if (resultobj == NULL) {
3380    resultobj = Py_None;
3381  }
3382  {
3383    PyObject *o;
3384    o = SWIG_NewPointerObj(*arg7, SWIGTYPE_p_IEnumWbemClassObject, 0);
3385    push_object(&resultobj, o);
3386  }
3387  return resultobj;
3388fail:
3389  return NULL;
3390}
3391
3392
3393SWIGINTERN PyObject *_wrap_IWbemServices_CreateInstanceEnum(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3394  PyObject *resultobj = 0;
3395  IWbemServices *arg1 = (IWbemServices *) 0 ;
3396  TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3397  struct BSTR arg3 ;
3398  int32_t arg4 ;
3399  struct IWbemContext *arg5 = (struct IWbemContext *) 0 ;
3400  struct IEnumWbemClassObject **arg6 = (struct IEnumWbemClassObject **) 0 ;
3401  void *argp1 = 0 ;
3402  int res1 = 0 ;
3403  int val4 ;
3404  int ecode4 = 0 ;
3405  void *argp5 = 0 ;
3406  int res5 = 0 ;
3407  struct IEnumWbemClassObject *temp6 ;
3408  PyObject * obj0 = 0 ;
3409  PyObject * obj1 = 0 ;
3410  PyObject * obj2 = 0 ;
3411  PyObject * obj3 = 0 ;
3412  char *  kwnames[] = {
3413    (char *) "self",(char *) "strClass",(char *) "lFlags",(char *) "pCtx", NULL
3414  };
3415  WERROR result;
3416
3417  arg2 = NULL;
3418  {
3419    arg6 = &temp6;
3420  }
3421  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOOO:IWbemServices_CreateInstanceEnum",kwnames,&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
3422  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IWbemServices, 0 |  0 );
3423  if (!SWIG_IsOK(res1)) {
3424    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IWbemServices_CreateInstanceEnum" "', argument " "1"" of type '" "IWbemServices *""'");
3425  }
3426  arg1 = (IWbemServices *)(argp1);
3427  {
3428    (&arg3)->data = PyString_AsString(obj1);
3429  }
3430  ecode4 = SWIG_AsVal_int(obj2, &val4);
3431  if (!SWIG_IsOK(ecode4)) {
3432    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "IWbemServices_CreateInstanceEnum" "', argument " "4"" of type '" "int32_t""'");
3433  }
3434  arg4 = (int32_t)(val4);
3435  res5 = SWIG_ConvertPtr(obj3, &argp5,SWIGTYPE_p_IWbemContext, 0 |  0 );
3436  if (!SWIG_IsOK(res5)) {
3437    SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "IWbemServices_CreateInstanceEnum" "', argument " "5"" of type '" "struct IWbemContext *""'");
3438  }
3439  arg5 = (struct IWbemContext *)(argp5);
3440  result = IWbemServices_CreateInstanceEnum(arg1,arg2,arg3,arg4,arg5,arg6);
3441  if (!W_ERROR_IS_OK(result)) {
3442    PyErr_SetWERROR(result);
3443    SWIG_fail;
3444  } else if (resultobj == NULL) {
3445    resultobj = Py_None;
3446  }
3447  {
3448    PyObject *o;
3449    o = SWIG_NewPointerObj(*arg6, SWIGTYPE_p_IEnumWbemClassObject, 0);
3450    push_object(&resultobj, o);
3451  }
3452  return resultobj;
3453fail:
3454  return NULL;
3455}
3456
3457
3458SWIGINTERN PyObject *_wrap_new_IWbemServices(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3459  PyObject *resultobj = 0;
3460  IWbemServices *result = 0 ;
3461
3462  if (!SWIG_Python_UnpackTuple(args,"new_IWbemServices",0,0,0)) SWIG_fail;
3463  result = (IWbemServices *)calloc(1, sizeof(IWbemServices));
3464  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IWbemServices, SWIG_POINTER_NEW |  0 );
3465  return resultobj;
3466fail:
3467  return NULL;
3468}
3469
3470
3471SWIGINTERN PyObject *_wrap_delete_IWbemServices(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3472  PyObject *resultobj = 0;
3473  IWbemServices *arg1 = (IWbemServices *) 0 ;
3474  void *argp1 = 0 ;
3475  int res1 = 0 ;
3476  PyObject *swig_obj[1] ;
3477
3478  if (!args) SWIG_fail;
3479  swig_obj[0] = args;
3480  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IWbemServices, SWIG_POINTER_DISOWN |  0 );
3481  if (!SWIG_IsOK(res1)) {
3482    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IWbemServices" "', argument " "1"" of type '" "IWbemServices *""'");
3483  }
3484  arg1 = (IWbemServices *)(argp1);
3485  free((char *) arg1);
3486  resultobj = SWIG_Py_Void();
3487  return resultobj;
3488fail:
3489  return NULL;
3490}
3491
3492
3493SWIGINTERN PyObject *IWbemServices_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3494  PyObject *obj;
3495  if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
3496  SWIG_TypeNewClientData(SWIGTYPE_p_IWbemServices, SWIG_NewClientData(obj));
3497  return SWIG_Py_Void();
3498}
3499
3500SWIGINTERN PyObject *IWbemServices_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3501  return SWIG_Python_InitShadowInstance(args);
3502}
3503
3504SWIGINTERN PyObject *_wrap_IEnumWbemClassObject_Reset(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3505  PyObject *resultobj = 0;
3506  IEnumWbemClassObject *arg1 = (IEnumWbemClassObject *) 0 ;
3507  TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3508  void *argp1 = 0 ;
3509  int res1 = 0 ;
3510  PyObject *swig_obj[1] ;
3511  WERROR result;
3512
3513  arg2 = NULL;
3514  if (!args) SWIG_fail;
3515  swig_obj[0] = args;
3516  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IEnumWbemClassObject, 0 |  0 );
3517  if (!SWIG_IsOK(res1)) {
3518    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IEnumWbemClassObject_Reset" "', argument " "1"" of type '" "IEnumWbemClassObject *""'");
3519  }
3520  arg1 = (IEnumWbemClassObject *)(argp1);
3521  result = IEnumWbemClassObject_Reset(arg1,arg2);
3522  if (!W_ERROR_IS_OK(result)) {
3523    PyErr_SetWERROR(result);
3524    SWIG_fail;
3525  } else if (resultobj == NULL) {
3526    resultobj = Py_None;
3527  }
3528  return resultobj;
3529fail:
3530  return NULL;
3531}
3532
3533
3534SWIGINTERN PyObject *_wrap_new_IEnumWbemClassObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3535  PyObject *resultobj = 0;
3536  IEnumWbemClassObject *result = 0 ;
3537
3538  if (!SWIG_Python_UnpackTuple(args,"new_IEnumWbemClassObject",0,0,0)) SWIG_fail;
3539  result = (IEnumWbemClassObject *)calloc(1, sizeof(IEnumWbemClassObject));
3540  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_IEnumWbemClassObject, SWIG_POINTER_NEW |  0 );
3541  return resultobj;
3542fail:
3543  return NULL;
3544}
3545
3546
3547SWIGINTERN PyObject *_wrap_delete_IEnumWbemClassObject(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3548  PyObject *resultobj = 0;
3549  IEnumWbemClassObject *arg1 = (IEnumWbemClassObject *) 0 ;
3550  void *argp1 = 0 ;
3551  int res1 = 0 ;
3552  PyObject *swig_obj[1] ;
3553
3554  if (!args) SWIG_fail;
3555  swig_obj[0] = args;
3556  res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IEnumWbemClassObject, SWIG_POINTER_DISOWN |  0 );
3557  if (!SWIG_IsOK(res1)) {
3558    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_IEnumWbemClassObject" "', argument " "1"" of type '" "IEnumWbemClassObject *""'");
3559  }
3560  arg1 = (IEnumWbemClassObject *)(argp1);
3561  free((char *) arg1);
3562  resultobj = SWIG_Py_Void();
3563  return resultobj;
3564fail:
3565  return NULL;
3566}
3567
3568
3569SWIGINTERN PyObject *IEnumWbemClassObject_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3570  PyObject *obj;
3571  if (!SWIG_Python_UnpackTuple(args,(char*)"swigregister", 1, 1,&obj)) return NULL;
3572  SWIG_TypeNewClientData(SWIGTYPE_p_IEnumWbemClassObject, SWIG_NewClientData(obj));
3573  return SWIG_Py_Void();
3574}
3575
3576SWIGINTERN PyObject *IEnumWbemClassObject_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
3577  return SWIG_Python_InitShadowInstance(args);
3578}
3579
3580SWIGINTERN PyObject *_wrap_IEnumWbemClassObject_SmartNext(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *kwargs) {
3581  PyObject *resultobj = 0;
3582  struct IEnumWbemClassObject *arg1 = (struct IEnumWbemClassObject *) 0 ;
3583  TALLOC_CTX *arg2 = (TALLOC_CTX *) 0 ;
3584  int32_t arg3 ;
3585  uint32_t arg4 ;
3586  struct WbemClassObject **arg5 = (struct WbemClassObject **) 0 ;
3587  uint32_t *arg6 = (uint32_t *) 0 ;
3588  void *argp1 = 0 ;
3589  int res1 = 0 ;
3590  int val3 ;
3591  int ecode3 = 0 ;
3592  uint32_t uReturned4 ;
3593  PyObject * obj0 = 0 ;
3594  PyObject * obj1 = 0 ;
3595  PyObject * obj2 = 0 ;
3596  char *  kwnames[] = {
3597    (char *) "d",(char *) "lTimeout",(char *) "uCount", NULL
3598  };
3599  WERROR result;
3600
3601  arg2 = NULL;
3602  if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:IEnumWbemClassObject_SmartNext",kwnames,&obj0,&obj1,&obj2)) SWIG_fail;
3603  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_IEnumWbemClassObject, 0 |  0 );
3604  if (!SWIG_IsOK(res1)) {
3605    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IEnumWbemClassObject_SmartNext" "', argument " "1"" of type '" "struct IEnumWbemClassObject *""'");
3606  }
3607  arg1 = (struct IEnumWbemClassObject *)(argp1);
3608  ecode3 = SWIG_AsVal_int(obj1, &val3);
3609  if (!SWIG_IsOK(ecode3)) {
3610    SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IEnumWbemClassObject_SmartNext" "', argument " "3"" of type '" "int32_t""'");
3611  }
3612  arg3 = (int32_t)(val3);
3613  {
3614    if (PyLong_Check(obj2))
3615    arg4 = PyLong_AsUnsignedLong(obj2);
3616    else if (PyInt_Check(obj2))
3617    arg4 = PyInt_AsLong(obj2);
3618    else {
3619      PyErr_SetString(PyExc_TypeError,"Expected a long or an int");
3620      return NULL;
3621    }
3622    arg5 = talloc_array(NULL, struct WbemClassObject *, arg4);
3623    arg6 = &uReturned4;
3624  }
3625  result = IEnumWbemClassObject_SmartNext(arg1,arg2,arg3,arg4,arg5,arg6);
3626  if (!W_ERROR_IS_OK(result)) {
3627    PyErr_SetWERROR(result);
3628    SWIG_fail;
3629  } else if (resultobj == NULL) {
3630    resultobj = Py_None;
3631  }
3632  {
3633    uint32_t i;
3634    PyObject *o;
3635    int32_t error;
3636
3637    error = 0;
3638
3639    resultobj = PyTuple_New(*arg6);
3640    for (i = 0; i < *arg6; ++i) {
3641      if (!error) {
3642        o = PySWbemObject_FromWbemClassObject(arg5[i]);
3643        if (!o)
3644        --error;
3645        else
3646        error = PyTuple_SetItem(resultobj, i, o);
3647      }
3648      talloc_free(arg5[i]);
3649    }
3650    talloc_free(arg5);
3651    if (error) return NULL;
3652  }
3653  return resultobj;
3654fail:
3655  return NULL;
3656}
3657
3658
3659static PyMethodDef SwigMethods[] = {
3660	 { (char *)"WBEM_ConnectServer", (PyCFunction) _wrap_WBEM_ConnectServer, METH_VARARGS | METH_KEYWORDS, NULL},
3661	 { (char *)"IUnknown_Release", (PyCFunction)_wrap_IUnknown_Release, METH_O, NULL},
3662	 { (char *)"new_IUnknown", (PyCFunction)_wrap_new_IUnknown, METH_NOARGS, NULL},
3663	 { (char *)"delete_IUnknown", (PyCFunction)_wrap_delete_IUnknown, METH_O, NULL},
3664	 { (char *)"IUnknown_swigregister", IUnknown_swigregister, METH_VARARGS, NULL},
3665	 { (char *)"IUnknown_swiginit", IUnknown_swiginit, METH_VARARGS, NULL},
3666	 { (char *)"IWbemServices_ExecQuery", (PyCFunction) _wrap_IWbemServices_ExecQuery, METH_VARARGS | METH_KEYWORDS, NULL},
3667	 { (char *)"IWbemServices_ExecNotificationQuery", (PyCFunction) _wrap_IWbemServices_ExecNotificationQuery, METH_VARARGS | METH_KEYWORDS, NULL},
3668	 { (char *)"IWbemServices_CreateInstanceEnum", (PyCFunction) _wrap_IWbemServices_CreateInstanceEnum, METH_VARARGS | METH_KEYWORDS, NULL},
3669	 { (char *)"new_IWbemServices", (PyCFunction)_wrap_new_IWbemServices, METH_NOARGS, NULL},
3670	 { (char *)"delete_IWbemServices", (PyCFunction)_wrap_delete_IWbemServices, METH_O, NULL},
3671	 { (char *)"IWbemServices_swigregister", IWbemServices_swigregister, METH_VARARGS, NULL},
3672	 { (char *)"IWbemServices_swiginit", IWbemServices_swiginit, METH_VARARGS, NULL},
3673	 { (char *)"IEnumWbemClassObject_Reset", (PyCFunction)_wrap_IEnumWbemClassObject_Reset, METH_O, NULL},
3674	 { (char *)"new_IEnumWbemClassObject", (PyCFunction)_wrap_new_IEnumWbemClassObject, METH_NOARGS, NULL},
3675	 { (char *)"delete_IEnumWbemClassObject", (PyCFunction)_wrap_delete_IEnumWbemClassObject, METH_O, NULL},
3676	 { (char *)"IEnumWbemClassObject_swigregister", IEnumWbemClassObject_swigregister, METH_VARARGS, NULL},
3677	 { (char *)"IEnumWbemClassObject_swiginit", IEnumWbemClassObject_swiginit, METH_VARARGS, NULL},
3678	 { (char *)"IEnumWbemClassObject_SmartNext", (PyCFunction) _wrap_IEnumWbemClassObject_SmartNext, METH_VARARGS | METH_KEYWORDS, NULL},
3679	 { NULL, NULL, 0, NULL }
3680};
3681
3682
3683/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
3684
3685static swig_type_info _swigt__p_BSTR = {"_p_BSTR", "struct BSTR *", 0, 0, (void*)0, 0};
3686static swig_type_info _swigt__p_IEnumWbemClassObject = {"_p_IEnumWbemClassObject", "struct IEnumWbemClassObject *|IEnumWbemClassObject *", 0, 0, (void*)0, 0};
3687static swig_type_info _swigt__p_IUnknown = {"_p_IUnknown", "struct IUnknown *|IUnknown *", 0, 0, (void*)0, 0};
3688static swig_type_info _swigt__p_IWbemContext = {"_p_IWbemContext", "struct IWbemContext *", 0, 0, (void*)0, 0};
3689static swig_type_info _swigt__p_IWbemServices = {"_p_IWbemServices", "struct IWbemServices *|IWbemServices *", 0, 0, (void*)0, 0};
3690static swig_type_info _swigt__p_TALLOC_CTX = {"_p_TALLOC_CTX", "TALLOC_CTX *", 0, 0, (void*)0, 0};
3691static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
3692static swig_type_info _swigt__p_com_context = {"_p_com_context", "struct com_context *", 0, 0, (void*)0, 0};
3693static swig_type_info _swigt__p_int = {"_p_int", "intptr_t *|int *|int_least32_t *|int_fast32_t *|int32_t *|int_fast16_t *", 0, 0, (void*)0, 0};
3694static swig_type_info _swigt__p_long_long = {"_p_long_long", "int_least64_t *|int_fast64_t *|int64_t *|long long *|intmax_t *", 0, 0, (void*)0, 0};
3695static swig_type_info _swigt__p_p_IEnumWbemClassObject = {"_p_p_IEnumWbemClassObject", "struct IEnumWbemClassObject **", 0, 0, (void*)0, 0};
3696static swig_type_info _swigt__p_p_IWbemServices = {"_p_p_IWbemServices", "struct IWbemServices **", 0, 0, (void*)0, 0};
3697static swig_type_info _swigt__p_p_WbemClassObject = {"_p_p_WbemClassObject", "struct WbemClassObject **", 0, 0, (void*)0, 0};
3698static swig_type_info _swigt__p_short = {"_p_short", "short *|int_least16_t *|int16_t *", 0, 0, (void*)0, 0};
3699static swig_type_info _swigt__p_signed_char = {"_p_signed_char", "signed char *|int_least8_t *|int_fast8_t *|int8_t *", 0, 0, (void*)0, 0};
3700static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "unsigned char *|uint_least8_t *|uint_fast8_t *|uint8_t *", 0, 0, (void*)0, 0};
3701static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "uintptr_t *|uint_least32_t *|uint_fast32_t *|uint32_t *|unsigned int *|uint_fast16_t *", 0, 0, (void*)0, 0};
3702static swig_type_info _swigt__p_unsigned_long_long = {"_p_unsigned_long_long", "uint_least64_t *|uint_fast64_t *|uint64_t *|unsigned long long *|uintmax_t *", 0, 0, (void*)0, 0};
3703static swig_type_info _swigt__p_unsigned_short = {"_p_unsigned_short", "unsigned short *|uint_least16_t *|uint16_t *", 0, 0, (void*)0, 0};
3704
3705static swig_type_info *swig_type_initial[] = {
3706  &_swigt__p_BSTR,
3707  &_swigt__p_IEnumWbemClassObject,
3708  &_swigt__p_IUnknown,
3709  &_swigt__p_IWbemContext,
3710  &_swigt__p_IWbemServices,
3711  &_swigt__p_TALLOC_CTX,
3712  &_swigt__p_char,
3713  &_swigt__p_com_context,
3714  &_swigt__p_int,
3715  &_swigt__p_long_long,
3716  &_swigt__p_p_IEnumWbemClassObject,
3717  &_swigt__p_p_IWbemServices,
3718  &_swigt__p_p_WbemClassObject,
3719  &_swigt__p_short,
3720  &_swigt__p_signed_char,
3721  &_swigt__p_unsigned_char,
3722  &_swigt__p_unsigned_int,
3723  &_swigt__p_unsigned_long_long,
3724  &_swigt__p_unsigned_short,
3725};
3726
3727static swig_cast_info _swigc__p_BSTR[] = {  {&_swigt__p_BSTR, 0, 0, 0},{0, 0, 0, 0}};
3728static swig_cast_info _swigc__p_IEnumWbemClassObject[] = {  {&_swigt__p_IEnumWbemClassObject, 0, 0, 0},{0, 0, 0, 0}};
3729static swig_cast_info _swigc__p_IUnknown[] = {  {&_swigt__p_IUnknown, 0, 0, 0},{0, 0, 0, 0}};
3730static swig_cast_info _swigc__p_IWbemContext[] = {  {&_swigt__p_IWbemContext, 0, 0, 0},{0, 0, 0, 0}};
3731static swig_cast_info _swigc__p_IWbemServices[] = {  {&_swigt__p_IWbemServices, 0, 0, 0},{0, 0, 0, 0}};
3732static swig_cast_info _swigc__p_TALLOC_CTX[] = {  {&_swigt__p_TALLOC_CTX, 0, 0, 0},{0, 0, 0, 0}};
3733static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
3734static swig_cast_info _swigc__p_com_context[] = {  {&_swigt__p_com_context, 0, 0, 0},{0, 0, 0, 0}};
3735static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
3736static swig_cast_info _swigc__p_long_long[] = {  {&_swigt__p_long_long, 0, 0, 0},{0, 0, 0, 0}};
3737static swig_cast_info _swigc__p_p_IEnumWbemClassObject[] = {  {&_swigt__p_p_IEnumWbemClassObject, 0, 0, 0},{0, 0, 0, 0}};
3738static swig_cast_info _swigc__p_p_IWbemServices[] = {  {&_swigt__p_p_IWbemServices, 0, 0, 0},{0, 0, 0, 0}};
3739static swig_cast_info _swigc__p_p_WbemClassObject[] = {  {&_swigt__p_p_WbemClassObject, 0, 0, 0},{0, 0, 0, 0}};
3740static swig_cast_info _swigc__p_short[] = {  {&_swigt__p_short, 0, 0, 0},{0, 0, 0, 0}};
3741static swig_cast_info _swigc__p_signed_char[] = {  {&_swigt__p_signed_char, 0, 0, 0},{0, 0, 0, 0}};
3742static swig_cast_info _swigc__p_unsigned_char[] = {  {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
3743static swig_cast_info _swigc__p_unsigned_int[] = {  {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
3744static swig_cast_info _swigc__p_unsigned_long_long[] = {  {&_swigt__p_unsigned_long_long, 0, 0, 0},{0, 0, 0, 0}};
3745static swig_cast_info _swigc__p_unsigned_short[] = {  {&_swigt__p_unsigned_short, 0, 0, 0},{0, 0, 0, 0}};
3746
3747static swig_cast_info *swig_cast_initial[] = {
3748  _swigc__p_BSTR,
3749  _swigc__p_IEnumWbemClassObject,
3750  _swigc__p_IUnknown,
3751  _swigc__p_IWbemContext,
3752  _swigc__p_IWbemServices,
3753  _swigc__p_TALLOC_CTX,
3754  _swigc__p_char,
3755  _swigc__p_com_context,
3756  _swigc__p_int,
3757  _swigc__p_long_long,
3758  _swigc__p_p_IEnumWbemClassObject,
3759  _swigc__p_p_IWbemServices,
3760  _swigc__p_p_WbemClassObject,
3761  _swigc__p_short,
3762  _swigc__p_signed_char,
3763  _swigc__p_unsigned_char,
3764  _swigc__p_unsigned_int,
3765  _swigc__p_unsigned_long_long,
3766  _swigc__p_unsigned_short,
3767};
3768
3769
3770/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
3771
3772static swig_const_info swig_const_table[] = {
3773{0, 0, 0, 0.0, 0, 0}};
3774
3775#ifdef __cplusplus
3776}
3777#endif
3778/* -----------------------------------------------------------------------------
3779 * Type initialization:
3780 * This problem is tough by the requirement that no dynamic
3781 * memory is used. Also, since swig_type_info structures store pointers to
3782 * swig_cast_info structures and swig_cast_info structures store pointers back
3783 * to swig_type_info structures, we need some lookup code at initialization.
3784 * The idea is that swig generates all the structures that are needed.
3785 * The runtime then collects these partially filled structures.
3786 * The SWIG_InitializeModule function takes these initial arrays out of
3787 * swig_module, and does all the lookup, filling in the swig_module.types
3788 * array with the correct data and linking the correct swig_cast_info
3789 * structures together.
3790 *
3791 * The generated swig_type_info structures are assigned staticly to an initial
3792 * array. We just loop through that array, and handle each type individually.
3793 * First we lookup if this type has been already loaded, and if so, use the
3794 * loaded structure instead of the generated one. Then we have to fill in the
3795 * cast linked list. The cast data is initially stored in something like a
3796 * two-dimensional array. Each row corresponds to a type (there are the same
3797 * number of rows as there are in the swig_type_initial array). Each entry in
3798 * a column is one of the swig_cast_info structures for that type.
3799 * The cast_initial array is actually an array of arrays, because each row has
3800 * a variable number of columns. So to actually build the cast linked list,
3801 * we find the array of casts associated with the type, and loop through it
3802 * adding the casts to the list. The one last trick we need to do is making
3803 * sure the type pointer in the swig_cast_info struct is correct.
3804 *
3805 * First off, we lookup the cast->type name to see if it is already loaded.
3806 * There are three cases to handle:
3807 *  1) If the cast->type has already been loaded AND the type we are adding
3808 *     casting info to has not been loaded (it is in this module), THEN we
3809 *     replace the cast->type pointer with the type pointer that has already
3810 *     been loaded.
3811 *  2) If BOTH types (the one we are adding casting info to, and the
3812 *     cast->type) are loaded, THEN the cast info has already been loaded by
3813 *     the previous module so we just ignore it.
3814 *  3) Finally, if cast->type has not already been loaded, then we add that
3815 *     swig_cast_info to the linked list (because the cast->type) pointer will
3816 *     be correct.
3817 * ----------------------------------------------------------------------------- */
3818
3819#ifdef __cplusplus
3820extern "C" {
3821#if 0
3822} /* c-mode */
3823#endif
3824#endif
3825
3826#if 0
3827#define SWIGRUNTIME_DEBUG
3828#endif
3829
3830
3831SWIGRUNTIME void
3832SWIG_InitializeModule(void *clientdata) {
3833  size_t i;
3834  swig_module_info *module_head, *iter;
3835  int found, init;
3836
3837  clientdata = clientdata;
3838
3839  /* check to see if the circular list has been setup, if not, set it up */
3840  if (swig_module.next==0) {
3841    /* Initialize the swig_module */
3842    swig_module.type_initial = swig_type_initial;
3843    swig_module.cast_initial = swig_cast_initial;
3844    swig_module.next = &swig_module;
3845    init = 1;
3846  } else {
3847    init = 0;
3848  }
3849
3850  /* Try and load any already created modules */
3851  module_head = SWIG_GetModule(clientdata);
3852  if (!module_head) {
3853    /* This is the first module loaded for this interpreter */
3854    /* so set the swig module into the interpreter */
3855    SWIG_SetModule(clientdata, &swig_module);
3856    module_head = &swig_module;
3857  } else {
3858    /* the interpreter has loaded a SWIG module, but has it loaded this one? */
3859    found=0;
3860    iter=module_head;
3861    do {
3862      if (iter==&swig_module) {
3863        found=1;
3864        break;
3865      }
3866      iter=iter->next;
3867    } while (iter!= module_head);
3868
3869    /* if the is found in the list, then all is done and we may leave */
3870    if (found) return;
3871    /* otherwise we must add out module into the list */
3872    swig_module.next = module_head->next;
3873    module_head->next = &swig_module;
3874  }
3875
3876  /* When multiple interpeters are used, a module could have already been initialized in
3877       a different interpreter, but not yet have a pointer in this interpreter.
3878       In this case, we do not want to continue adding types... everything should be
3879       set up already */
3880  if (init == 0) return;
3881
3882  /* Now work on filling in swig_module.types */
3883#ifdef SWIGRUNTIME_DEBUG
3884  printf("SWIG_InitializeModule: size %d\n", swig_module.size);
3885#endif
3886  for (i = 0; i < swig_module.size; ++i) {
3887    swig_type_info *type = 0;
3888    swig_type_info *ret;
3889    swig_cast_info *cast;
3890
3891#ifdef SWIGRUNTIME_DEBUG
3892    printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
3893#endif
3894
3895    /* if there is another module already loaded */
3896    if (swig_module.next != &swig_module) {
3897      type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
3898    }
3899    if (type) {
3900      /* Overwrite clientdata field */
3901#ifdef SWIGRUNTIME_DEBUG
3902      printf("SWIG_InitializeModule: found type %s\n", type->name);
3903#endif
3904      if (swig_module.type_initial[i]->clientdata) {
3905        type->clientdata = swig_module.type_initial[i]->clientdata;
3906#ifdef SWIGRUNTIME_DEBUG
3907        printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
3908#endif
3909      }
3910    } else {
3911      type = swig_module.type_initial[i];
3912    }
3913
3914    /* Insert casting types */
3915    cast = swig_module.cast_initial[i];
3916    while (cast->type) {
3917      /* Don't need to add information already in the list */
3918      ret = 0;
3919#ifdef SWIGRUNTIME_DEBUG
3920      printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
3921#endif
3922      if (swig_module.next != &swig_module) {
3923        ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
3924#ifdef SWIGRUNTIME_DEBUG
3925        if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
3926#endif
3927      }
3928      if (ret) {
3929        if (type == swig_module.type_initial[i]) {
3930#ifdef SWIGRUNTIME_DEBUG
3931          printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
3932#endif
3933          cast->type = ret;
3934          ret = 0;
3935        } else {
3936          /* Check for casting already in the list */
3937          swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
3938#ifdef SWIGRUNTIME_DEBUG
3939          if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
3940#endif
3941          if (!ocast) ret = 0;
3942        }
3943      }
3944
3945      if (!ret) {
3946#ifdef SWIGRUNTIME_DEBUG
3947        printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
3948#endif
3949        if (type->cast) {
3950          type->cast->prev = cast;
3951          cast->next = type->cast;
3952        }
3953        type->cast = cast;
3954      }
3955      cast++;
3956    }
3957    /* Set entry in modules->types array equal to the type */
3958    swig_module.types[i] = type;
3959  }
3960  swig_module.types[i] = 0;
3961
3962#ifdef SWIGRUNTIME_DEBUG
3963  printf("**** SWIG_InitializeModule: Cast List ******\n");
3964  for (i = 0; i < swig_module.size; ++i) {
3965    int j = 0;
3966    swig_cast_info *cast = swig_module.cast_initial[i];
3967    printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
3968    while (cast->type) {
3969      printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
3970      cast++;
3971      ++j;
3972    }
3973    printf("---- Total casts: %d\n",j);
3974  }
3975  printf("**** SWIG_InitializeModule: Cast List ******\n");
3976#endif
3977}
3978
3979/* This function will propagate the clientdata field of type to
3980* any new swig_type_info structures that have been added into the list
3981* of equivalent types.  It is like calling
3982* SWIG_TypeClientData(type, clientdata) a second time.
3983*/
3984SWIGRUNTIME void
3985SWIG_PropagateClientData(void) {
3986  size_t i;
3987  swig_cast_info *equiv;
3988  static int init_run = 0;
3989
3990  if (init_run) return;
3991  init_run = 1;
3992
3993  for (i = 0; i < swig_module.size; i++) {
3994    if (swig_module.types[i]->clientdata) {
3995      equiv = swig_module.types[i]->cast;
3996      while (equiv) {
3997        if (!equiv->converter) {
3998          if (equiv->type && !equiv->type->clientdata)
3999          SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
4000        }
4001        equiv = equiv->next;
4002      }
4003    }
4004  }
4005}
4006
4007#ifdef __cplusplus
4008#if 0
4009{
4010  /* c-mode */
4011#endif
4012}
4013#endif
4014
4015
4016
4017#ifdef __cplusplus
4018extern "C" {
4019#endif
4020
4021  /* Python-specific SWIG API */
4022#define SWIG_newvarlink()                             SWIG_Python_newvarlink()
4023#define SWIG_addvarlink(p, name, get_attr, set_attr)  SWIG_Python_addvarlink(p, name, get_attr, set_attr)
4024#define SWIG_InstallConstants(d, constants)           SWIG_Python_InstallConstants(d, constants)
4025
4026  /* -----------------------------------------------------------------------------
4027   * global variable support code.
4028   * ----------------------------------------------------------------------------- */
4029
4030  typedef struct swig_globalvar {
4031    char       *name;                  /* Name of global variable */
4032    PyObject *(*get_attr)(void);       /* Return the current value */
4033    int       (*set_attr)(PyObject *); /* Set the value */
4034    struct swig_globalvar *next;
4035  } swig_globalvar;
4036
4037  typedef struct swig_varlinkobject {
4038    PyObject_HEAD
4039    swig_globalvar *vars;
4040  } swig_varlinkobject;
4041
4042  SWIGINTERN PyObject *
4043  swig_varlink_repr(swig_varlinkobject *SWIGUNUSEDPARM(v)) {
4044    return PyString_FromString("<Swig global variables>");
4045  }
4046
4047  SWIGINTERN PyObject *
4048  swig_varlink_str(swig_varlinkobject *v) {
4049    PyObject *str = PyString_FromString("(");
4050    swig_globalvar  *var;
4051    for (var = v->vars; var; var=var->next) {
4052      PyString_ConcatAndDel(&str,PyString_FromString(var->name));
4053      if (var->next) PyString_ConcatAndDel(&str,PyString_FromString(", "));
4054    }
4055    PyString_ConcatAndDel(&str,PyString_FromString(")"));
4056    return str;
4057  }
4058
4059  SWIGINTERN int
4060  swig_varlink_print(swig_varlinkobject *v, FILE *fp, int SWIGUNUSEDPARM(flags)) {
4061    PyObject *str = swig_varlink_str(v);
4062    fprintf(fp,"Swig global variables ");
4063    fprintf(fp,"%s\n", PyString_AsString(str));
4064    Py_DECREF(str);
4065    return 0;
4066  }
4067
4068  SWIGINTERN void
4069  swig_varlink_dealloc(swig_varlinkobject *v) {
4070    swig_globalvar *var = v->vars;
4071    while (var) {
4072      swig_globalvar *n = var->next;
4073      free(var->name);
4074      free(var);
4075      var = n;
4076    }
4077  }
4078
4079  SWIGINTERN PyObject *
4080  swig_varlink_getattr(swig_varlinkobject *v, char *n) {
4081    PyObject *res = NULL;
4082    swig_globalvar *var = v->vars;
4083    while (var) {
4084      if (strcmp(var->name,n) == 0) {
4085        res = (*var->get_attr)();
4086        break;
4087      }
4088      var = var->next;
4089    }
4090    if (res == NULL && !PyErr_Occurred()) {
4091      PyErr_SetString(PyExc_NameError,"Unknown C global variable");
4092    }
4093    return res;
4094  }
4095
4096  SWIGINTERN int
4097  swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) {
4098    int res = 1;
4099    swig_globalvar *var = v->vars;
4100    while (var) {
4101      if (strcmp(var->name,n) == 0) {
4102        res = (*var->set_attr)(p);
4103        break;
4104      }
4105      var = var->next;
4106    }
4107    if (res == 1 && !PyErr_Occurred()) {
4108      PyErr_SetString(PyExc_NameError,"Unknown C global variable");
4109    }
4110    return res;
4111  }
4112
4113  SWIGINTERN PyTypeObject*
4114  swig_varlink_type(void) {
4115    static char varlink__doc__[] = "Swig var link object";
4116    static PyTypeObject varlink_type;
4117    static int type_init = 0;
4118    if (!type_init) {
4119      const PyTypeObject tmp
4120      = {
4121        PyObject_HEAD_INIT(NULL)
4122        0,                                  /* Number of items in variable part (ob_size) */
4123        (char *)"swigvarlink",              /* Type name (tp_name) */
4124        sizeof(swig_varlinkobject),         /* Basic size (tp_basicsize) */
4125        0,                                  /* Itemsize (tp_itemsize) */
4126        (destructor) swig_varlink_dealloc,   /* Deallocator (tp_dealloc) */
4127        (printfunc) swig_varlink_print,     /* Print (tp_print) */
4128        (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */
4129        (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */
4130        0,                                  /* tp_compare */
4131        (reprfunc) swig_varlink_repr,       /* tp_repr */
4132        0,                                  /* tp_as_number */
4133        0,                                  /* tp_as_sequence */
4134        0,                                  /* tp_as_mapping */
4135        0,                                  /* tp_hash */
4136        0,                                  /* tp_call */
4137        (reprfunc)swig_varlink_str,        /* tp_str */
4138        0,                                  /* tp_getattro */
4139        0,                                  /* tp_setattro */
4140        0,                                  /* tp_as_buffer */
4141        0,                                  /* tp_flags */
4142        varlink__doc__,                     /* tp_doc */
4143        0,                                  /* tp_traverse */
4144        0,                                  /* tp_clear */
4145        0,                                  /* tp_richcompare */
4146        0,                                  /* tp_weaklistoffset */
4147#if PY_VERSION_HEX >= 0x02020000
4148        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
4149#endif
4150#if PY_VERSION_HEX >= 0x02030000
4151        0,                                  /* tp_del */
4152#endif
4153#ifdef COUNT_ALLOCS
4154        0,0,0,0                             /* tp_alloc -> tp_next */
4155#endif
4156      };
4157      varlink_type = tmp;
4158      varlink_type.ob_type = &PyType_Type;
4159      type_init = 1;
4160    }
4161    return &varlink_type;
4162  }
4163
4164  /* Create a variable linking object for use later */
4165  SWIGINTERN PyObject *
4166  SWIG_Python_newvarlink(void) {
4167    swig_varlinkobject *result = PyObject_NEW(swig_varlinkobject, swig_varlink_type());
4168    if (result) {
4169      result->vars = 0;
4170    }
4171    return ((PyObject*) result);
4172  }
4173
4174  SWIGINTERN void
4175  SWIG_Python_addvarlink(PyObject *p, char *name, PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) {
4176    swig_varlinkobject *v = (swig_varlinkobject *) p;
4177    swig_globalvar *gv = (swig_globalvar *) malloc(sizeof(swig_globalvar));
4178    if (gv) {
4179      size_t size = strlen(name)+1;
4180      gv->name = (char *)malloc(size);
4181      if (gv->name) {
4182        strncpy(gv->name,name,size);
4183        gv->get_attr = get_attr;
4184        gv->set_attr = set_attr;
4185        gv->next = v->vars;
4186      }
4187    }
4188    v->vars = gv;
4189  }
4190
4191  SWIGINTERN PyObject *
4192  SWIG_globals(void) {
4193    static PyObject *_SWIG_globals = 0;
4194    if (!_SWIG_globals) _SWIG_globals = SWIG_newvarlink();
4195    return _SWIG_globals;
4196  }
4197
4198  /* -----------------------------------------------------------------------------
4199   * constants/methods manipulation
4200   * ----------------------------------------------------------------------------- */
4201
4202  /* Install Constants */
4203  SWIGINTERN void
4204  SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]) {
4205    PyObject *obj = 0;
4206    size_t i;
4207    for (i = 0; constants[i].type; ++i) {
4208      switch(constants[i].type) {
4209      case SWIG_PY_POINTER:
4210        obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
4211        break;
4212      case SWIG_PY_BINARY:
4213        obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
4214        break;
4215      default:
4216        obj = 0;
4217        break;
4218      }
4219      if (obj) {
4220        PyDict_SetItemString(d, constants[i].name, obj);
4221        Py_DECREF(obj);
4222      }
4223    }
4224  }
4225
4226  /* -----------------------------------------------------------------------------*/
4227  /* Fix SwigMethods to carry the callback ptrs when needed */
4228  /* -----------------------------------------------------------------------------*/
4229
4230  SWIGINTERN void
4231  SWIG_Python_FixMethods(PyMethodDef *methods,
4232    swig_const_info *const_table,
4233    swig_type_info **types,
4234    swig_type_info **types_initial) {
4235    size_t i;
4236    for (i = 0; methods[i].ml_name; ++i) {
4237      const char *c = methods[i].ml_doc;
4238      if (c && (c = strstr(c, "swig_ptr: "))) {
4239        int j;
4240        swig_const_info *ci = 0;
4241        const char *name = c + 10;
4242        for (j = 0; const_table[j].type; ++j) {
4243          if (strncmp(const_table[j].name, name,
4244              strlen(const_table[j].name)) == 0) {
4245            ci = &(const_table[j]);
4246            break;
4247          }
4248        }
4249        if (ci) {
4250          size_t shift = (ci->ptype) - types;
4251          swig_type_info *ty = types_initial[shift];
4252          size_t ldoc = (c - methods[i].ml_doc);
4253          size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
4254          char *ndoc = (char*)malloc(ldoc + lptr + 10);
4255          if (ndoc) {
4256            char *buff = ndoc;
4257            void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
4258            if (ptr) {
4259              strncpy(buff, methods[i].ml_doc, ldoc);
4260              buff += ldoc;
4261              strncpy(buff, "swig_ptr: ", 10);
4262              buff += 10;
4263              SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
4264              methods[i].ml_doc = ndoc;
4265            }
4266          }
4267        }
4268      }
4269    }
4270  }
4271
4272#ifdef __cplusplus
4273}
4274#endif
4275
4276/* -----------------------------------------------------------------------------*
4277 *  Partial Init method
4278 * -----------------------------------------------------------------------------*/
4279
4280#ifdef __cplusplus
4281extern "C"
4282#endif
4283SWIGEXPORT void SWIG_init(void) {
4284  PyObject *m, *d;
4285
4286  /* Fix SwigMethods to carry the callback ptrs when needed */
4287  SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial);
4288
4289  m = Py_InitModule((char *) SWIG_name, SwigMethods);
4290  d = PyModule_GetDict(m);
4291
4292  SWIG_InitializeModule(0);
4293  SWIG_InstallConstants(d,swig_const_table);
4294
4295
4296
4297
4298  mod_win32_client = PyImport_ImportModule("win32com.client");
4299  mod_pywintypes = PyImport_ImportModule("pywintypes");
4300  ComError = PyObject_GetAttrString(mod_pywintypes, "com_error");
4301
4302  wmi_init(&com_ctx, NULL);
4303  {
4304    PyObject *pModule;
4305
4306    pModule = PyImport_ImportModule( "win32com.client" );
4307  }
4308
4309}
4310
4311