1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 3.0.7
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 #include "../config/config.h"
12 
13 
14 #define SWIGPERL
15 #define SWIG_CASTRANK_MODE
16 
17 /* -----------------------------------------------------------------------------
18  *  This section contains generic SWIG labels for method/variable
19  *  declarations/attributes, and other compiler dependent labels.
20  * ----------------------------------------------------------------------------- */
21 
22 /* template workaround for compilers that cannot correctly implement the C++ standard */
23 #ifndef SWIGTEMPLATEDISAMBIGUATOR
24 # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
25 #  define SWIGTEMPLATEDISAMBIGUATOR template
26 # elif defined(__HP_aCC)
27 /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
28 /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
29 #  define SWIGTEMPLATEDISAMBIGUATOR template
30 # else
31 #  define SWIGTEMPLATEDISAMBIGUATOR
32 # endif
33 #endif
34 
35 /* inline attribute */
36 #ifndef SWIGINLINE
37 # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
38 #   define SWIGINLINE inline
39 # else
40 #   define SWIGINLINE
41 # endif
42 #endif
43 
44 /* attribute recognised by some compilers to avoid 'unused' warnings */
45 #ifndef SWIGUNUSED
46 # if defined(__GNUC__)
47 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
48 #     define SWIGUNUSED __attribute__ ((__unused__))
49 #   else
50 #     define SWIGUNUSED
51 #   endif
52 # elif defined(__ICC)
53 #   define SWIGUNUSED __attribute__ ((__unused__))
54 # else
55 #   define SWIGUNUSED
56 # endif
57 #endif
58 
59 #ifndef SWIG_MSC_UNSUPPRESS_4505
60 # if defined(_MSC_VER)
61 #   pragma warning(disable : 4505) /* unreferenced local function has been removed */
62 # endif
63 #endif
64 
65 #ifndef SWIGUNUSEDPARM
66 # ifdef __cplusplus
67 #   define SWIGUNUSEDPARM(p)
68 # else
69 #   define SWIGUNUSEDPARM(p) p SWIGUNUSED
70 # endif
71 #endif
72 
73 /* internal SWIG method */
74 #ifndef SWIGINTERN
75 # define SWIGINTERN static SWIGUNUSED
76 #endif
77 
78 /* internal inline SWIG method */
79 #ifndef SWIGINTERNINLINE
80 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
81 #endif
82 
83 /* exporting methods */
84 #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
85 #  ifndef GCC_HASCLASSVISIBILITY
86 #    define GCC_HASCLASSVISIBILITY
87 #  endif
88 #endif
89 
90 #ifndef SWIGEXPORT
91 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
92 #   if defined(STATIC_LINKED)
93 #     define SWIGEXPORT
94 #   else
95 #     define SWIGEXPORT __declspec(dllexport)
96 #   endif
97 # else
98 #   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
99 #     define SWIGEXPORT __attribute__ ((visibility("default")))
100 #   else
101 #     define SWIGEXPORT
102 #   endif
103 # endif
104 #endif
105 
106 /* calling conventions for Windows */
107 #ifndef SWIGSTDCALL
108 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
109 #   define SWIGSTDCALL __stdcall
110 # else
111 #   define SWIGSTDCALL
112 # endif
113 #endif
114 
115 /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
116 #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
117 # define _CRT_SECURE_NO_DEPRECATE
118 #endif
119 
120 /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
121 #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
122 # define _SCL_SECURE_NO_DEPRECATE
123 #endif
124 
125 /* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
126 #if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
127 # define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
128 #endif
129 
130 /* Intel's compiler complains if a variable which was never initialised is
131  * cast to void, which is a common idiom which we use to indicate that we
132  * are aware a variable isn't used.  So we just silence that warning.
133  * See: https://github.com/swig/swig/issues/192 for more discussion.
134  */
135 #ifdef __INTEL_COMPILER
136 # pragma warning disable 592
137 #endif
138 
139 /* -----------------------------------------------------------------------------
140  * swigrun.swg
141  *
142  * This file contains generic C API SWIG runtime support for pointer
143  * type checking.
144  * ----------------------------------------------------------------------------- */
145 
146 /* This should only be incremented when either the layout of swig_type_info changes,
147    or for whatever reason, the runtime changes incompatibly */
148 #define SWIG_RUNTIME_VERSION "4"
149 
150 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
151 #ifdef SWIG_TYPE_TABLE
152 # define SWIG_QUOTE_STRING(x) #x
153 # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
154 # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
155 #else
156 # define SWIG_TYPE_TABLE_NAME
157 #endif
158 
159 /*
160   You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
161   creating a static or dynamic library from the SWIG runtime code.
162   In 99.9% of the cases, SWIG just needs to declare them as 'static'.
163 
164   But only do this if strictly necessary, ie, if you have problems
165   with your compiler or suchlike.
166 */
167 
168 #ifndef SWIGRUNTIME
169 # define SWIGRUNTIME SWIGINTERN
170 #endif
171 
172 #ifndef SWIGRUNTIMEINLINE
173 # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
174 #endif
175 
176 /*  Generic buffer size */
177 #ifndef SWIG_BUFFER_SIZE
178 # define SWIG_BUFFER_SIZE 1024
179 #endif
180 
181 /* Flags for pointer conversions */
182 #define SWIG_POINTER_DISOWN        0x1
183 #define SWIG_CAST_NEW_MEMORY       0x2
184 
185 /* Flags for new pointer objects */
186 #define SWIG_POINTER_OWN           0x1
187 
188 
189 /*
190    Flags/methods for returning states.
191 
192    The SWIG conversion methods, as ConvertPtr, return an integer
193    that tells if the conversion was successful or not. And if not,
194    an error code can be returned (see swigerrors.swg for the codes).
195 
196    Use the following macros/flags to set or process the returning
197    states.
198 
199    In old versions of SWIG, code such as the following was usually written:
200 
201      if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
202        // success code
203      } else {
204        //fail code
205      }
206 
207    Now you can be more explicit:
208 
209     int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
210     if (SWIG_IsOK(res)) {
211       // success code
212     } else {
213       // fail code
214     }
215 
216    which is the same really, but now you can also do
217 
218     Type *ptr;
219     int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
220     if (SWIG_IsOK(res)) {
221       // success code
222       if (SWIG_IsNewObj(res) {
223         ...
224 	delete *ptr;
225       } else {
226         ...
227       }
228     } else {
229       // fail code
230     }
231 
232    I.e., now SWIG_ConvertPtr can return new objects and you can
233    identify the case and take care of the deallocation. Of course that
234    also requires SWIG_ConvertPtr to return new result values, such as
235 
236       int SWIG_ConvertPtr(obj, ptr,...) {
237         if (<obj is ok>) {
238           if (<need new object>) {
239             *ptr = <ptr to new allocated object>;
240             return SWIG_NEWOBJ;
241           } else {
242             *ptr = <ptr to old object>;
243             return SWIG_OLDOBJ;
244           }
245         } else {
246           return SWIG_BADOBJ;
247         }
248       }
249 
250    Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
251    more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
252    SWIG errors code.
253 
254    Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
255    allows to return the 'cast rank', for example, if you have this
256 
257        int food(double)
258        int fooi(int);
259 
260    and you call
261 
262       food(1)   // cast rank '1'  (1 -> 1.0)
263       fooi(1)   // cast rank '0'
264 
265    just use the SWIG_AddCast()/SWIG_CheckState()
266 */
267 
268 #define SWIG_OK                    (0)
269 #define SWIG_ERROR                 (-1)
270 #define SWIG_IsOK(r)               (r >= 0)
271 #define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)
272 
273 /* The CastRankLimit says how many bits are used for the cast rank */
274 #define SWIG_CASTRANKLIMIT         (1 << 8)
275 /* The NewMask denotes the object was created (using new/malloc) */
276 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
277 /* The TmpMask is for in/out typemaps that use temporal objects */
278 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
279 /* Simple returning values */
280 #define SWIG_BADOBJ                (SWIG_ERROR)
281 #define SWIG_OLDOBJ                (SWIG_OK)
282 #define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
283 #define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
284 /* Check, add and del mask methods */
285 #define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
286 #define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
287 #define SWIG_IsNewObj(r)           (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
288 #define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
289 #define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
290 #define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
291 
292 /* Cast-Rank Mode */
293 #if defined(SWIG_CASTRANK_MODE)
294 #  ifndef SWIG_TypeRank
295 #    define SWIG_TypeRank             unsigned long
296 #  endif
297 #  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
298 #    define SWIG_MAXCASTRANK          (2)
299 #  endif
300 #  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
301 #  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
SWIG_AddCast(int r)302 SWIGINTERNINLINE int SWIG_AddCast(int r) {
303   return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
304 }
SWIG_CheckState(int r)305 SWIGINTERNINLINE int SWIG_CheckState(int r) {
306   return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
307 }
308 #else /* no cast-rank mode */
309 #  define SWIG_AddCast(r) (r)
310 #  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
311 #endif
312 
313 
314 #include <string.h>
315 
316 #ifdef __cplusplus
317 extern "C" {
318 #endif
319 
320 typedef void *(*swig_converter_func)(void *, int *);
321 typedef struct swig_type_info *(*swig_dycast_func)(void **);
322 
323 /* Structure to store information on one type */
324 typedef struct swig_type_info {
325   const char             *name;			/* mangled name of this type */
326   const char             *str;			/* human readable name of this type */
327   swig_dycast_func        dcast;		/* dynamic cast function down a hierarchy */
328   struct swig_cast_info  *cast;			/* linked list of types that can cast into this type */
329   void                   *clientdata;		/* language specific type data */
330   int                    owndata;		/* flag if the structure owns the clientdata */
331 } swig_type_info;
332 
333 /* Structure to store a type and conversion function used for casting */
334 typedef struct swig_cast_info {
335   swig_type_info         *type;			/* pointer to type that is equivalent to this type */
336   swig_converter_func     converter;		/* function to cast the void pointers */
337   struct swig_cast_info  *next;			/* pointer to next cast in linked list */
338   struct swig_cast_info  *prev;			/* pointer to the previous cast */
339 } swig_cast_info;
340 
341 /* Structure used to store module information
342  * Each module generates one structure like this, and the runtime collects
343  * all of these structures and stores them in a circularly linked list.*/
344 typedef struct swig_module_info {
345   swig_type_info         **types;		/* Array of pointers to swig_type_info structures that are in this module */
346   size_t                 size;		        /* Number of types in this module */
347   struct swig_module_info *next;		/* Pointer to next element in circularly linked list */
348   swig_type_info         **type_initial;	/* Array of initially generated type structures */
349   swig_cast_info         **cast_initial;	/* Array of initially generated casting structures */
350   void                    *clientdata;		/* Language specific module data */
351 } swig_module_info;
352 
353 /*
354   Compare two type names skipping the space characters, therefore
355   "char*" == "char *" and "Class<int>" == "Class<int >", etc.
356 
357   Return 0 when the two name types are equivalent, as in
358   strncmp, but skipping ' '.
359 */
360 SWIGRUNTIME int
SWIG_TypeNameComp(const char * f1,const char * l1,const char * f2,const char * l2)361 SWIG_TypeNameComp(const char *f1, const char *l1,
362 		  const char *f2, const char *l2) {
363   for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
364     while ((*f1 == ' ') && (f1 != l1)) ++f1;
365     while ((*f2 == ' ') && (f2 != l2)) ++f2;
366     if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
367   }
368   return (int)((l1 - f1) - (l2 - f2));
369 }
370 
371 /*
372   Check type equivalence in a name list like <name1>|<name2>|...
373   Return 0 if equal, -1 if nb < tb, 1 if nb > tb
374 */
375 SWIGRUNTIME int
SWIG_TypeCmp(const char * nb,const char * tb)376 SWIG_TypeCmp(const char *nb, const char *tb) {
377   int equiv = 1;
378   const char* te = tb + strlen(tb);
379   const char* ne = nb;
380   while (equiv != 0 && *ne) {
381     for (nb = ne; *ne; ++ne) {
382       if (*ne == '|') break;
383     }
384     equiv = SWIG_TypeNameComp(nb, ne, tb, te);
385     if (*ne) ++ne;
386   }
387   return equiv;
388 }
389 
390 /*
391   Check type equivalence in a name list like <name1>|<name2>|...
392   Return 0 if not equal, 1 if equal
393 */
394 SWIGRUNTIME int
SWIG_TypeEquiv(const char * nb,const char * tb)395 SWIG_TypeEquiv(const char *nb, const char *tb) {
396   return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
397 }
398 
399 /*
400   Check the typename
401 */
402 SWIGRUNTIME swig_cast_info *
SWIG_TypeCheck(const char * c,swig_type_info * ty)403 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
404   if (ty) {
405     swig_cast_info *iter = ty->cast;
406     while (iter) {
407       if (strcmp(iter->type->name, c) == 0) {
408         if (iter == ty->cast)
409           return iter;
410         /* Move iter to the top of the linked list */
411         iter->prev->next = iter->next;
412         if (iter->next)
413           iter->next->prev = iter->prev;
414         iter->next = ty->cast;
415         iter->prev = 0;
416         if (ty->cast) ty->cast->prev = iter;
417         ty->cast = iter;
418         return iter;
419       }
420       iter = iter->next;
421     }
422   }
423   return 0;
424 }
425 
426 /*
427   Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
428 */
429 SWIGRUNTIME swig_cast_info *
SWIG_TypeCheckStruct(swig_type_info * from,swig_type_info * ty)430 SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
431   if (ty) {
432     swig_cast_info *iter = ty->cast;
433     while (iter) {
434       if (iter->type == from) {
435         if (iter == ty->cast)
436           return iter;
437         /* Move iter to the top of the linked list */
438         iter->prev->next = iter->next;
439         if (iter->next)
440           iter->next->prev = iter->prev;
441         iter->next = ty->cast;
442         iter->prev = 0;
443         if (ty->cast) ty->cast->prev = iter;
444         ty->cast = iter;
445         return iter;
446       }
447       iter = iter->next;
448     }
449   }
450   return 0;
451 }
452 
453 /*
454   Cast a pointer up an inheritance hierarchy
455 */
456 SWIGRUNTIMEINLINE void *
SWIG_TypeCast(swig_cast_info * ty,void * ptr,int * newmemory)457 SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
458   return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
459 }
460 
461 /*
462    Dynamic pointer casting. Down an inheritance hierarchy
463 */
464 SWIGRUNTIME swig_type_info *
SWIG_TypeDynamicCast(swig_type_info * ty,void ** ptr)465 SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
466   swig_type_info *lastty = ty;
467   if (!ty || !ty->dcast) return ty;
468   while (ty && (ty->dcast)) {
469     ty = (*ty->dcast)(ptr);
470     if (ty) lastty = ty;
471   }
472   return lastty;
473 }
474 
475 /*
476   Return the name associated with this type
477 */
478 SWIGRUNTIMEINLINE const char *
SWIG_TypeName(const swig_type_info * ty)479 SWIG_TypeName(const swig_type_info *ty) {
480   return ty->name;
481 }
482 
483 /*
484   Return the pretty name associated with this type,
485   that is an unmangled type name in a form presentable to the user.
486 */
487 SWIGRUNTIME const char *
SWIG_TypePrettyName(const swig_type_info * type)488 SWIG_TypePrettyName(const swig_type_info *type) {
489   /* The "str" field contains the equivalent pretty names of the
490      type, separated by vertical-bar characters.  We choose
491      to print the last name, as it is often (?) the most
492      specific. */
493   if (!type) return NULL;
494   if (type->str != NULL) {
495     const char *last_name = type->str;
496     const char *s;
497     for (s = type->str; *s; s++)
498       if (*s == '|') last_name = s+1;
499     return last_name;
500   }
501   else
502     return type->name;
503 }
504 
505 /*
506    Set the clientdata field for a type
507 */
508 SWIGRUNTIME void
SWIG_TypeClientData(swig_type_info * ti,void * clientdata)509 SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
510   swig_cast_info *cast = ti->cast;
511   /* if (ti->clientdata == clientdata) return; */
512   ti->clientdata = clientdata;
513 
514   while (cast) {
515     if (!cast->converter) {
516       swig_type_info *tc = cast->type;
517       if (!tc->clientdata) {
518 	SWIG_TypeClientData(tc, clientdata);
519       }
520     }
521     cast = cast->next;
522   }
523 }
524 SWIGRUNTIME void
SWIG_TypeNewClientData(swig_type_info * ti,void * clientdata)525 SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
526   SWIG_TypeClientData(ti, clientdata);
527   ti->owndata = 1;
528 }
529 
530 /*
531   Search for a swig_type_info structure only by mangled name
532   Search is a O(log #types)
533 
534   We start searching at module start, and finish searching when start == end.
535   Note: if start == end at the beginning of the function, we go all the way around
536   the circular list.
537 */
538 SWIGRUNTIME swig_type_info *
SWIG_MangledTypeQueryModule(swig_module_info * start,swig_module_info * end,const char * name)539 SWIG_MangledTypeQueryModule(swig_module_info *start,
540                             swig_module_info *end,
541 		            const char *name) {
542   swig_module_info *iter = start;
543   do {
544     if (iter->size) {
545       size_t l = 0;
546       size_t r = iter->size - 1;
547       do {
548 	/* since l+r >= 0, we can (>> 1) instead (/ 2) */
549 	size_t i = (l + r) >> 1;
550 	const char *iname = iter->types[i]->name;
551 	if (iname) {
552 	  int compare = strcmp(name, iname);
553 	  if (compare == 0) {
554 	    return iter->types[i];
555 	  } else if (compare < 0) {
556 	    if (i) {
557 	      r = i - 1;
558 	    } else {
559 	      break;
560 	    }
561 	  } else if (compare > 0) {
562 	    l = i + 1;
563 	  }
564 	} else {
565 	  break; /* should never happen */
566 	}
567       } while (l <= r);
568     }
569     iter = iter->next;
570   } while (iter != end);
571   return 0;
572 }
573 
574 /*
575   Search for a swig_type_info structure for either a mangled name or a human readable name.
576   It first searches the mangled names of the types, which is a O(log #types)
577   If a type is not found it then searches the human readable names, which is O(#types).
578 
579   We start searching at module start, and finish searching when start == end.
580   Note: if start == end at the beginning of the function, we go all the way around
581   the circular list.
582 */
583 SWIGRUNTIME swig_type_info *
SWIG_TypeQueryModule(swig_module_info * start,swig_module_info * end,const char * name)584 SWIG_TypeQueryModule(swig_module_info *start,
585                      swig_module_info *end,
586 		     const char *name) {
587   /* STEP 1: Search the name field using binary search */
588   swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
589   if (ret) {
590     return ret;
591   } else {
592     /* STEP 2: If the type hasn't been found, do a complete search
593        of the str field (the human readable name) */
594     swig_module_info *iter = start;
595     do {
596       size_t i = 0;
597       for (; i < iter->size; ++i) {
598 	if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
599 	  return iter->types[i];
600       }
601       iter = iter->next;
602     } while (iter != end);
603   }
604 
605   /* neither found a match */
606   return 0;
607 }
608 
609 /*
610    Pack binary data into a string
611 */
612 SWIGRUNTIME char *
SWIG_PackData(char * c,void * ptr,size_t sz)613 SWIG_PackData(char *c, void *ptr, size_t sz) {
614   static const char hex[17] = "0123456789abcdef";
615   const unsigned char *u = (unsigned char *) ptr;
616   const unsigned char *eu =  u + sz;
617   for (; u != eu; ++u) {
618     unsigned char uu = *u;
619     *(c++) = hex[(uu & 0xf0) >> 4];
620     *(c++) = hex[uu & 0xf];
621   }
622   return c;
623 }
624 
625 /*
626    Unpack binary data from a string
627 */
628 SWIGRUNTIME const char *
SWIG_UnpackData(const char * c,void * ptr,size_t sz)629 SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
630   unsigned char *u = (unsigned char *) ptr;
631   const unsigned char *eu = u + sz;
632   for (; u != eu; ++u) {
633     char d = *(c++);
634     unsigned char uu;
635     if ((d >= '0') && (d <= '9'))
636       uu = ((d - '0') << 4);
637     else if ((d >= 'a') && (d <= 'f'))
638       uu = ((d - ('a'-10)) << 4);
639     else
640       return (char *) 0;
641     d = *(c++);
642     if ((d >= '0') && (d <= '9'))
643       uu |= (d - '0');
644     else if ((d >= 'a') && (d <= 'f'))
645       uu |= (d - ('a'-10));
646     else
647       return (char *) 0;
648     *u = uu;
649   }
650   return c;
651 }
652 
653 /*
654    Pack 'void *' into a string buffer.
655 */
656 SWIGRUNTIME char *
SWIG_PackVoidPtr(char * buff,void * ptr,const char * name,size_t bsz)657 SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
658   char *r = buff;
659   if ((2*sizeof(void *) + 2) > bsz) return 0;
660   *(r++) = '_';
661   r = SWIG_PackData(r,&ptr,sizeof(void *));
662   if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
663   strcpy(r,name);
664   return buff;
665 }
666 
667 SWIGRUNTIME const char *
SWIG_UnpackVoidPtr(const char * c,void ** ptr,const char * name)668 SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
669   if (*c != '_') {
670     if (strcmp(c,"NULL") == 0) {
671       *ptr = (void *) 0;
672       return name;
673     } else {
674       return 0;
675     }
676   }
677   return SWIG_UnpackData(++c,ptr,sizeof(void *));
678 }
679 
680 SWIGRUNTIME char *
SWIG_PackDataName(char * buff,void * ptr,size_t sz,const char * name,size_t bsz)681 SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
682   char *r = buff;
683   size_t lname = (name ? strlen(name) : 0);
684   if ((2*sz + 2 + lname) > bsz) return 0;
685   *(r++) = '_';
686   r = SWIG_PackData(r,ptr,sz);
687   if (lname) {
688     strncpy(r,name,lname+1);
689   } else {
690     *r = 0;
691   }
692   return buff;
693 }
694 
695 SWIGRUNTIME const char *
SWIG_UnpackDataName(const char * c,void * ptr,size_t sz,const char * name)696 SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
697   if (*c != '_') {
698     if (strcmp(c,"NULL") == 0) {
699       memset(ptr,0,sz);
700       return name;
701     } else {
702       return 0;
703     }
704   }
705   return SWIG_UnpackData(++c,ptr,sz);
706 }
707 
708 #ifdef __cplusplus
709 }
710 #endif
711 
712 /*  Errors in SWIG */
713 #define  SWIG_UnknownError    	   -1
714 #define  SWIG_IOError        	   -2
715 #define  SWIG_RuntimeError   	   -3
716 #define  SWIG_IndexError     	   -4
717 #define  SWIG_TypeError      	   -5
718 #define  SWIG_DivisionByZero 	   -6
719 #define  SWIG_OverflowError  	   -7
720 #define  SWIG_SyntaxError    	   -8
721 #define  SWIG_ValueError     	   -9
722 #define  SWIG_SystemError    	   -10
723 #define  SWIG_AttributeError 	   -11
724 #define  SWIG_MemoryError    	   -12
725 #define  SWIG_NullReferenceError   -13
726 
727 
728 
729 #ifdef __cplusplus
730 /* Needed on some windows machines---since MS plays funny games with the header files under C++ */
731 #include <math.h>
732 #include <stdlib.h>
733 extern "C" {
734 #endif
735 #include "EXTERN.h"
736 #include "perl.h"
737 #include "XSUB.h"
738 
739 /* Add in functionality missing in older versions of Perl. Much of this is based on Devel-PPPort on cpan. */
740 
741 /* Add PERL_REVISION, PERL_VERSION, PERL_SUBVERSION if missing */
742 #ifndef PERL_REVISION
743 #  if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
744 #    define PERL_PATCHLEVEL_H_IMPLICIT
745 #    include <patchlevel.h>
746 #  endif
747 #  if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
748 #    include <could_not_find_Perl_patchlevel.h>
749 #  endif
750 #  ifndef PERL_REVISION
751 #    define PERL_REVISION       (5)
752 #    define PERL_VERSION        PATCHLEVEL
753 #    define PERL_SUBVERSION     SUBVERSION
754 #  endif
755 #endif
756 
757 #if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)
758 #define PerlIO_exportFILE(fh,fl) (FILE*)(fh)
759 #endif
760 
761 #ifndef SvIOK_UV
762 # define SvIOK_UV(sv)       (SvIOK(sv) && (SvUVX(sv) == SvIVX(sv)))
763 #endif
764 
765 #ifndef SvUOK
766 # define SvUOK(sv)           SvIOK_UV(sv)
767 #endif
768 
769 #if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5)))
770 #  define PL_sv_undef               sv_undef
771 #  define PL_na	                    na
772 #  define PL_errgv                  errgv
773 #  define PL_sv_no                  sv_no
774 #  define PL_sv_yes                 sv_yes
775 #  define PL_markstack_ptr          markstack_ptr
776 #endif
777 
778 #ifndef IVSIZE
779 #  ifdef LONGSIZE
780 #    define IVSIZE LONGSIZE
781 #  else
782 #    define IVSIZE 4 /* A bold guess, but the best we can make. */
783 #  endif
784 #endif
785 
786 #ifndef INT2PTR
787 #  if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
788 #    define PTRV                  UV
789 #    define INT2PTR(any,d)        (any)(d)
790 #  else
791 #    if PTRSIZE == LONGSIZE
792 #      define PTRV                unsigned long
793 #    else
794 #      define PTRV                unsigned
795 #    endif
796 #    define INT2PTR(any,d)        (any)(PTRV)(d)
797 #  endif
798 
799 #  define NUM2PTR(any,d)  (any)(PTRV)(d)
800 #  define PTR2IV(p)       INT2PTR(IV,p)
801 #  define PTR2UV(p)       INT2PTR(UV,p)
802 #  define PTR2NV(p)       NUM2PTR(NV,p)
803 
804 #  if PTRSIZE == LONGSIZE
805 #    define PTR2ul(p)     (unsigned long)(p)
806 #  else
807 #    define PTR2ul(p)     INT2PTR(unsigned long,p)
808 #  endif
809 #endif /* !INT2PTR */
810 
811 #ifndef SvPV_nolen
812 # define SvPV_nolen(x) SvPV(x,PL_na)
813 #endif
814 
815 #ifndef get_sv
816 #  define get_sv perl_get_sv
817 #endif
818 
819 #ifndef ERRSV
820 #  define ERRSV get_sv("@",FALSE)
821 #endif
822 
823 #ifndef pTHX_
824 #define pTHX_
825 #endif
826 
827 #include <string.h>
828 #ifdef __cplusplus
829 }
830 #endif
831 
832 /* -----------------------------------------------------------------------------
833  * error manipulation
834  * ----------------------------------------------------------------------------- */
835 
836 SWIGINTERN const char*
SWIG_Perl_ErrorType(int code)837 SWIG_Perl_ErrorType(int code) {
838   switch(code) {
839   case SWIG_MemoryError:
840     return "MemoryError";
841   case SWIG_IOError:
842     return "IOError";
843   case SWIG_RuntimeError:
844     return "RuntimeError";
845   case SWIG_IndexError:
846     return "IndexError";
847   case SWIG_TypeError:
848     return "TypeError";
849   case SWIG_DivisionByZero:
850     return "ZeroDivisionError";
851   case SWIG_OverflowError:
852     return "OverflowError";
853   case SWIG_SyntaxError:
854     return "SyntaxError";
855   case SWIG_ValueError:
856     return "ValueError";
857   case SWIG_SystemError:
858     return "SystemError";
859   case SWIG_AttributeError:
860     return "AttributeError";
861   default:
862     return "RuntimeError";
863   }
864 }
865 
866 
867 /* -----------------------------------------------------------------------------
868  * perlrun.swg
869  *
870  * This file contains the runtime support for Perl modules
871  * and includes code for managing global variables and pointer
872  * type checking.
873  * ----------------------------------------------------------------------------- */
874 
875 #ifdef PERL_OBJECT
876 #define SWIG_PERL_OBJECT_DECL CPerlObj *SWIGUNUSEDPARM(pPerl),
877 #define SWIG_PERL_OBJECT_CALL pPerl,
878 #else
879 #define SWIG_PERL_OBJECT_DECL
880 #define SWIG_PERL_OBJECT_CALL
881 #endif
882 
883 /* Common SWIG API */
884 
885 /* for raw pointers */
886 #define SWIG_ConvertPtr(obj, pp, type, flags)           SWIG_Perl_ConvertPtr(SWIG_PERL_OBJECT_CALL obj, pp, type, flags)
887 #define SWIG_ConvertPtrAndOwn(obj, pp, type, flags,own) SWIG_Perl_ConvertPtrAndOwn(SWIG_PERL_OBJECT_CALL obj, pp, type, flags, own)
888 #define SWIG_NewPointerObj(p, type, flags)              SWIG_Perl_NewPointerObj(SWIG_PERL_OBJECT_CALL p, type, flags)
889 #define swig_owntype                                    int
890 
891 /* for raw packed data */
892 #define SWIG_ConvertPacked(obj, p, s, type)             SWIG_Perl_ConvertPacked(SWIG_PERL_OBJECT_CALL obj, p, s, type)
893 #define SWIG_NewPackedObj(p, s, type)	                SWIG_Perl_NewPackedObj(SWIG_PERL_OBJECT_CALL p, s, type)
894 
895 /* for class or struct pointers */
896 #define SWIG_ConvertInstance(obj, pptr, type, flags)    SWIG_ConvertPtr(obj, pptr, type, flags)
897 #define SWIG_NewInstanceObj(ptr, type, flags)           SWIG_NewPointerObj(ptr, type, flags)
898 
899 /* for C or C++ function pointers */
900 #define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_ConvertPtr(obj, pptr, type, 0)
901 #define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_NewPointerObj(ptr, type, 0)
902 
903 /* for C++ member pointers, ie, member methods */
904 #define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_ConvertPacked(obj, ptr, sz, ty)
905 #define SWIG_NewMemberObj(ptr, sz, type)                SWIG_NewPackedObj(ptr, sz, type)
906 
907 
908 /* Runtime API */
909 
910 #define SWIG_GetModule(clientdata)                      SWIG_Perl_GetModule(clientdata)
911 #define SWIG_SetModule(clientdata, pointer)             SWIG_Perl_SetModule(pointer)
912 
913 
914 /* Error manipulation */
915 
916 #define SWIG_ErrorType(code)                            SWIG_Perl_ErrorType(code)
917 #define SWIG_Error(code, msg)            		sv_setpvf(get_sv("@", GV_ADD), "%s %s", SWIG_ErrorType(code), msg)
918 #define SWIG_fail                        		goto fail
919 
920 /* Perl-specific SWIG API */
921 
922 #define SWIG_MakePtr(sv, ptr, type, flags)              SWIG_Perl_MakePtr(SWIG_PERL_OBJECT_CALL sv, ptr, type, flags)
923 #define SWIG_MakePackedObj(sv, p, s, type)	        SWIG_Perl_MakePackedObj(SWIG_PERL_OBJECT_CALL sv, p, s, type)
924 #define SWIG_SetError(str)                              SWIG_Error(SWIG_RuntimeError, str)
925 
926 
927 #define SWIG_PERL_DECL_ARGS_1(arg1)                     (SWIG_PERL_OBJECT_DECL arg1)
928 #define SWIG_PERL_CALL_ARGS_1(arg1)                     (SWIG_PERL_OBJECT_CALL arg1)
929 #define SWIG_PERL_DECL_ARGS_2(arg1, arg2)               (SWIG_PERL_OBJECT_DECL arg1, arg2)
930 #define SWIG_PERL_CALL_ARGS_2(arg1, arg2)               (SWIG_PERL_OBJECT_CALL arg1, arg2)
931 
932 /* -----------------------------------------------------------------------------
933  * pointers/data manipulation
934  * ----------------------------------------------------------------------------- */
935 
936 /* For backward compatibility only */
937 #define SWIG_POINTER_EXCEPTION  0
938 
939 #ifdef __cplusplus
940 extern "C" {
941 #endif
942 
943 #define SWIG_OWNER   SWIG_POINTER_OWN
944 #define SWIG_SHADOW  SWIG_OWNER << 1
945 
946 #define SWIG_MAYBE_PERL_OBJECT SWIG_PERL_OBJECT_DECL
947 
948 /* SWIG Perl macros */
949 
950 /* Macro to declare an XS function */
951 #ifndef XSPROTO
952 #   define XSPROTO(name) void name(pTHX_ CV* cv)
953 #endif
954 
955 /* Macro to call an XS function */
956 #ifdef PERL_OBJECT
957 #  define SWIG_CALLXS(_name) _name(cv,pPerl)
958 #else
959 #  ifndef MULTIPLICITY
960 #    define SWIG_CALLXS(_name) _name(cv)
961 #  else
962 #    define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv)
963 #  endif
964 #endif
965 
966 #ifdef PERL_OBJECT
967 #define MAGIC_PPERL  CPerlObj *pPerl = (CPerlObj *) this;
968 
969 #ifdef __cplusplus
970 extern "C" {
971 #endif
972 typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *);
973 #ifdef __cplusplus
974 }
975 #endif
976 
977 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
978 #define SWIGCLASS_STATIC
979 
980 #else /* PERL_OBJECT */
981 
982 #define MAGIC_PPERL
983 #define SWIGCLASS_STATIC static SWIGUNUSED
984 
985 #ifndef MULTIPLICITY
986 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
987 
988 #ifdef __cplusplus
989 extern "C" {
990 #endif
991 typedef int (*SwigMagicFunc)(SV *, MAGIC *);
992 #ifdef __cplusplus
993 }
994 #endif
995 
996 #else /* MULTIPLICITY */
997 
998 #define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b)
999 
1000 #ifdef __cplusplus
1001 extern "C" {
1002 #endif
1003 typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
1004 #ifdef __cplusplus
1005 }
1006 #endif
1007 
1008 #endif /* MULTIPLICITY */
1009 #endif /* PERL_OBJECT */
1010 
1011 #  ifdef PERL_OBJECT
1012 #    define SWIG_croak_null() SWIG_Perl_croak_null(pPerl)
SWIG_Perl_croak_null(CPerlObj * pPerl)1013 static void SWIG_Perl_croak_null(CPerlObj *pPerl)
1014 #  else
1015 static void SWIG_croak_null()
1016 #  endif
1017 {
1018   SV *err = get_sv("@", GV_ADD);
1019 #  if (PERL_VERSION < 6)
1020   croak("%_", err);
1021 #  else
1022   if (sv_isobject(err))
1023     croak(0);
1024   else
1025     croak("%s", SvPV_nolen(err));
1026 #  endif
1027 }
1028 
1029 
1030 /*
1031    Define how strict is the cast between strings and integers/doubles
1032    when overloading between these types occurs.
1033 
1034    The default is making it as strict as possible by using SWIG_AddCast
1035    when needed.
1036 
1037    You can use -DSWIG_PERL_NO_STRICT_STR2NUM at compilation time to
1038    disable the SWIG_AddCast, making the casting between string and
1039    numbers less strict.
1040 
1041    In the end, we try to solve the overloading between strings and
1042    numerical types in the more natural way, but if you can avoid it,
1043    well, avoid it using %rename, for example.
1044 */
1045 #ifndef SWIG_PERL_NO_STRICT_STR2NUM
1046 # ifndef SWIG_PERL_STRICT_STR2NUM
1047 #  define SWIG_PERL_STRICT_STR2NUM
1048 # endif
1049 #endif
1050 #ifdef SWIG_PERL_STRICT_STR2NUM
1051 /* string takes precedence */
1052 #define SWIG_Str2NumCast(x) SWIG_AddCast(x)
1053 #else
1054 /* number takes precedence */
1055 #define SWIG_Str2NumCast(x) x
1056 #endif
1057 
1058 
1059 
1060 #include <stdlib.h>
1061 
1062 SWIGRUNTIME const char *
SWIG_Perl_TypeProxyName(const swig_type_info * type)1063 SWIG_Perl_TypeProxyName(const swig_type_info *type) {
1064   if (!type) return NULL;
1065   if (type->clientdata != NULL) {
1066     return (const char*) type->clientdata;
1067   }
1068   else {
1069     return type->name;
1070   }
1071 }
1072 
1073 /* Identical to SWIG_TypeCheck, except for strcmp comparison */
1074 SWIGRUNTIME swig_cast_info *
SWIG_TypeProxyCheck(const char * c,swig_type_info * ty)1075 SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) {
1076   if (ty) {
1077     swig_cast_info *iter = ty->cast;
1078     while (iter) {
1079       if (strcmp(SWIG_Perl_TypeProxyName(iter->type), c) == 0) {
1080         if (iter == ty->cast)
1081           return iter;
1082         /* Move iter to the top of the linked list */
1083         iter->prev->next = iter->next;
1084         if (iter->next)
1085           iter->next->prev = iter->prev;
1086         iter->next = ty->cast;
1087         iter->prev = 0;
1088         if (ty->cast) ty->cast->prev = iter;
1089         ty->cast = iter;
1090         return iter;
1091       }
1092       iter = iter->next;
1093     }
1094   }
1095   return 0;
1096 }
1097 
1098 /* Function for getting a pointer value */
1099 
1100 SWIGRUNTIME int
SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV * sv,void ** ptr,swig_type_info * _t,int flags,int * own)1101 SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags, int *own) {
1102   swig_cast_info *tc;
1103   void *voidptr = (void *)0;
1104   SV *tsv = 0;
1105 
1106   if (own)
1107     *own = 0;
1108 
1109   /* If magical, apply more magic */
1110   if (SvGMAGICAL(sv))
1111     mg_get(sv);
1112 
1113   /* Check to see if this is an object */
1114   if (sv_isobject(sv)) {
1115     IV tmp = 0;
1116     tsv = (SV*) SvRV(sv);
1117     if ((SvTYPE(tsv) == SVt_PVHV)) {
1118       MAGIC *mg;
1119       if (SvMAGICAL(tsv)) {
1120         mg = mg_find(tsv,'P');
1121         if (mg) {
1122           sv = mg->mg_obj;
1123           if (sv_isobject(sv)) {
1124 	    tsv = (SV*)SvRV(sv);
1125             tmp = SvIV(tsv);
1126           }
1127         }
1128       } else {
1129         return SWIG_ERROR;
1130       }
1131     } else {
1132       tmp = SvIV(tsv);
1133     }
1134     voidptr = INT2PTR(void *,tmp);
1135   } else if (! SvOK(sv)) {            /* Check for undef */
1136     *(ptr) = (void *) 0;
1137     return SWIG_OK;
1138   } else if (SvTYPE(sv) == SVt_RV) {  /* Check for NULL pointer */
1139     if (!SvROK(sv)) {
1140       /* In Perl 5.12 and later, SVt_RV == SVt_IV, so sv could be a valid integer value.  */
1141       if (SvIOK(sv)) {
1142         return SWIG_ERROR;
1143       } else {
1144         /* NULL pointer (reference to undef). */
1145         *(ptr) = (void *) 0;
1146         return SWIG_OK;
1147       }
1148     } else {
1149       return SWIG_ERROR;
1150     }
1151   } else {                            /* Don't know what it is */
1152     return SWIG_ERROR;
1153   }
1154   if (_t) {
1155     /* Now see if the types match */
1156     char *_c = HvNAME(SvSTASH(SvRV(sv)));
1157     tc = SWIG_TypeProxyCheck(_c,_t);
1158 #ifdef SWIG_DIRECTORS
1159     if (!tc && !sv_derived_from(sv,SWIG_Perl_TypeProxyName(_t))) {
1160 #else
1161     if (!tc) {
1162 #endif
1163       return SWIG_ERROR;
1164     }
1165     {
1166       int newmemory = 0;
1167       *ptr = SWIG_TypeCast(tc,voidptr,&newmemory);
1168       if (newmemory == SWIG_CAST_NEW_MEMORY) {
1169         assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
1170         if (own)
1171           *own = *own | SWIG_CAST_NEW_MEMORY;
1172       }
1173     }
1174   } else {
1175     *ptr = voidptr;
1176   }
1177 
1178   /*
1179    *  DISOWN implementation: we need a perl guru to check this one.
1180    */
1181   if (tsv && (flags & SWIG_POINTER_DISOWN)) {
1182     /*
1183      *  almost copy paste code from below SWIG_POINTER_OWN setting
1184      */
1185     SV *obj = sv;
1186     HV *stash = SvSTASH(SvRV(obj));
1187     GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
1188     if (isGV(gv)) {
1189       HV *hv = GvHVn(gv);
1190       /*
1191        * To set ownership (see below), a newSViv(1) entry is added.
1192        * Hence, to remove ownership, we delete the entry.
1193        */
1194       if (hv_exists_ent(hv, obj, 0)) {
1195 	hv_delete_ent(hv, obj, 0, 0);
1196       }
1197     }
1198   }
1199   return SWIG_OK;
1200 }
1201 
1202 SWIGRUNTIME int
1203 SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags) {
1204   return SWIG_Perl_ConvertPtrAndOwn(sv, ptr, _t, flags, 0);
1205 }
1206 
1207 SWIGRUNTIME void
1208 SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, int flags) {
1209   if (ptr && (flags & (SWIG_SHADOW | SWIG_POINTER_OWN))) {
1210     SV *self;
1211     SV *obj=newSV(0);
1212     HV *hash=newHV();
1213     HV *stash;
1214     sv_setref_pv(obj, SWIG_Perl_TypeProxyName(t), ptr);
1215     stash=SvSTASH(SvRV(obj));
1216     if (flags & SWIG_POINTER_OWN) {
1217       HV *hv;
1218       GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
1219       if (!isGV(gv))
1220         gv_init(gv, stash, "OWNER", 5, FALSE);
1221       hv=GvHVn(gv);
1222       hv_store_ent(hv, obj, newSViv(1), 0);
1223     }
1224     sv_magic((SV *)hash, (SV *)obj, 'P', Nullch, 0);
1225     SvREFCNT_dec(obj);
1226     self=newRV_noinc((SV *)hash);
1227     sv_setsv(sv, self);
1228     SvREFCNT_dec((SV *)self);
1229     sv_bless(sv, stash);
1230   }
1231   else {
1232     sv_setref_pv(sv, SWIG_Perl_TypeProxyName(t), ptr);
1233   }
1234 }
1235 
1236 SWIGRUNTIMEINLINE SV *
1237 SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *ptr, swig_type_info *t, int flags) {
1238   SV *result = sv_newmortal();
1239   SWIG_MakePtr(result, ptr, t, flags);
1240   return result;
1241 }
1242 
1243 SWIGRUNTIME void
1244 SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, int sz, swig_type_info *type) {
1245   char result[1024];
1246   char *r = result;
1247   if ((2*sz + 1 + strlen(SWIG_Perl_TypeProxyName(type))) > 1000) return;
1248   *(r++) = '_';
1249   r = SWIG_PackData(r,ptr,sz);
1250   strcpy(r,SWIG_Perl_TypeProxyName(type));
1251   sv_setpv(sv, result);
1252 }
1253 
1254 SWIGRUNTIME SV *
1255 SWIG_Perl_NewPackedObj(SWIG_MAYBE_PERL_OBJECT void *ptr, int sz, swig_type_info *type) {
1256   SV *result = sv_newmortal();
1257   SWIG_Perl_MakePackedObj(result, ptr, sz, type);
1258   return result;
1259 }
1260 
1261 /* Convert a packed value value */
1262 SWIGRUNTIME int
1263 SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_type_info *ty) {
1264   swig_cast_info *tc;
1265   const char  *c = 0;
1266 
1267   if ((!obj) || (!SvOK(obj))) return SWIG_ERROR;
1268   c = SvPV_nolen(obj);
1269   /* Pointer values must start with leading underscore */
1270   if (*c != '_') return SWIG_ERROR;
1271   c++;
1272   c = SWIG_UnpackData(c,ptr,sz);
1273   if (ty) {
1274     tc = SWIG_TypeCheck(c,ty);
1275     if (!tc) return SWIG_ERROR;
1276   }
1277   return SWIG_OK;
1278 }
1279 
1280 
1281 /* Macros for low-level exception handling */
1282 #define SWIG_croak(x)    { SWIG_Error(SWIG_RuntimeError, x); SWIG_fail; }
1283 
1284 
1285 typedef XSPROTO(SwigPerlWrapper);
1286 typedef SwigPerlWrapper *SwigPerlWrapperPtr;
1287 
1288 /* Structure for command table */
1289 typedef struct {
1290   const char         *name;
1291   SwigPerlWrapperPtr  wrapper;
1292 } swig_command_info;
1293 
1294 /* Information for constant table */
1295 
1296 #define SWIG_INT     1
1297 #define SWIG_FLOAT   2
1298 #define SWIG_STRING  3
1299 #define SWIG_POINTER 4
1300 #define SWIG_BINARY  5
1301 
1302 /* Constant information structure */
1303 typedef struct swig_constant_info {
1304     int              type;
1305     const char      *name;
1306     long             lvalue;
1307     double           dvalue;
1308     void            *pvalue;
1309     swig_type_info **ptype;
1310 } swig_constant_info;
1311 
1312 
1313 /* Structure for variable table */
1314 typedef struct {
1315   const char   *name;
1316   SwigMagicFunc   set;
1317   SwigMagicFunc   get;
1318   swig_type_info  **type;
1319 } swig_variable_info;
1320 
1321 /* Magic variable code */
1322 #ifndef PERL_OBJECT
1323 # ifdef __cplusplus
1324 #  define swig_create_magic(s,a,b,c) _swig_create_magic(s,const_cast<char*>(a),b,c)
1325 # else
1326 #  define swig_create_magic(s,a,b,c) _swig_create_magic(s,(char*)(a),b,c)
1327 # endif
1328 # ifndef MULTIPLICITY
1329 SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *))
1330 # else
1331 SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *))
1332 # endif
1333 #else
1334 #  define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
1335 SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *))
1336 #endif
1337 {
1338   MAGIC *mg;
1339   sv_magic(sv,sv,'U',name,strlen(name));
1340   mg = mg_find(sv,'U');
1341   mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
1342   mg->mg_virtual->svt_get = (SwigMagicFunc) get;
1343   mg->mg_virtual->svt_set = (SwigMagicFunc) set;
1344   mg->mg_virtual->svt_len = 0;
1345   mg->mg_virtual->svt_clear = 0;
1346   mg->mg_virtual->svt_free = 0;
1347 }
1348 
1349 
1350 SWIGRUNTIME swig_module_info *
1351 SWIG_Perl_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
1352   static void *type_pointer = (void *)0;
1353   SV *pointer;
1354 
1355   /* first check if pointer already created */
1356   if (!type_pointer) {
1357     pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE | GV_ADDMULTI);
1358     if (pointer && SvOK(pointer)) {
1359       type_pointer = INT2PTR(swig_type_info **, SvIV(pointer));
1360     }
1361   }
1362 
1363   return (swig_module_info *) type_pointer;
1364 }
1365 
1366 SWIGRUNTIME void
1367 SWIG_Perl_SetModule(swig_module_info *module) {
1368   SV *pointer;
1369 
1370   /* create a new pointer */
1371   pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE | GV_ADDMULTI);
1372   sv_setiv(pointer, PTR2IV(module));
1373 }
1374 
1375 #ifdef __cplusplus
1376 }
1377 #endif
1378 
1379 /* Workaround perl5 global namespace pollution. Note that undefining library
1380  * functions like fopen will not solve the problem on all platforms as fopen
1381  * might be a macro on Windows but not necessarily on other operating systems. */
1382 #ifdef do_open
1383   #undef do_open
1384 #endif
1385 #ifdef do_close
1386   #undef do_close
1387 #endif
1388 #ifdef do_exec
1389   #undef do_exec
1390 #endif
1391 #ifdef scalar
1392   #undef scalar
1393 #endif
1394 #ifdef list
1395   #undef list
1396 #endif
1397 #ifdef apply
1398   #undef apply
1399 #endif
1400 #ifdef convert
1401   #undef convert
1402 #endif
1403 #ifdef Error
1404   #undef Error
1405 #endif
1406 #ifdef form
1407   #undef form
1408 #endif
1409 #ifdef vform
1410   #undef vform
1411 #endif
1412 #ifdef LABEL
1413   #undef LABEL
1414 #endif
1415 #ifdef METHOD
1416   #undef METHOD
1417 #endif
1418 #ifdef Move
1419   #undef Move
1420 #endif
1421 #ifdef yylex
1422   #undef yylex
1423 #endif
1424 #ifdef yyparse
1425   #undef yyparse
1426 #endif
1427 #ifdef yyerror
1428   #undef yyerror
1429 #endif
1430 #ifdef invert
1431   #undef invert
1432 #endif
1433 #ifdef ref
1434   #undef ref
1435 #endif
1436 #ifdef read
1437   #undef read
1438 #endif
1439 #ifdef write
1440   #undef write
1441 #endif
1442 #ifdef eof
1443   #undef eof
1444 #endif
1445 #ifdef close
1446   #undef close
1447 #endif
1448 #ifdef rewind
1449   #undef rewind
1450 #endif
1451 #ifdef free
1452   #undef free
1453 #endif
1454 #ifdef malloc
1455   #undef malloc
1456 #endif
1457 #ifdef calloc
1458   #undef calloc
1459 #endif
1460 #ifdef Stat
1461   #undef Stat
1462 #endif
1463 #ifdef check
1464   #undef check
1465 #endif
1466 #ifdef seekdir
1467   #undef seekdir
1468 #endif
1469 #ifdef open
1470   #undef open
1471 #endif
1472 #ifdef readdir
1473   #undef readdir
1474 #endif
1475 #ifdef bind
1476   #undef bind
1477 #endif
1478 #ifdef access
1479   #undef access
1480 #endif
1481 #ifdef stat
1482   #undef stat
1483 #endif
1484 #ifdef seed
1485   #undef seed
1486 #endif
1487 
1488 #ifdef bool
1489   /* Leave if macro is from C99 stdbool.h */
1490   #ifndef __bool_true_false_are_defined
1491 
1492   #endif
1493 #endif
1494 
1495 
1496 
1497 
1498 #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0)
1499 
1500 #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else
1501 
1502 
1503 
1504   #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0)
1505 
1506 
1507 /* -------- TYPES TABLE (BEGIN) -------- */
1508 
1509 #define SWIGTYPE_p_Set swig_types[0]
1510 #define SWIGTYPE_p_am_feature_e swig_types[1]
1511 #define SWIGTYPE_p_am_feature_t swig_types[2]
1512 #define SWIGTYPE_p_char swig_types[3]
1513 #define SWIGTYPE_p_double swig_types[4]
1514 #define SWIGTYPE_p_float swig_types[5]
1515 #define SWIGTYPE_p_int swig_types[6]
1516 #define SWIGTYPE_p_unsigned_char swig_types[7]
1517 static swig_type_info *swig_types[9];
1518 static swig_module_info swig_module = {swig_types, 8, 0, 0, 0, 0};
1519 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
1520 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
1521 
1522 /* -------- TYPES TABLE (END) -------- */
1523 
1524 #define SWIG_init    boot_Amanda__Feature
1525 
1526 #define SWIG_name   "Amanda::Featurec::boot_Amanda__Feature"
1527 #define SWIG_prefix "Amanda::Featurec::"
1528 
1529 #define SWIGVERSION 0x030007
1530 #define SWIG_VERSION SWIGVERSION
1531 
1532 
1533 #define SWIG_as_voidptr(a) (void *)((const void *)(a))
1534 #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a))
1535 
1536 
1537 #ifdef __cplusplus
1538 extern "C"
1539 #endif
1540 #ifndef PERL_OBJECT
1541 #ifndef MULTIPLICITY
1542 SWIGEXPORT void SWIG_init (CV* cv);
1543 #else
1544 SWIGEXPORT void SWIG_init (pTHXo_ CV* cv);
1545 #endif
1546 #else
1547 SWIGEXPORT void SWIG_init (CV *cv, CPerlObj *);
1548 #endif
1549 
1550 
1551 #include "amglue.h"
1552 
1553 
1554 #include "amglue.h"
1555 
1556 
1557 #include "amglue.h"
1558 
1559 
1560 #include "amfeatures.h"
1561 
1562 
1563 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(long value)1564 SWIG_From_long  SWIG_PERL_DECL_ARGS_1(long value)
1565 {
1566   SV *sv;
1567   if (value >= IV_MIN && value <= IV_MAX)
1568     sv = newSViv(value);
1569   else
1570     sv = newSVpvf("%ld", value);
1571   return sv_2mortal(sv);
1572 }
1573 
1574 
1575 SWIGINTERNINLINE SV *
SWIG_PERL_DECL_ARGS_1(int value)1576 SWIG_From_int  SWIG_PERL_DECL_ARGS_1(int value)
1577 {
1578   return SWIG_From_long  SWIG_PERL_CALL_ARGS_1(value);
1579 }
1580 
1581 
1582 typedef am_feature_t Set;
1583 
delete_Set(Set * self)1584 SWIGINTERN void delete_Set(Set *self){
1585 	    am_release_feature_set(self);
1586 	}
1587 
1588 #include <limits.h>
1589 #if !defined(SWIG_NO_LLONG_MAX)
1590 # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
1591 #   define LLONG_MAX __LONG_LONG_MAX__
1592 #   define LLONG_MIN (-LLONG_MAX - 1LL)
1593 #   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
1594 # endif
1595 #endif
1596 
1597 
1598 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,double * val)1599 SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val)
1600 {
1601   if (SvNIOK(obj)) {
1602     if (val) *val = SvNV(obj);
1603     return SWIG_OK;
1604   } else if (SvIOK(obj)) {
1605     if (val) *val = (double) SvIV(obj);
1606     return SWIG_AddCast(SWIG_OK);
1607   } else {
1608     const char *nptr = SvPV_nolen(obj);
1609     if (nptr) {
1610       char *endptr;
1611       double v;
1612       errno = 0;
1613       v = strtod(nptr, &endptr);
1614       if (errno == ERANGE) {
1615 	errno = 0;
1616 	return SWIG_OverflowError;
1617       } else {
1618 	if (*endptr == '\0') {
1619 	  if (val) *val = v;
1620 	  return SWIG_Str2NumCast(SWIG_OK);
1621 	}
1622       }
1623     }
1624   }
1625   return SWIG_TypeError;
1626 }
1627 
1628 
1629 #include <float.h>
1630 
1631 
1632 #include <math.h>
1633 
1634 
1635 SWIGINTERNINLINE int
SWIG_CanCastAsInteger(double * d,double min,double max)1636 SWIG_CanCastAsInteger(double *d, double min, double max) {
1637   double x = *d;
1638   if ((min <= x && x <= max)) {
1639    double fx = floor(x);
1640    double cx = ceil(x);
1641    double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
1642    if ((errno == EDOM) || (errno == ERANGE)) {
1643      errno = 0;
1644    } else {
1645      double summ, reps, diff;
1646      if (rd < x) {
1647        diff = x - rd;
1648      } else if (rd > x) {
1649        diff = rd - x;
1650      } else {
1651        return 1;
1652      }
1653      summ = rd + x;
1654      reps = diff/summ;
1655      if (reps < 8*DBL_EPSILON) {
1656        *d = rd;
1657        return 1;
1658      }
1659    }
1660   }
1661   return 0;
1662 }
1663 
1664 
1665 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,long * val)1666 SWIG_AsVal_long SWIG_PERL_DECL_ARGS_2(SV *obj, long* val)
1667 {
1668   if (SvUOK(obj)) {
1669     UV v = SvUV(obj);
1670     if (v <= LONG_MAX) {
1671       if (val) *val = v;
1672       return SWIG_OK;
1673     }
1674     return SWIG_OverflowError;
1675   } else if (SvIOK(obj)) {
1676     IV v = SvIV(obj);
1677     if (v >= LONG_MIN && v <= LONG_MAX) {
1678       if(val) *val = v;
1679       return SWIG_OK;
1680     }
1681     return SWIG_OverflowError;
1682   } else {
1683     int dispatch = 0;
1684     const char *nptr = SvPV_nolen(obj);
1685     if (nptr) {
1686       char *endptr;
1687       long v;
1688       errno = 0;
1689       v = strtol(nptr, &endptr,0);
1690       if (errno == ERANGE) {
1691 	errno = 0;
1692 	return SWIG_OverflowError;
1693       } else {
1694 	if (*endptr == '\0') {
1695 	  if (val) *val = v;
1696 	  return SWIG_Str2NumCast(SWIG_OK);
1697 	}
1698       }
1699     }
1700     if (!dispatch) {
1701       double d;
1702       int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d));
1703       if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
1704 	if (val) *val = (long)(d);
1705 	return res;
1706       }
1707     }
1708   }
1709   return SWIG_TypeError;
1710 }
1711 
1712 
1713 SWIGINTERN int
SWIG_PERL_DECL_ARGS_2(SV * obj,int * val)1714 SWIG_AsVal_int SWIG_PERL_DECL_ARGS_2(SV * obj, int *val)
1715 {
1716   long v;
1717   int res = SWIG_AsVal_long SWIG_PERL_CALL_ARGS_2(obj, &v);
1718   if (SWIG_IsOK(res)) {
1719     if ((v < INT_MIN || v > INT_MAX)) {
1720       return SWIG_OverflowError;
1721     } else {
1722       if (val) *val = (int)(v);
1723     }
1724   }
1725   return res;
1726 }
1727 
Set_add(Set * self,int feature)1728 SWIGINTERN void Set_add(Set *self,int feature){
1729 	    am_add_feature(self, feature);
1730 	}
Set_remove(Set * self,int feature)1731 SWIGINTERN void Set_remove(Set *self,int feature){
1732 	    am_remove_feature(self, feature);
1733 	}
Set_has(Set * self,int feature)1734 SWIGINTERN int Set_has(Set *self,int feature){
1735 	    return am_has_feature(self, feature);
1736 	}
Set_as_string(Set * self)1737 SWIGINTERN char *Set_as_string(Set *self){
1738 	    return am_feature_to_string(self);
1739 	}
1740 
1741 SWIGINTERNINLINE SV *
SWIG_FromCharPtrAndSize(const char * carray,size_t size)1742 SWIG_FromCharPtrAndSize(const char* carray, size_t size)
1743 {
1744   SV *obj = sv_newmortal();
1745   if (carray) {
1746     sv_setpvn(obj, carray, size);
1747   } else {
1748     sv_setsv(obj, &PL_sv_undef);
1749   }
1750   return obj;
1751 }
1752 
1753 
1754 SWIGINTERNINLINE SV *
SWIG_FromCharPtr(const char * cptr)1755 SWIG_FromCharPtr(const char *cptr)
1756 {
1757   return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
1758 }
1759 
1760 
1761 SWIGINTERN swig_type_info*
SWIG_pchar_descriptor(void)1762 SWIG_pchar_descriptor(void)
1763 {
1764   static int init = 0;
1765   static swig_type_info* info = 0;
1766   if (!init) {
1767     info = SWIG_TypeQuery("_p_char");
1768     init = 1;
1769   }
1770   return info;
1771 }
1772 
1773 
1774 SWIGINTERN int
SWIG_AsCharPtrAndSize(SV * obj,char ** cptr,size_t * psize,int * alloc)1775 SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc)
1776 {
1777   if (SvMAGICAL(obj)) {
1778      SV *tmp = sv_newmortal();
1779      SvSetSV(tmp, obj);
1780      obj = tmp;
1781   }
1782   if (SvPOK(obj)) {
1783     STRLEN len = 0;
1784     char *cstr = SvPV(obj, len);
1785     size_t size = len + 1;
1786     if (cptr)  {
1787       if (alloc) {
1788 	if (*alloc == SWIG_NEWOBJ) {
1789 	  *cptr = (char *)memcpy((char *)malloc((size)*sizeof(char)), cstr, sizeof(char)*(size));
1790 	} else {
1791 	  *cptr = cstr;
1792 	  *alloc = SWIG_OLDOBJ;
1793 	}
1794       }
1795     }
1796     if (psize) *psize = size;
1797     return SWIG_OK;
1798   } else {
1799     swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
1800     if (pchar_descriptor) {
1801       char* vptr = 0;
1802       if (SWIG_ConvertPtr(obj, (void**)&vptr, pchar_descriptor, 0) == SWIG_OK) {
1803 	if (cptr) *cptr = vptr;
1804 	if (psize) *psize = vptr ? (strlen(vptr) + 1) : 0;
1805 	if (alloc) *alloc = SWIG_OLDOBJ;
1806 	return SWIG_OK;
1807       }
1808     }
1809   }
1810   return SWIG_TypeError;
1811 }
1812 
1813 
1814 
1815 
1816 #ifdef __cplusplus
1817 extern "C" {
1818 #endif
1819 
1820 #ifdef PERL_OBJECT
1821 #define MAGIC_CLASS _wrap_Amanda__Feature_var::
1822 class _wrap_Amanda__Feature_var : public CPerlObj {
1823 public:
1824 #else
1825 #define MAGIC_CLASS
1826 #endif
swig_magic_readonly(pTHX_ SV * SWIGUNUSEDPARM (sv),MAGIC * SWIGUNUSEDPARM (mg))1827 SWIGCLASS_STATIC int swig_magic_readonly(pTHX_ SV *SWIGUNUSEDPARM(sv), MAGIC *SWIGUNUSEDPARM(mg)) {
1828     MAGIC_PPERL
1829     croak("Value is read-only.");
1830     return 0;
1831 }
1832 
1833 
1834 #ifdef PERL_OBJECT
1835 };
1836 #endif
1837 
1838 #ifdef __cplusplus
1839 }
1840 #endif
1841 
1842 #ifdef __cplusplus
1843 extern "C" {
1844 #endif
XS(_wrap_delete_Set)1845 XS(_wrap_delete_Set) {
1846   {
1847     Set *arg1 = (Set *) 0 ;
1848     void *argp1 = 0 ;
1849     int res1 = 0 ;
1850     int argvi = 0;
1851     dXSARGS;
1852 
1853     if ((items < 1) || (items > 1)) {
1854       SWIG_croak("Usage: delete_Set(self);");
1855     }
1856     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Set, SWIG_POINTER_DISOWN |  0 );
1857     if (!SWIG_IsOK(res1)) {
1858       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Set" "', argument " "1"" of type '" "Set *""'");
1859     }
1860     arg1 = (Set *)(argp1);
1861     delete_Set(arg1);
1862     ST(argvi) = sv_newmortal();
1863 
1864     XSRETURN(argvi);
1865   fail:
1866 
1867     SWIG_croak_null();
1868   }
1869 }
1870 
1871 
XS(_wrap_Set_add)1872 XS(_wrap_Set_add) {
1873   {
1874     Set *arg1 = (Set *) 0 ;
1875     int arg2 ;
1876     void *argp1 = 0 ;
1877     int res1 = 0 ;
1878     int argvi = 0;
1879     dXSARGS;
1880 
1881     if ((items < 2) || (items > 2)) {
1882       SWIG_croak("Usage: Set_add(self,feature);");
1883     }
1884     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Set, 0 |  0 );
1885     if (!SWIG_IsOK(res1)) {
1886       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Set_add" "', argument " "1"" of type '" "Set *""'");
1887     }
1888     arg1 = (Set *)(argp1);
1889     {
1890       if (sizeof(signed int) == 1) {
1891         arg2 = amglue_SvI8(ST(1));
1892       } else if (sizeof(signed int) == 2) {
1893         arg2 = amglue_SvI16(ST(1));
1894       } else if (sizeof(signed int) == 4) {
1895         arg2 = amglue_SvI32(ST(1));
1896       } else if (sizeof(signed int) == 8) {
1897         arg2 = amglue_SvI64(ST(1));
1898       } else {
1899         g_critical("Unexpected signed int >64 bits?"); /* should be optimized out unless sizeof(signed int) > 8 */
1900       }
1901     }
1902     Set_add(arg1,arg2);
1903     ST(argvi) = sv_newmortal();
1904 
1905 
1906     XSRETURN(argvi);
1907   fail:
1908 
1909 
1910     SWIG_croak_null();
1911   }
1912 }
1913 
1914 
XS(_wrap_Set_remove)1915 XS(_wrap_Set_remove) {
1916   {
1917     Set *arg1 = (Set *) 0 ;
1918     int arg2 ;
1919     void *argp1 = 0 ;
1920     int res1 = 0 ;
1921     int argvi = 0;
1922     dXSARGS;
1923 
1924     if ((items < 2) || (items > 2)) {
1925       SWIG_croak("Usage: Set_remove(self,feature);");
1926     }
1927     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Set, 0 |  0 );
1928     if (!SWIG_IsOK(res1)) {
1929       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Set_remove" "', argument " "1"" of type '" "Set *""'");
1930     }
1931     arg1 = (Set *)(argp1);
1932     {
1933       if (sizeof(signed int) == 1) {
1934         arg2 = amglue_SvI8(ST(1));
1935       } else if (sizeof(signed int) == 2) {
1936         arg2 = amglue_SvI16(ST(1));
1937       } else if (sizeof(signed int) == 4) {
1938         arg2 = amglue_SvI32(ST(1));
1939       } else if (sizeof(signed int) == 8) {
1940         arg2 = amglue_SvI64(ST(1));
1941       } else {
1942         g_critical("Unexpected signed int >64 bits?"); /* should be optimized out unless sizeof(signed int) > 8 */
1943       }
1944     }
1945     Set_remove(arg1,arg2);
1946     ST(argvi) = sv_newmortal();
1947 
1948 
1949     XSRETURN(argvi);
1950   fail:
1951 
1952 
1953     SWIG_croak_null();
1954   }
1955 }
1956 
1957 
XS(_wrap_Set_has)1958 XS(_wrap_Set_has) {
1959   {
1960     Set *arg1 = (Set *) 0 ;
1961     int arg2 ;
1962     void *argp1 = 0 ;
1963     int res1 = 0 ;
1964     int argvi = 0;
1965     int result;
1966     dXSARGS;
1967 
1968     if ((items < 2) || (items > 2)) {
1969       SWIG_croak("Usage: Set_has(self,feature);");
1970     }
1971     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Set, 0 |  0 );
1972     if (!SWIG_IsOK(res1)) {
1973       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Set_has" "', argument " "1"" of type '" "Set *""'");
1974     }
1975     arg1 = (Set *)(argp1);
1976     {
1977       if (sizeof(signed int) == 1) {
1978         arg2 = amglue_SvI8(ST(1));
1979       } else if (sizeof(signed int) == 2) {
1980         arg2 = amglue_SvI16(ST(1));
1981       } else if (sizeof(signed int) == 4) {
1982         arg2 = amglue_SvI32(ST(1));
1983       } else if (sizeof(signed int) == 8) {
1984         arg2 = amglue_SvI64(ST(1));
1985       } else {
1986         g_critical("Unexpected signed int >64 bits?"); /* should be optimized out unless sizeof(signed int) > 8 */
1987       }
1988     }
1989     result = (int)Set_has(arg1,arg2);
1990     {
1991       SV *for_stack;
1992       SP += argvi; PUTBACK;
1993       for_stack = sv_2mortal(amglue_newSVi64(result));
1994       SPAGAIN; SP -= argvi;
1995       ST(argvi) = for_stack;
1996       argvi++;
1997     }
1998 
1999 
2000     XSRETURN(argvi);
2001   fail:
2002 
2003 
2004     SWIG_croak_null();
2005   }
2006 }
2007 
2008 
XS(_wrap_Set_as_string)2009 XS(_wrap_Set_as_string) {
2010   {
2011     Set *arg1 = (Set *) 0 ;
2012     void *argp1 = 0 ;
2013     int res1 = 0 ;
2014     int argvi = 0;
2015     char *result = 0 ;
2016     dXSARGS;
2017 
2018     if ((items < 1) || (items > 1)) {
2019       SWIG_croak("Usage: Set_as_string(self);");
2020     }
2021     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Set, 0 |  0 );
2022     if (!SWIG_IsOK(res1)) {
2023       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Set_as_string" "', argument " "1"" of type '" "Set *""'");
2024     }
2025     arg1 = (Set *)(argp1);
2026     result = (char *)Set_as_string(arg1);
2027     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2028 
2029     free((char*)result);
2030     XSRETURN(argvi);
2031   fail:
2032 
2033     SWIG_croak_null();
2034   }
2035 }
2036 
2037 
XS(_wrap_new_Set)2038 XS(_wrap_new_Set) {
2039   {
2040     int argvi = 0;
2041     Set *result = 0 ;
2042     dXSARGS;
2043 
2044     if ((items < 0) || (items > 0)) {
2045       SWIG_croak("Usage: new_Set();");
2046     }
2047     result = (Set *)calloc(1, sizeof(Set));
2048     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Set, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
2049     XSRETURN(argvi);
2050   fail:
2051     SWIG_croak_null();
2052   }
2053 }
2054 
2055 
XS(_wrap_am_string_to_feature)2056 XS(_wrap_am_string_to_feature) {
2057   {
2058     char *arg1 = (char *) 0 ;
2059     int res1 ;
2060     char *buf1 = 0 ;
2061     int alloc1 = 0 ;
2062     int argvi = 0;
2063     Set *result = 0 ;
2064     dXSARGS;
2065 
2066     if ((items < 1) || (items > 1)) {
2067       SWIG_croak("Usage: am_string_to_feature(s);");
2068     }
2069     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
2070     if (!SWIG_IsOK(res1)) {
2071       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "am_string_to_feature" "', argument " "1"" of type '" "char *""'");
2072     }
2073     arg1 = (char *)(buf1);
2074     result = (Set *)am_string_to_feature(arg1);
2075     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Set, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
2076     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2077     XSRETURN(argvi);
2078   fail:
2079     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2080     SWIG_croak_null();
2081   }
2082 }
2083 
2084 
XS(_wrap_am_set_default_feature_set)2085 XS(_wrap_am_set_default_feature_set) {
2086   {
2087     int argvi = 0;
2088     Set *result = 0 ;
2089     dXSARGS;
2090 
2091     if ((items < 0) || (items > 0)) {
2092       SWIG_croak("Usage: am_set_default_feature_set();");
2093     }
2094     result = (Set *)am_set_default_feature_set();
2095     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Set, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
2096     XSRETURN(argvi);
2097   fail:
2098     SWIG_croak_null();
2099   }
2100 }
2101 
2102 
XS(_wrap_am_init_feature_set)2103 XS(_wrap_am_init_feature_set) {
2104   {
2105     int argvi = 0;
2106     Set *result = 0 ;
2107     dXSARGS;
2108 
2109     if ((items < 0) || (items > 0)) {
2110       SWIG_croak("Usage: am_init_feature_set();");
2111     }
2112     result = (Set *)am_init_feature_set();
2113     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Set, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
2114     XSRETURN(argvi);
2115   fail:
2116     SWIG_croak_null();
2117   }
2118 }
2119 
2120 
XS(_wrap_am_features)2121 XS(_wrap_am_features) {
2122   {
2123     Set *arg1 = (Set *) 0 ;
2124     void *argp1 = 0 ;
2125     int res1 = 0 ;
2126     int argvi = 0;
2127     am_feature_t *result = 0 ;
2128     dXSARGS;
2129 
2130     if ((items < 1) || (items > 1)) {
2131       SWIG_croak("Usage: am_features(Set *);");
2132     }
2133     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_Set, 0 |  0 );
2134     if (!SWIG_IsOK(res1)) {
2135       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "am_features" "', argument " "1"" of type '" "Set *""'");
2136     }
2137     arg1 = (Set *)(argp1);
2138     result = (am_feature_t *)am_features(arg1);
2139     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_am_feature_t, 0 | 0); argvi++ ;
2140 
2141     XSRETURN(argvi);
2142   fail:
2143 
2144     SWIG_croak_null();
2145   }
2146 }
2147 
2148 
2149 
2150 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
2151 
2152 static swig_type_info _swigt__p_Set = {"_p_Set", "Set *", 0, 0, (void*)"Amanda::Feature::Set", 0};
2153 static swig_type_info _swigt__p_am_feature_e = {"_p_am_feature_e", "enum am_feature_e *|am_feature_e *", 0, 0, (void*)0, 0};
2154 static swig_type_info _swigt__p_am_feature_t = {"_p_am_feature_t", "am_feature_t *", 0, 0, (void*)0, 0};
2155 static swig_type_info _swigt__p_char = {"_p_char", "gchar *|char *", 0, 0, (void*)0, 0};
2156 static swig_type_info _swigt__p_double = {"_p_double", "double *|gdouble *", 0, 0, (void*)0, 0};
2157 static swig_type_info _swigt__p_float = {"_p_float", "float *|gfloat *", 0, 0, (void*)0, 0};
2158 static swig_type_info _swigt__p_int = {"_p_int", "int *|gboolean *", 0, 0, (void*)0, 0};
2159 static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "guchar *|unsigned char *", 0, 0, (void*)0, 0};
2160 
2161 static swig_type_info *swig_type_initial[] = {
2162   &_swigt__p_Set,
2163   &_swigt__p_am_feature_e,
2164   &_swigt__p_am_feature_t,
2165   &_swigt__p_char,
2166   &_swigt__p_double,
2167   &_swigt__p_float,
2168   &_swigt__p_int,
2169   &_swigt__p_unsigned_char,
2170 };
2171 
2172 static swig_cast_info _swigc__p_Set[] = {  {&_swigt__p_Set, 0, 0, 0},{0, 0, 0, 0}};
2173 static swig_cast_info _swigc__p_am_feature_e[] = {  {&_swigt__p_am_feature_e, 0, 0, 0},{0, 0, 0, 0}};
2174 static swig_cast_info _swigc__p_am_feature_t[] = {  {&_swigt__p_am_feature_t, 0, 0, 0},{0, 0, 0, 0}};
2175 static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
2176 static swig_cast_info _swigc__p_double[] = {  {&_swigt__p_double, 0, 0, 0},{0, 0, 0, 0}};
2177 static swig_cast_info _swigc__p_float[] = {  {&_swigt__p_float, 0, 0, 0},{0, 0, 0, 0}};
2178 static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
2179 static swig_cast_info _swigc__p_unsigned_char[] = {  {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
2180 
2181 static swig_cast_info *swig_cast_initial[] = {
2182   _swigc__p_Set,
2183   _swigc__p_am_feature_e,
2184   _swigc__p_am_feature_t,
2185   _swigc__p_char,
2186   _swigc__p_double,
2187   _swigc__p_float,
2188   _swigc__p_int,
2189   _swigc__p_unsigned_char,
2190 };
2191 
2192 
2193 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
2194 
2195 static swig_constant_info swig_constants[] = {
2196 {0,0,0,0,0,0}
2197 };
2198 #ifdef __cplusplus
2199 }
2200 #endif
2201 static swig_variable_info swig_variables[] = {
2202 {0,0,0,0}
2203 };
2204 static swig_command_info swig_commands[] = {
2205 {"Amanda::Featurec::delete_Set", _wrap_delete_Set},
2206 {"Amanda::Featurec::Set_add", _wrap_Set_add},
2207 {"Amanda::Featurec::Set_remove", _wrap_Set_remove},
2208 {"Amanda::Featurec::Set_has", _wrap_Set_has},
2209 {"Amanda::Featurec::Set_as_string", _wrap_Set_as_string},
2210 {"Amanda::Featurec::new_Set", _wrap_new_Set},
2211 {"Amanda::Featurec::am_string_to_feature", _wrap_am_string_to_feature},
2212 {"Amanda::Featurec::am_set_default_feature_set", _wrap_am_set_default_feature_set},
2213 {"Amanda::Featurec::am_init_feature_set", _wrap_am_init_feature_set},
2214 {"Amanda::Featurec::am_features", _wrap_am_features},
2215 {0,0}
2216 };
2217 /* -----------------------------------------------------------------------------
2218  * Type initialization:
2219  * This problem is tough by the requirement that no dynamic
2220  * memory is used. Also, since swig_type_info structures store pointers to
2221  * swig_cast_info structures and swig_cast_info structures store pointers back
2222  * to swig_type_info structures, we need some lookup code at initialization.
2223  * The idea is that swig generates all the structures that are needed.
2224  * The runtime then collects these partially filled structures.
2225  * The SWIG_InitializeModule function takes these initial arrays out of
2226  * swig_module, and does all the lookup, filling in the swig_module.types
2227  * array with the correct data and linking the correct swig_cast_info
2228  * structures together.
2229  *
2230  * The generated swig_type_info structures are assigned statically to an initial
2231  * array. We just loop through that array, and handle each type individually.
2232  * First we lookup if this type has been already loaded, and if so, use the
2233  * loaded structure instead of the generated one. Then we have to fill in the
2234  * cast linked list. The cast data is initially stored in something like a
2235  * two-dimensional array. Each row corresponds to a type (there are the same
2236  * number of rows as there are in the swig_type_initial array). Each entry in
2237  * a column is one of the swig_cast_info structures for that type.
2238  * The cast_initial array is actually an array of arrays, because each row has
2239  * a variable number of columns. So to actually build the cast linked list,
2240  * we find the array of casts associated with the type, and loop through it
2241  * adding the casts to the list. The one last trick we need to do is making
2242  * sure the type pointer in the swig_cast_info struct is correct.
2243  *
2244  * First off, we lookup the cast->type name to see if it is already loaded.
2245  * There are three cases to handle:
2246  *  1) If the cast->type has already been loaded AND the type we are adding
2247  *     casting info to has not been loaded (it is in this module), THEN we
2248  *     replace the cast->type pointer with the type pointer that has already
2249  *     been loaded.
2250  *  2) If BOTH types (the one we are adding casting info to, and the
2251  *     cast->type) are loaded, THEN the cast info has already been loaded by
2252  *     the previous module so we just ignore it.
2253  *  3) Finally, if cast->type has not already been loaded, then we add that
2254  *     swig_cast_info to the linked list (because the cast->type) pointer will
2255  *     be correct.
2256  * ----------------------------------------------------------------------------- */
2257 
2258 #ifdef __cplusplus
2259 extern "C" {
2260 #if 0
2261 } /* c-mode */
2262 #endif
2263 #endif
2264 
2265 #if 0
2266 #define SWIGRUNTIME_DEBUG
2267 #endif
2268 
2269 
2270 SWIGRUNTIME void
SWIG_InitializeModule(void * clientdata)2271 SWIG_InitializeModule(void *clientdata) {
2272   size_t i;
2273   swig_module_info *module_head, *iter;
2274   int init;
2275 
2276   /* check to see if the circular list has been setup, if not, set it up */
2277   if (swig_module.next==0) {
2278     /* Initialize the swig_module */
2279     swig_module.type_initial = swig_type_initial;
2280     swig_module.cast_initial = swig_cast_initial;
2281     swig_module.next = &swig_module;
2282     init = 1;
2283   } else {
2284     init = 0;
2285   }
2286 
2287   /* Try and load any already created modules */
2288   module_head = SWIG_GetModule(clientdata);
2289   if (!module_head) {
2290     /* This is the first module loaded for this interpreter */
2291     /* so set the swig module into the interpreter */
2292     SWIG_SetModule(clientdata, &swig_module);
2293   } else {
2294     /* the interpreter has loaded a SWIG module, but has it loaded this one? */
2295     iter=module_head;
2296     do {
2297       if (iter==&swig_module) {
2298         /* Our module is already in the list, so there's nothing more to do. */
2299         return;
2300       }
2301       iter=iter->next;
2302     } while (iter!= module_head);
2303 
2304     /* otherwise we must add our module into the list */
2305     swig_module.next = module_head->next;
2306     module_head->next = &swig_module;
2307   }
2308 
2309   /* When multiple interpreters are used, a module could have already been initialized in
2310        a different interpreter, but not yet have a pointer in this interpreter.
2311        In this case, we do not want to continue adding types... everything should be
2312        set up already */
2313   if (init == 0) return;
2314 
2315   /* Now work on filling in swig_module.types */
2316 #ifdef SWIGRUNTIME_DEBUG
2317   printf("SWIG_InitializeModule: size %d\n", swig_module.size);
2318 #endif
2319   for (i = 0; i < swig_module.size; ++i) {
2320     swig_type_info *type = 0;
2321     swig_type_info *ret;
2322     swig_cast_info *cast;
2323 
2324 #ifdef SWIGRUNTIME_DEBUG
2325     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
2326 #endif
2327 
2328     /* if there is another module already loaded */
2329     if (swig_module.next != &swig_module) {
2330       type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
2331     }
2332     if (type) {
2333       /* Overwrite clientdata field */
2334 #ifdef SWIGRUNTIME_DEBUG
2335       printf("SWIG_InitializeModule: found type %s\n", type->name);
2336 #endif
2337       if (swig_module.type_initial[i]->clientdata) {
2338         type->clientdata = swig_module.type_initial[i]->clientdata;
2339 #ifdef SWIGRUNTIME_DEBUG
2340         printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
2341 #endif
2342       }
2343     } else {
2344       type = swig_module.type_initial[i];
2345     }
2346 
2347     /* Insert casting types */
2348     cast = swig_module.cast_initial[i];
2349     while (cast->type) {
2350       /* Don't need to add information already in the list */
2351       ret = 0;
2352 #ifdef SWIGRUNTIME_DEBUG
2353       printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
2354 #endif
2355       if (swig_module.next != &swig_module) {
2356         ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
2357 #ifdef SWIGRUNTIME_DEBUG
2358         if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
2359 #endif
2360       }
2361       if (ret) {
2362         if (type == swig_module.type_initial[i]) {
2363 #ifdef SWIGRUNTIME_DEBUG
2364           printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
2365 #endif
2366           cast->type = ret;
2367           ret = 0;
2368         } else {
2369           /* Check for casting already in the list */
2370           swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
2371 #ifdef SWIGRUNTIME_DEBUG
2372           if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
2373 #endif
2374           if (!ocast) ret = 0;
2375         }
2376       }
2377 
2378       if (!ret) {
2379 #ifdef SWIGRUNTIME_DEBUG
2380         printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
2381 #endif
2382         if (type->cast) {
2383           type->cast->prev = cast;
2384           cast->next = type->cast;
2385         }
2386         type->cast = cast;
2387       }
2388       cast++;
2389     }
2390     /* Set entry in modules->types array equal to the type */
2391     swig_module.types[i] = type;
2392   }
2393   swig_module.types[i] = 0;
2394 
2395 #ifdef SWIGRUNTIME_DEBUG
2396   printf("**** SWIG_InitializeModule: Cast List ******\n");
2397   for (i = 0; i < swig_module.size; ++i) {
2398     int j = 0;
2399     swig_cast_info *cast = swig_module.cast_initial[i];
2400     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
2401     while (cast->type) {
2402       printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
2403       cast++;
2404       ++j;
2405     }
2406     printf("---- Total casts: %d\n",j);
2407   }
2408   printf("**** SWIG_InitializeModule: Cast List ******\n");
2409 #endif
2410 }
2411 
2412 /* This function will propagate the clientdata field of type to
2413 * any new swig_type_info structures that have been added into the list
2414 * of equivalent types.  It is like calling
2415 * SWIG_TypeClientData(type, clientdata) a second time.
2416 */
2417 SWIGRUNTIME void
SWIG_PropagateClientData(void)2418 SWIG_PropagateClientData(void) {
2419   size_t i;
2420   swig_cast_info *equiv;
2421   static int init_run = 0;
2422 
2423   if (init_run) return;
2424   init_run = 1;
2425 
2426   for (i = 0; i < swig_module.size; i++) {
2427     if (swig_module.types[i]->clientdata) {
2428       equiv = swig_module.types[i]->cast;
2429       while (equiv) {
2430         if (!equiv->converter) {
2431           if (equiv->type && !equiv->type->clientdata)
2432           SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
2433         }
2434         equiv = equiv->next;
2435       }
2436     }
2437   }
2438 }
2439 
2440 #ifdef __cplusplus
2441 #if 0
2442 {
2443   /* c-mode */
2444 #endif
2445 }
2446 #endif
2447 
2448 
2449 
2450 #if defined(__cplusplus) && ! defined(XSPROTO)
2451 extern "C"
2452 #endif
2453 
XS(SWIG_init)2454 XS(SWIG_init) {
2455   dXSARGS;
2456   int i;
2457 
2458   SWIG_InitializeModule(0);
2459 
2460   /* Install commands */
2461   for (i = 0; swig_commands[i].name; i++) {
2462     /* Casts only needed for Perl < 5.10. */
2463 #ifdef __cplusplus
2464     newXS(const_cast<char*>(swig_commands[i].name), swig_commands[i].wrapper, const_cast<char*>(__FILE__));
2465 #else
2466     newXS((char*)swig_commands[i].name, swig_commands[i].wrapper, (char*)__FILE__);
2467 #endif
2468   }
2469 
2470   /* Install variables */
2471   for (i = 0; swig_variables[i].name; i++) {
2472     SV *sv;
2473     sv = get_sv(swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
2474     if (swig_variables[i].type) {
2475       SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
2476     } else {
2477       sv_setiv(sv,(IV) 0);
2478     }
2479     swig_create_magic(sv, swig_variables[i].name, swig_variables[i].set, swig_variables[i].get);
2480   }
2481 
2482   /* Install constant */
2483   for (i = 0; swig_constants[i].type; i++) {
2484     SV *sv;
2485     sv = get_sv(swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
2486     switch(swig_constants[i].type) {
2487     case SWIG_INT:
2488       sv_setiv(sv, (IV) swig_constants[i].lvalue);
2489       break;
2490     case SWIG_FLOAT:
2491       sv_setnv(sv, (double) swig_constants[i].dvalue);
2492       break;
2493     case SWIG_STRING:
2494       sv_setpv(sv, (const char *) swig_constants[i].pvalue);
2495       break;
2496     case SWIG_POINTER:
2497       SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0);
2498       break;
2499     case SWIG_BINARY:
2500       SWIG_MakePackedObj(sv, swig_constants[i].pvalue, swig_constants[i].lvalue, *(swig_constants[i].ptype));
2501       break;
2502     default:
2503       break;
2504     }
2505     SvREADONLY_on(sv);
2506   }
2507 
2508   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2509     SV *sv = get_sv((char*) SWIG_prefix "have_feature_support", TRUE | 0x2 | GV_ADDMULTI);
2510     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(have_feature_support)));
2511     SvREADONLY_on(sv);
2512   } while(0) /*@SWIG@*/;
2513   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2514     SV *sv = get_sv((char*) SWIG_prefix "fe_options_auth", TRUE | 0x2 | GV_ADDMULTI);
2515     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_auth)));
2516     SvREADONLY_on(sv);
2517   } while(0) /*@SWIG@*/;
2518   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2519     SV *sv = get_sv((char*) SWIG_prefix "fe_selfcheck_req", TRUE | 0x2 | GV_ADDMULTI);
2520     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_selfcheck_req)));
2521     SvREADONLY_on(sv);
2522   } while(0) /*@SWIG@*/;
2523   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2524     SV *sv = get_sv((char*) SWIG_prefix "fe_selfcheck_req_device", TRUE | 0x2 | GV_ADDMULTI);
2525     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_selfcheck_req_device)));
2526     SvREADONLY_on(sv);
2527   } while(0) /*@SWIG@*/;
2528   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2529     SV *sv = get_sv((char*) SWIG_prefix "fe_selfcheck_rep", TRUE | 0x2 | GV_ADDMULTI);
2530     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_selfcheck_rep)));
2531     SvREADONLY_on(sv);
2532   } while(0) /*@SWIG@*/;
2533   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2534     SV *sv = get_sv((char*) SWIG_prefix "fe_sendsize_req_no_options", TRUE | 0x2 | GV_ADDMULTI);
2535     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_sendsize_req_no_options)));
2536     SvREADONLY_on(sv);
2537   } while(0) /*@SWIG@*/;
2538   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2539     SV *sv = get_sv((char*) SWIG_prefix "fe_sendsize_req_options", TRUE | 0x2 | GV_ADDMULTI);
2540     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_sendsize_req_options)));
2541     SvREADONLY_on(sv);
2542   } while(0) /*@SWIG@*/;
2543   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2544     SV *sv = get_sv((char*) SWIG_prefix "fe_sendsize_req_device", TRUE | 0x2 | GV_ADDMULTI);
2545     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_sendsize_req_device)));
2546     SvREADONLY_on(sv);
2547   } while(0) /*@SWIG@*/;
2548   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2549     SV *sv = get_sv((char*) SWIG_prefix "fe_sendsize_rep", TRUE | 0x2 | GV_ADDMULTI);
2550     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_sendsize_rep)));
2551     SvREADONLY_on(sv);
2552   } while(0) /*@SWIG@*/;
2553   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2554     SV *sv = get_sv((char*) SWIG_prefix "fe_sendbackup_req", TRUE | 0x2 | GV_ADDMULTI);
2555     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_sendbackup_req)));
2556     SvREADONLY_on(sv);
2557   } while(0) /*@SWIG@*/;
2558   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2559     SV *sv = get_sv((char*) SWIG_prefix "fe_sendbackup_req_device", TRUE | 0x2 | GV_ADDMULTI);
2560     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_sendbackup_req_device)));
2561     SvREADONLY_on(sv);
2562   } while(0) /*@SWIG@*/;
2563   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2564     SV *sv = get_sv((char*) SWIG_prefix "fe_sendbackup_rep", TRUE | 0x2 | GV_ADDMULTI);
2565     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_sendbackup_rep)));
2566     SvREADONLY_on(sv);
2567   } while(0) /*@SWIG@*/;
2568   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2569     SV *sv = get_sv((char*) SWIG_prefix "fe_noop_req", TRUE | 0x2 | GV_ADDMULTI);
2570     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_noop_req)));
2571     SvREADONLY_on(sv);
2572   } while(0) /*@SWIG@*/;
2573   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2574     SV *sv = get_sv((char*) SWIG_prefix "fe_noop_rep", TRUE | 0x2 | GV_ADDMULTI);
2575     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_noop_rep)));
2576     SvREADONLY_on(sv);
2577   } while(0) /*@SWIG@*/;
2578   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2579     SV *sv = get_sv((char*) SWIG_prefix "fe_program_dump", TRUE | 0x2 | GV_ADDMULTI);
2580     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_program_dump)));
2581     SvREADONLY_on(sv);
2582   } while(0) /*@SWIG@*/;
2583   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2584     SV *sv = get_sv((char*) SWIG_prefix "fe_program_gnutar", TRUE | 0x2 | GV_ADDMULTI);
2585     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_program_gnutar)));
2586     SvREADONLY_on(sv);
2587   } while(0) /*@SWIG@*/;
2588   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2589     SV *sv = get_sv((char*) SWIG_prefix "fe_program_application_api", TRUE | 0x2 | GV_ADDMULTI);
2590     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_program_application_api)));
2591     SvREADONLY_on(sv);
2592   } while(0) /*@SWIG@*/;
2593   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2594     SV *sv = get_sv((char*) SWIG_prefix "fe_options_compress_fast", TRUE | 0x2 | GV_ADDMULTI);
2595     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_compress_fast)));
2596     SvREADONLY_on(sv);
2597   } while(0) /*@SWIG@*/;
2598   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2599     SV *sv = get_sv((char*) SWIG_prefix "fe_options_compress_best", TRUE | 0x2 | GV_ADDMULTI);
2600     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_compress_best)));
2601     SvREADONLY_on(sv);
2602   } while(0) /*@SWIG@*/;
2603   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2604     SV *sv = get_sv((char*) SWIG_prefix "fe_options_srvcomp_fast", TRUE | 0x2 | GV_ADDMULTI);
2605     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_srvcomp_fast)));
2606     SvREADONLY_on(sv);
2607   } while(0) /*@SWIG@*/;
2608   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2609     SV *sv = get_sv((char*) SWIG_prefix "fe_options_srvcomp_best", TRUE | 0x2 | GV_ADDMULTI);
2610     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_srvcomp_best)));
2611     SvREADONLY_on(sv);
2612   } while(0) /*@SWIG@*/;
2613   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2614     SV *sv = get_sv((char*) SWIG_prefix "fe_options_no_record", TRUE | 0x2 | GV_ADDMULTI);
2615     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_no_record)));
2616     SvREADONLY_on(sv);
2617   } while(0) /*@SWIG@*/;
2618   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2619     SV *sv = get_sv((char*) SWIG_prefix "fe_options_index", TRUE | 0x2 | GV_ADDMULTI);
2620     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_index)));
2621     SvREADONLY_on(sv);
2622   } while(0) /*@SWIG@*/;
2623   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2624     SV *sv = get_sv((char*) SWIG_prefix "fe_options_exclude_file", TRUE | 0x2 | GV_ADDMULTI);
2625     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_exclude_file)));
2626     SvREADONLY_on(sv);
2627   } while(0) /*@SWIG@*/;
2628   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2629     SV *sv = get_sv((char*) SWIG_prefix "fe_options_exclude_list", TRUE | 0x2 | GV_ADDMULTI);
2630     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_exclude_list)));
2631     SvREADONLY_on(sv);
2632   } while(0) /*@SWIG@*/;
2633   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2634     SV *sv = get_sv((char*) SWIG_prefix "fe_options_multiple_exclude", TRUE | 0x2 | GV_ADDMULTI);
2635     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_multiple_exclude)));
2636     SvREADONLY_on(sv);
2637   } while(0) /*@SWIG@*/;
2638   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2639     SV *sv = get_sv((char*) SWIG_prefix "fe_options_optional_exclude", TRUE | 0x2 | GV_ADDMULTI);
2640     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_optional_exclude)));
2641     SvREADONLY_on(sv);
2642   } while(0) /*@SWIG@*/;
2643   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2644     SV *sv = get_sv((char*) SWIG_prefix "fe_options_include_file", TRUE | 0x2 | GV_ADDMULTI);
2645     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_include_file)));
2646     SvREADONLY_on(sv);
2647   } while(0) /*@SWIG@*/;
2648   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2649     SV *sv = get_sv((char*) SWIG_prefix "fe_options_include_list", TRUE | 0x2 | GV_ADDMULTI);
2650     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_include_list)));
2651     SvREADONLY_on(sv);
2652   } while(0) /*@SWIG@*/;
2653   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2654     SV *sv = get_sv((char*) SWIG_prefix "fe_options_multiple_include", TRUE | 0x2 | GV_ADDMULTI);
2655     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_multiple_include)));
2656     SvREADONLY_on(sv);
2657   } while(0) /*@SWIG@*/;
2658   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2659     SV *sv = get_sv((char*) SWIG_prefix "fe_options_optional_include", TRUE | 0x2 | GV_ADDMULTI);
2660     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_optional_include)));
2661     SvREADONLY_on(sv);
2662   } while(0) /*@SWIG@*/;
2663   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2664     SV *sv = get_sv((char*) SWIG_prefix "fe_options_bsd_auth", TRUE | 0x2 | GV_ADDMULTI);
2665     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_bsd_auth)));
2666     SvREADONLY_on(sv);
2667   } while(0) /*@SWIG@*/;
2668   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2669     SV *sv = get_sv((char*) SWIG_prefix "fe_options_krb4_auth", TRUE | 0x2 | GV_ADDMULTI);
2670     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_krb4_auth)));
2671     SvREADONLY_on(sv);
2672   } while(0) /*@SWIG@*/;
2673   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2674     SV *sv = get_sv((char*) SWIG_prefix "fe_options_kencrypt", TRUE | 0x2 | GV_ADDMULTI);
2675     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_kencrypt)));
2676     SvREADONLY_on(sv);
2677   } while(0) /*@SWIG@*/;
2678   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2679     SV *sv = get_sv((char*) SWIG_prefix "fe_req_options_maxdumps", TRUE | 0x2 | GV_ADDMULTI);
2680     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_req_options_maxdumps)));
2681     SvREADONLY_on(sv);
2682   } while(0) /*@SWIG@*/;
2683   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2684     SV *sv = get_sv((char*) SWIG_prefix "fe_req_options_hostname", TRUE | 0x2 | GV_ADDMULTI);
2685     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_req_options_hostname)));
2686     SvREADONLY_on(sv);
2687   } while(0) /*@SWIG@*/;
2688   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2689     SV *sv = get_sv((char*) SWIG_prefix "fe_req_options_features", TRUE | 0x2 | GV_ADDMULTI);
2690     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_req_options_features)));
2691     SvREADONLY_on(sv);
2692   } while(0) /*@SWIG@*/;
2693   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2694     SV *sv = get_sv((char*) SWIG_prefix "fe_rep_options_maxdumps", TRUE | 0x2 | GV_ADDMULTI);
2695     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_rep_options_maxdumps)));
2696     SvREADONLY_on(sv);
2697   } while(0) /*@SWIG@*/;
2698   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2699     SV *sv = get_sv((char*) SWIG_prefix "fe_rep_options_hostname", TRUE | 0x2 | GV_ADDMULTI);
2700     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_rep_options_hostname)));
2701     SvREADONLY_on(sv);
2702   } while(0) /*@SWIG@*/;
2703   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2704     SV *sv = get_sv((char*) SWIG_prefix "fe_rep_options_features", TRUE | 0x2 | GV_ADDMULTI);
2705     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_rep_options_features)));
2706     SvREADONLY_on(sv);
2707   } while(0) /*@SWIG@*/;
2708   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2709     SV *sv = get_sv((char*) SWIG_prefix "fe_rep_options_sendbackup_options", TRUE | 0x2 | GV_ADDMULTI);
2710     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_rep_options_sendbackup_options)));
2711     SvREADONLY_on(sv);
2712   } while(0) /*@SWIG@*/;
2713   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2714     SV *sv = get_sv((char*) SWIG_prefix "fe_amindexd_fileno_in_OLSD", TRUE | 0x2 | GV_ADDMULTI);
2715     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amindexd_fileno_in_OLSD)));
2716     SvREADONLY_on(sv);
2717   } while(0) /*@SWIG@*/;
2718   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2719     SV *sv = get_sv((char*) SWIG_prefix "fe_amindexd_fileno_in_ORLD", TRUE | 0x2 | GV_ADDMULTI);
2720     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amindexd_fileno_in_ORLD)));
2721     SvREADONLY_on(sv);
2722   } while(0) /*@SWIG@*/;
2723   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2724     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_fsf", TRUE | 0x2 | GV_ADDMULTI);
2725     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_fsf)));
2726     SvREADONLY_on(sv);
2727   } while(0) /*@SWIG@*/;
2728   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2729     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_label", TRUE | 0x2 | GV_ADDMULTI);
2730     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_label)));
2731     SvREADONLY_on(sv);
2732   } while(0) /*@SWIG@*/;
2733   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2734     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_device", TRUE | 0x2 | GV_ADDMULTI);
2735     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_device)));
2736     SvREADONLY_on(sv);
2737   } while(0) /*@SWIG@*/;
2738   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2739     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_host", TRUE | 0x2 | GV_ADDMULTI);
2740     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_host)));
2741     SvREADONLY_on(sv);
2742   } while(0) /*@SWIG@*/;
2743   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2744     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_disk", TRUE | 0x2 | GV_ADDMULTI);
2745     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_disk)));
2746     SvREADONLY_on(sv);
2747   } while(0) /*@SWIG@*/;
2748   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2749     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_datestamp", TRUE | 0x2 | GV_ADDMULTI);
2750     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_datestamp)));
2751     SvREADONLY_on(sv);
2752   } while(0) /*@SWIG@*/;
2753   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2754     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_header", TRUE | 0x2 | GV_ADDMULTI);
2755     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_header)));
2756     SvREADONLY_on(sv);
2757   } while(0) /*@SWIG@*/;
2758   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2759     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_nargs", TRUE | 0x2 | GV_ADDMULTI);
2760     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_nargs)));
2761     SvREADONLY_on(sv);
2762   } while(0) /*@SWIG@*/;
2763   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2764     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_config", TRUE | 0x2 | GV_ADDMULTI);
2765     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_config)));
2766     SvREADONLY_on(sv);
2767   } while(0) /*@SWIG@*/;
2768   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2769     SV *sv = get_sv((char*) SWIG_prefix "fe_partial_estimate", TRUE | 0x2 | GV_ADDMULTI);
2770     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_partial_estimate)));
2771     SvREADONLY_on(sv);
2772   } while(0) /*@SWIG@*/;
2773   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2774     SV *sv = get_sv((char*) SWIG_prefix "fe_calcsize_estimate", TRUE | 0x2 | GV_ADDMULTI);
2775     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_calcsize_estimate)));
2776     SvREADONLY_on(sv);
2777   } while(0) /*@SWIG@*/;
2778   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2779     SV *sv = get_sv((char*) SWIG_prefix "fe_selfcheck_calcsize", TRUE | 0x2 | GV_ADDMULTI);
2780     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_selfcheck_calcsize)));
2781     SvREADONLY_on(sv);
2782   } while(0) /*@SWIG@*/;
2783   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2784     SV *sv = get_sv((char*) SWIG_prefix "fe_recover_splits", TRUE | 0x2 | GV_ADDMULTI);
2785     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_recover_splits)));
2786     SvREADONLY_on(sv);
2787   } while(0) /*@SWIG@*/;
2788   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2789     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_exchange_features", TRUE | 0x2 | GV_ADDMULTI);
2790     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_exchange_features)));
2791     SvREADONLY_on(sv);
2792   } while(0) /*@SWIG@*/;
2793   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2794     SV *sv = get_sv((char*) SWIG_prefix "fe_options_compress_cust", TRUE | 0x2 | GV_ADDMULTI);
2795     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_compress_cust)));
2796     SvREADONLY_on(sv);
2797   } while(0) /*@SWIG@*/;
2798   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2799     SV *sv = get_sv((char*) SWIG_prefix "fe_options_srvcomp_cust", TRUE | 0x2 | GV_ADDMULTI);
2800     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_srvcomp_cust)));
2801     SvREADONLY_on(sv);
2802   } while(0) /*@SWIG@*/;
2803   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2804     SV *sv = get_sv((char*) SWIG_prefix "fe_options_encrypt_cust", TRUE | 0x2 | GV_ADDMULTI);
2805     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_encrypt_cust)));
2806     SvREADONLY_on(sv);
2807   } while(0) /*@SWIG@*/;
2808   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2809     SV *sv = get_sv((char*) SWIG_prefix "fe_options_encrypt_serv_cust", TRUE | 0x2 | GV_ADDMULTI);
2810     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_encrypt_serv_cust)));
2811     SvREADONLY_on(sv);
2812   } while(0) /*@SWIG@*/;
2813   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2814     SV *sv = get_sv((char*) SWIG_prefix "fe_options_client_decrypt_option", TRUE | 0x2 | GV_ADDMULTI);
2815     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_client_decrypt_option)));
2816     SvREADONLY_on(sv);
2817   } while(0) /*@SWIG@*/;
2818   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2819     SV *sv = get_sv((char*) SWIG_prefix "fe_options_server_decrypt_option", TRUE | 0x2 | GV_ADDMULTI);
2820     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_options_server_decrypt_option)));
2821     SvREADONLY_on(sv);
2822   } while(0) /*@SWIG@*/;
2823   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2824     SV *sv = get_sv((char*) SWIG_prefix "fe_amindexd_marshall_in_OLSD", TRUE | 0x2 | GV_ADDMULTI);
2825     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amindexd_marshall_in_OLSD)));
2826     SvREADONLY_on(sv);
2827   } while(0) /*@SWIG@*/;
2828   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2829     SV *sv = get_sv((char*) SWIG_prefix "fe_amindexd_marshall_in_ORLD", TRUE | 0x2 | GV_ADDMULTI);
2830     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amindexd_marshall_in_ORLD)));
2831     SvREADONLY_on(sv);
2832   } while(0) /*@SWIG@*/;
2833   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2834     SV *sv = get_sv((char*) SWIG_prefix "fe_amindexd_marshall_in_DHST", TRUE | 0x2 | GV_ADDMULTI);
2835     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amindexd_marshall_in_DHST)));
2836     SvREADONLY_on(sv);
2837   } while(0) /*@SWIG@*/;
2838   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2839     SV *sv = get_sv((char*) SWIG_prefix "fe_amrecover_FEEDME", TRUE | 0x2 | GV_ADDMULTI);
2840     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amrecover_FEEDME)));
2841     SvREADONLY_on(sv);
2842   } while(0) /*@SWIG@*/;
2843   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2844     SV *sv = get_sv((char*) SWIG_prefix "fe_amrecover_timestamp", TRUE | 0x2 | GV_ADDMULTI);
2845     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amrecover_timestamp)));
2846     SvREADONLY_on(sv);
2847   } while(0) /*@SWIG@*/;
2848   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2849     SV *sv = get_sv((char*) SWIG_prefix "fe_interface_quoted_text", TRUE | 0x2 | GV_ADDMULTI);
2850     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_interface_quoted_text)));
2851     SvREADONLY_on(sv);
2852   } while(0) /*@SWIG@*/;
2853   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2854     SV *sv = get_sv((char*) SWIG_prefix "fe_program_star", TRUE | 0x2 | GV_ADDMULTI);
2855     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_program_star)));
2856     SvREADONLY_on(sv);
2857   } while(0) /*@SWIG@*/;
2858   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2859     SV *sv = get_sv((char*) SWIG_prefix "fe_amindexd_options_hostname", TRUE | 0x2 | GV_ADDMULTI);
2860     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amindexd_options_hostname)));
2861     SvREADONLY_on(sv);
2862   } while(0) /*@SWIG@*/;
2863   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2864     SV *sv = get_sv((char*) SWIG_prefix "fe_amindexd_options_features", TRUE | 0x2 | GV_ADDMULTI);
2865     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amindexd_options_features)));
2866     SvREADONLY_on(sv);
2867   } while(0) /*@SWIG@*/;
2868   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2869     SV *sv = get_sv((char*) SWIG_prefix "fe_amindexd_options_auth", TRUE | 0x2 | GV_ADDMULTI);
2870     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amindexd_options_auth)));
2871     SvREADONLY_on(sv);
2872   } while(0) /*@SWIG@*/;
2873   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2874     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_options_hostname", TRUE | 0x2 | GV_ADDMULTI);
2875     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_options_hostname)));
2876     SvREADONLY_on(sv);
2877   } while(0) /*@SWIG@*/;
2878   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2879     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_options_features", TRUE | 0x2 | GV_ADDMULTI);
2880     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_options_features)));
2881     SvREADONLY_on(sv);
2882   } while(0) /*@SWIG@*/;
2883   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2884     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_options_auth", TRUE | 0x2 | GV_ADDMULTI);
2885     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_options_auth)));
2886     SvREADONLY_on(sv);
2887   } while(0) /*@SWIG@*/;
2888   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2889     SV *sv = get_sv((char*) SWIG_prefix "fe_amrecover_message", TRUE | 0x2 | GV_ADDMULTI);
2890     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amrecover_message)));
2891     SvREADONLY_on(sv);
2892   } while(0) /*@SWIG@*/;
2893   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2894     SV *sv = get_sv((char*) SWIG_prefix "fe_amrecover_feedme_tape", TRUE | 0x2 | GV_ADDMULTI);
2895     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amrecover_feedme_tape)));
2896     SvREADONLY_on(sv);
2897   } while(0) /*@SWIG@*/;
2898   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2899     SV *sv = get_sv((char*) SWIG_prefix "fe_req_options_config", TRUE | 0x2 | GV_ADDMULTI);
2900     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_req_options_config)));
2901     SvREADONLY_on(sv);
2902   } while(0) /*@SWIG@*/;
2903   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2904     SV *sv = get_sv((char*) SWIG_prefix "fe_rep_sendsize_quoted_error", TRUE | 0x2 | GV_ADDMULTI);
2905     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_rep_sendsize_quoted_error)));
2906     SvREADONLY_on(sv);
2907   } while(0) /*@SWIG@*/;
2908   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2909     SV *sv = get_sv((char*) SWIG_prefix "fe_req_xml", TRUE | 0x2 | GV_ADDMULTI);
2910     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_req_xml)));
2911     SvREADONLY_on(sv);
2912   } while(0) /*@SWIG@*/;
2913   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2914     SV *sv = get_sv((char*) SWIG_prefix "fe_pp_script", TRUE | 0x2 | GV_ADDMULTI);
2915     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_pp_script)));
2916     SvREADONLY_on(sv);
2917   } while(0) /*@SWIG@*/;
2918   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2919     SV *sv = get_sv((char*) SWIG_prefix "fe_amindexd_DLE", TRUE | 0x2 | GV_ADDMULTI);
2920     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amindexd_DLE)));
2921     SvREADONLY_on(sv);
2922   } while(0) /*@SWIG@*/;
2923   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2924     SV *sv = get_sv((char*) SWIG_prefix "fe_amrecover_dle_in_header", TRUE | 0x2 | GV_ADDMULTI);
2925     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amrecover_dle_in_header)));
2926     SvREADONLY_on(sv);
2927   } while(0) /*@SWIG@*/;
2928   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2929     SV *sv = get_sv((char*) SWIG_prefix "fe_xml_estimate", TRUE | 0x2 | GV_ADDMULTI);
2930     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_xml_estimate)));
2931     SvREADONLY_on(sv);
2932   } while(0) /*@SWIG@*/;
2933   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2934     SV *sv = get_sv((char*) SWIG_prefix "fe_xml_property_priority", TRUE | 0x2 | GV_ADDMULTI);
2935     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_xml_property_priority)));
2936     SvREADONLY_on(sv);
2937   } while(0) /*@SWIG@*/;
2938   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2939     SV *sv = get_sv((char*) SWIG_prefix "fe_sendsize_rep_warning", TRUE | 0x2 | GV_ADDMULTI);
2940     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_sendsize_rep_warning)));
2941     SvREADONLY_on(sv);
2942   } while(0) /*@SWIG@*/;
2943   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2944     SV *sv = get_sv((char*) SWIG_prefix "fe_xml_estimatelist", TRUE | 0x2 | GV_ADDMULTI);
2945     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_xml_estimatelist)));
2946     SvREADONLY_on(sv);
2947   } while(0) /*@SWIG@*/;
2948   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2949     SV *sv = get_sv((char*) SWIG_prefix "fe_xml_level_server", TRUE | 0x2 | GV_ADDMULTI);
2950     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_xml_level_server)));
2951     SvREADONLY_on(sv);
2952   } while(0) /*@SWIG@*/;
2953   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2954     SV *sv = get_sv((char*) SWIG_prefix "fe_xml_data_path", TRUE | 0x2 | GV_ADDMULTI);
2955     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_xml_data_path)));
2956     SvREADONLY_on(sv);
2957   } while(0) /*@SWIG@*/;
2958   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2959     SV *sv = get_sv((char*) SWIG_prefix "fe_xml_directtcp_list", TRUE | 0x2 | GV_ADDMULTI);
2960     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_xml_directtcp_list)));
2961     SvREADONLY_on(sv);
2962   } while(0) /*@SWIG@*/;
2963   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2964     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_datapath", TRUE | 0x2 | GV_ADDMULTI);
2965     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_datapath)));
2966     SvREADONLY_on(sv);
2967   } while(0) /*@SWIG@*/;
2968   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2969     SV *sv = get_sv((char*) SWIG_prefix "fe_sendbackup_noop", TRUE | 0x2 | GV_ADDMULTI);
2970     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_sendbackup_noop)));
2971     SvREADONLY_on(sv);
2972   } while(0) /*@SWIG@*/;
2973   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2974     SV *sv = get_sv((char*) SWIG_prefix "fe_amrecover_origsize_in_header", TRUE | 0x2 | GV_ADDMULTI);
2975     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amrecover_origsize_in_header)));
2976     SvREADONLY_on(sv);
2977   } while(0) /*@SWIG@*/;
2978   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2979     SV *sv = get_sv((char*) SWIG_prefix "fe_amidxtaped_abort", TRUE | 0x2 | GV_ADDMULTI);
2980     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amidxtaped_abort)));
2981     SvREADONLY_on(sv);
2982   } while(0) /*@SWIG@*/;
2983   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2984     SV *sv = get_sv((char*) SWIG_prefix "fe_amrecover_correct_disk_quoting", TRUE | 0x2 | GV_ADDMULTI);
2985     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amrecover_correct_disk_quoting)));
2986     SvREADONLY_on(sv);
2987   } while(0) /*@SWIG@*/;
2988   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2989     SV *sv = get_sv((char*) SWIG_prefix "fe_amindexd_quote_label", TRUE | 0x2 | GV_ADDMULTI);
2990     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amindexd_quote_label)));
2991     SvREADONLY_on(sv);
2992   } while(0) /*@SWIG@*/;
2993   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2994     SV *sv = get_sv((char*) SWIG_prefix "fe_amrecover_receive_unfiltered", TRUE | 0x2 | GV_ADDMULTI);
2995     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_amrecover_receive_unfiltered)));
2996     SvREADONLY_on(sv);
2997   } while(0) /*@SWIG@*/;
2998   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
2999     SV *sv = get_sv((char*) SWIG_prefix "fe_application_client_name", TRUE | 0x2 | GV_ADDMULTI);
3000     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_application_client_name)));
3001     SvREADONLY_on(sv);
3002   } while(0) /*@SWIG@*/;
3003   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3004     SV *sv = get_sv((char*) SWIG_prefix "fe_script_client_name", TRUE | 0x2 | GV_ADDMULTI);
3005     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_script_client_name)));
3006     SvREADONLY_on(sv);
3007   } while(0) /*@SWIG@*/;
3008   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3009     SV *sv = get_sv((char*) SWIG_prefix "fe_dumptype_property", TRUE | 0x2 | GV_ADDMULTI);
3010     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_dumptype_property)));
3011     SvREADONLY_on(sv);
3012   } while(0) /*@SWIG@*/;
3013   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3014     SV *sv = get_sv((char*) SWIG_prefix "fe_sendbackup_state", TRUE | 0x2 | GV_ADDMULTI);
3015     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(fe_sendbackup_state)));
3016     SvREADONLY_on(sv);
3017   } while(0) /*@SWIG@*/;
3018   /*@SWIG:/usr/share/swig/3.0.7/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3019     SV *sv = get_sv((char*) SWIG_prefix "last_feature", TRUE | 0x2 | GV_ADDMULTI);
3020     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(last_feature)));
3021     SvREADONLY_on(sv);
3022   } while(0) /*@SWIG@*/;
3023   SWIG_TypeClientData(SWIGTYPE_p_Set, (void*) "Amanda::Feature::Set");
3024   ST(0) = &PL_sv_yes;
3025   XSRETURN(1);
3026 }
3027 
3028