Imported Upstream version 3.3.1
[debian/amanda] / perl / Amanda / Logfile.c
1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 2.0.4
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
126 /* -----------------------------------------------------------------------------
127  * swigrun.swg
128  *
129  * This file contains generic C API SWIG runtime support for pointer
130  * type checking.
131  * ----------------------------------------------------------------------------- */
132
133 /* This should only be incremented when either the layout of swig_type_info changes,
134    or for whatever reason, the runtime changes incompatibly */
135 #define SWIG_RUNTIME_VERSION "4"
136
137 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
138 #ifdef SWIG_TYPE_TABLE
139 # define SWIG_QUOTE_STRING(x) #x
140 # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
141 # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
142 #else
143 # define SWIG_TYPE_TABLE_NAME
144 #endif
145
146 /*
147   You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
148   creating a static or dynamic library from the SWIG runtime code.
149   In 99.9% of the cases, SWIG just needs to declare them as 'static'.
150   
151   But only do this if strictly necessary, ie, if you have problems
152   with your compiler or suchlike.
153 */
154
155 #ifndef SWIGRUNTIME
156 # define SWIGRUNTIME SWIGINTERN
157 #endif
158
159 #ifndef SWIGRUNTIMEINLINE
160 # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
161 #endif
162
163 /*  Generic buffer size */
164 #ifndef SWIG_BUFFER_SIZE
165 # define SWIG_BUFFER_SIZE 1024
166 #endif
167
168 /* Flags for pointer conversions */
169 #define SWIG_POINTER_DISOWN        0x1
170 #define SWIG_CAST_NEW_MEMORY       0x2
171
172 /* Flags for new pointer objects */
173 #define SWIG_POINTER_OWN           0x1
174
175
176 /* 
177    Flags/methods for returning states.
178    
179    The SWIG conversion methods, as ConvertPtr, return an integer 
180    that tells if the conversion was successful or not. And if not,
181    an error code can be returned (see swigerrors.swg for the codes).
182    
183    Use the following macros/flags to set or process the returning
184    states.
185    
186    In old versions of SWIG, code such as the following was usually written:
187
188      if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
189        // success code
190      } else {
191        //fail code
192      }
193
194    Now you can be more explicit:
195
196     int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
197     if (SWIG_IsOK(res)) {
198       // success code
199     } else {
200       // fail code
201     }
202
203    which is the same really, but now you can also do
204
205     Type *ptr;
206     int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
207     if (SWIG_IsOK(res)) {
208       // success code
209       if (SWIG_IsNewObj(res) {
210         ...
211         delete *ptr;
212       } else {
213         ...
214       }
215     } else {
216       // fail code
217     }
218     
219    I.e., now SWIG_ConvertPtr can return new objects and you can
220    identify the case and take care of the deallocation. Of course that
221    also requires SWIG_ConvertPtr to return new result values, such as
222
223       int SWIG_ConvertPtr(obj, ptr,...) {         
224         if (<obj is ok>) {                             
225           if (<need new object>) {                     
226             *ptr = <ptr to new allocated object>; 
227             return SWIG_NEWOBJ;                
228           } else {                                     
229             *ptr = <ptr to old object>;        
230             return SWIG_OLDOBJ;                
231           }                                    
232         } else {                                       
233           return SWIG_BADOBJ;                  
234         }                                              
235       }
236
237    Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
238    more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
239    SWIG errors code.
240
241    Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
242    allows to return the 'cast rank', for example, if you have this
243
244        int food(double)
245        int fooi(int);
246
247    and you call
248  
249       food(1)   // cast rank '1'  (1 -> 1.0)
250       fooi(1)   // cast rank '0'
251
252    just use the SWIG_AddCast()/SWIG_CheckState()
253 */
254
255 #define SWIG_OK                    (0) 
256 #define SWIG_ERROR                 (-1)
257 #define SWIG_IsOK(r)               (r >= 0)
258 #define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)  
259
260 /* The CastRankLimit says how many bits are used for the cast rank */
261 #define SWIG_CASTRANKLIMIT         (1 << 8)
262 /* The NewMask denotes the object was created (using new/malloc) */
263 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
264 /* The TmpMask is for in/out typemaps that use temporal objects */
265 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
266 /* Simple returning values */
267 #define SWIG_BADOBJ                (SWIG_ERROR)
268 #define SWIG_OLDOBJ                (SWIG_OK)
269 #define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
270 #define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
271 /* Check, add and del mask methods */
272 #define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
273 #define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
274 #define SWIG_IsNewObj(r)           (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
275 #define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
276 #define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
277 #define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
278
279 /* Cast-Rank Mode */
280 #if defined(SWIG_CASTRANK_MODE)
281 #  ifndef SWIG_TypeRank
282 #    define SWIG_TypeRank             unsigned long
283 #  endif
284 #  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
285 #    define SWIG_MAXCASTRANK          (2)
286 #  endif
287 #  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
288 #  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
289 SWIGINTERNINLINE int SWIG_AddCast(int r) { 
290   return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
291 }
292 SWIGINTERNINLINE int SWIG_CheckState(int r) { 
293   return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; 
294 }
295 #else /* no cast-rank mode */
296 #  define SWIG_AddCast
297 #  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
298 #endif
299
300
301 #include <string.h>
302
303 #ifdef __cplusplus
304 extern "C" {
305 #endif
306
307 typedef void *(*swig_converter_func)(void *, int *);
308 typedef struct swig_type_info *(*swig_dycast_func)(void **);
309
310 /* Structure to store information on one type */
311 typedef struct swig_type_info {
312   const char             *name;                 /* mangled name of this type */
313   const char             *str;                  /* human readable name of this type */
314   swig_dycast_func        dcast;                /* dynamic cast function down a hierarchy */
315   struct swig_cast_info  *cast;                 /* linked list of types that can cast into this type */
316   void                   *clientdata;           /* language specific type data */
317   int                    owndata;               /* flag if the structure owns the clientdata */
318 } swig_type_info;
319
320 /* Structure to store a type and conversion function used for casting */
321 typedef struct swig_cast_info {
322   swig_type_info         *type;                 /* pointer to type that is equivalent to this type */
323   swig_converter_func     converter;            /* function to cast the void pointers */
324   struct swig_cast_info  *next;                 /* pointer to next cast in linked list */
325   struct swig_cast_info  *prev;                 /* pointer to the previous cast */
326 } swig_cast_info;
327
328 /* Structure used to store module information
329  * Each module generates one structure like this, and the runtime collects
330  * all of these structures and stores them in a circularly linked list.*/
331 typedef struct swig_module_info {
332   swig_type_info         **types;               /* Array of pointers to swig_type_info structures that are in this module */
333   size_t                 size;                  /* Number of types in this module */
334   struct swig_module_info *next;                /* Pointer to next element in circularly linked list */
335   swig_type_info         **type_initial;        /* Array of initially generated type structures */
336   swig_cast_info         **cast_initial;        /* Array of initially generated casting structures */
337   void                    *clientdata;          /* Language specific module data */
338 } swig_module_info;
339
340 /* 
341   Compare two type names skipping the space characters, therefore
342   "char*" == "char *" and "Class<int>" == "Class<int >", etc.
343
344   Return 0 when the two name types are equivalent, as in
345   strncmp, but skipping ' '.
346 */
347 SWIGRUNTIME int
348 SWIG_TypeNameComp(const char *f1, const char *l1,
349                   const char *f2, const char *l2) {
350   for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
351     while ((*f1 == ' ') && (f1 != l1)) ++f1;
352     while ((*f2 == ' ') && (f2 != l2)) ++f2;
353     if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
354   }
355   return (int)((l1 - f1) - (l2 - f2));
356 }
357
358 /*
359   Check type equivalence in a name list like <name1>|<name2>|...
360   Return 0 if not equal, 1 if equal
361 */
362 SWIGRUNTIME int
363 SWIG_TypeEquiv(const char *nb, const char *tb) {
364   int equiv = 0;
365   const char* te = tb + strlen(tb);
366   const char* ne = nb;
367   while (!equiv && *ne) {
368     for (nb = ne; *ne; ++ne) {
369       if (*ne == '|') break;
370     }
371     equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
372     if (*ne) ++ne;
373   }
374   return equiv;
375 }
376
377 /*
378   Check type equivalence in a name list like <name1>|<name2>|...
379   Return 0 if equal, -1 if nb < tb, 1 if nb > tb
380 */
381 SWIGRUNTIME int
382 SWIG_TypeCompare(const char *nb, const char *tb) {
383   int equiv = 0;
384   const char* te = tb + strlen(tb);
385   const char* ne = nb;
386   while (!equiv && *ne) {
387     for (nb = ne; *ne; ++ne) {
388       if (*ne == '|') break;
389     }
390     equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
391     if (*ne) ++ne;
392   }
393   return equiv;
394 }
395
396
397 /*
398   Check the typename
399 */
400 SWIGRUNTIME swig_cast_info *
401 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
402   if (ty) {
403     swig_cast_info *iter = ty->cast;
404     while (iter) {
405       if (strcmp(iter->type->name, c) == 0) {
406         if (iter == ty->cast)
407           return iter;
408         /* Move iter to the top of the linked list */
409         iter->prev->next = iter->next;
410         if (iter->next)
411           iter->next->prev = iter->prev;
412         iter->next = ty->cast;
413         iter->prev = 0;
414         if (ty->cast) ty->cast->prev = iter;
415         ty->cast = iter;
416         return iter;
417       }
418       iter = iter->next;
419     }
420   }
421   return 0;
422 }
423
424 /* 
425   Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
426 */
427 SWIGRUNTIME swig_cast_info *
428 SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
429   if (ty) {
430     swig_cast_info *iter = ty->cast;
431     while (iter) {
432       if (iter->type == from) {
433         if (iter == ty->cast)
434           return iter;
435         /* Move iter to the top of the linked list */
436         iter->prev->next = iter->next;
437         if (iter->next)
438           iter->next->prev = iter->prev;
439         iter->next = ty->cast;
440         iter->prev = 0;
441         if (ty->cast) ty->cast->prev = iter;
442         ty->cast = iter;
443         return iter;
444       }
445       iter = iter->next;
446     }
447   }
448   return 0;
449 }
450
451 /*
452   Cast a pointer up an inheritance hierarchy
453 */
454 SWIGRUNTIMEINLINE void *
455 SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
456   return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
457 }
458
459 /* 
460    Dynamic pointer casting. Down an inheritance hierarchy
461 */
462 SWIGRUNTIME swig_type_info *
463 SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
464   swig_type_info *lastty = ty;
465   if (!ty || !ty->dcast) return ty;
466   while (ty && (ty->dcast)) {
467     ty = (*ty->dcast)(ptr);
468     if (ty) lastty = ty;
469   }
470   return lastty;
471 }
472
473 /*
474   Return the name associated with this type
475 */
476 SWIGRUNTIMEINLINE const char *
477 SWIG_TypeName(const swig_type_info *ty) {
478   return ty->name;
479 }
480
481 /*
482   Return the pretty name associated with this type,
483   that is an unmangled type name in a form presentable to the user.
484 */
485 SWIGRUNTIME const char *
486 SWIG_TypePrettyName(const swig_type_info *type) {
487   /* The "str" field contains the equivalent pretty names of the
488      type, separated by vertical-bar characters.  We choose
489      to print the last name, as it is often (?) the most
490      specific. */
491   if (!type) return NULL;
492   if (type->str != NULL) {
493     const char *last_name = type->str;
494     const char *s;
495     for (s = type->str; *s; s++)
496       if (*s == '|') last_name = s+1;
497     return last_name;
498   }
499   else
500     return type->name;
501 }
502
503 /* 
504    Set the clientdata field for a type
505 */
506 SWIGRUNTIME void
507 SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
508   swig_cast_info *cast = ti->cast;
509   /* if (ti->clientdata == clientdata) return; */
510   ti->clientdata = clientdata;
511   
512   while (cast) {
513     if (!cast->converter) {
514       swig_type_info *tc = cast->type;
515       if (!tc->clientdata) {
516         SWIG_TypeClientData(tc, clientdata);
517       }
518     }    
519     cast = cast->next;
520   }
521 }
522 SWIGRUNTIME void
523 SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
524   SWIG_TypeClientData(ti, clientdata);
525   ti->owndata = 1;
526 }
527   
528 /*
529   Search for a swig_type_info structure only by mangled name
530   Search is a O(log #types)
531   
532   We start searching at module start, and finish searching when start == end.  
533   Note: if start == end at the beginning of the function, we go all the way around
534   the circular list.
535 */
536 SWIGRUNTIME swig_type_info *
537 SWIG_MangledTypeQueryModule(swig_module_info *start, 
538                             swig_module_info *end, 
539                             const char *name) {
540   swig_module_info *iter = start;
541   do {
542     if (iter->size) {
543       register size_t l = 0;
544       register size_t r = iter->size - 1;
545       do {
546         /* since l+r >= 0, we can (>> 1) instead (/ 2) */
547         register size_t i = (l + r) >> 1; 
548         const char *iname = iter->types[i]->name;
549         if (iname) {
550           register int compare = strcmp(name, iname);
551           if (compare == 0) {       
552             return iter->types[i];
553           } else if (compare < 0) {
554             if (i) {
555               r = i - 1;
556             } else {
557               break;
558             }
559           } else if (compare > 0) {
560             l = i + 1;
561           }
562         } else {
563           break; /* should never happen */
564         }
565       } while (l <= r);
566     }
567     iter = iter->next;
568   } while (iter != end);
569   return 0;
570 }
571
572 /*
573   Search for a swig_type_info structure for either a mangled name or a human readable name.
574   It first searches the mangled names of the types, which is a O(log #types)
575   If a type is not found it then searches the human readable names, which is O(#types).
576   
577   We start searching at module start, and finish searching when start == end.  
578   Note: if start == end at the beginning of the function, we go all the way around
579   the circular list.
580 */
581 SWIGRUNTIME swig_type_info *
582 SWIG_TypeQueryModule(swig_module_info *start, 
583                      swig_module_info *end, 
584                      const char *name) {
585   /* STEP 1: Search the name field using binary search */
586   swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
587   if (ret) {
588     return ret;
589   } else {
590     /* STEP 2: If the type hasn't been found, do a complete search
591        of the str field (the human readable name) */
592     swig_module_info *iter = start;
593     do {
594       register size_t i = 0;
595       for (; i < iter->size; ++i) {
596         if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
597           return iter->types[i];
598       }
599       iter = iter->next;
600     } while (iter != end);
601   }
602   
603   /* neither found a match */
604   return 0;
605 }
606
607 /* 
608    Pack binary data into a string
609 */
610 SWIGRUNTIME char *
611 SWIG_PackData(char *c, void *ptr, size_t sz) {
612   static const char hex[17] = "0123456789abcdef";
613   register const unsigned char *u = (unsigned char *) ptr;
614   register const unsigned char *eu =  u + sz;
615   for (; u != eu; ++u) {
616     register unsigned char uu = *u;
617     *(c++) = hex[(uu & 0xf0) >> 4];
618     *(c++) = hex[uu & 0xf];
619   }
620   return c;
621 }
622
623 /* 
624    Unpack binary data from a string
625 */
626 SWIGRUNTIME const char *
627 SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
628   register unsigned char *u = (unsigned char *) ptr;
629   register const unsigned char *eu = u + sz;
630   for (; u != eu; ++u) {
631     register char d = *(c++);
632     register unsigned char uu;
633     if ((d >= '0') && (d <= '9'))
634       uu = ((d - '0') << 4);
635     else if ((d >= 'a') && (d <= 'f'))
636       uu = ((d - ('a'-10)) << 4);
637     else 
638       return (char *) 0;
639     d = *(c++);
640     if ((d >= '0') && (d <= '9'))
641       uu |= (d - '0');
642     else if ((d >= 'a') && (d <= 'f'))
643       uu |= (d - ('a'-10));
644     else 
645       return (char *) 0;
646     *u = uu;
647   }
648   return c;
649 }
650
651 /* 
652    Pack 'void *' into a string buffer.
653 */
654 SWIGRUNTIME char *
655 SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
656   char *r = buff;
657   if ((2*sizeof(void *) + 2) > bsz) return 0;
658   *(r++) = '_';
659   r = SWIG_PackData(r,&ptr,sizeof(void *));
660   if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
661   strcpy(r,name);
662   return buff;
663 }
664
665 SWIGRUNTIME const char *
666 SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
667   if (*c != '_') {
668     if (strcmp(c,"NULL") == 0) {
669       *ptr = (void *) 0;
670       return name;
671     } else {
672       return 0;
673     }
674   }
675   return SWIG_UnpackData(++c,ptr,sizeof(void *));
676 }
677
678 SWIGRUNTIME char *
679 SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
680   char *r = buff;
681   size_t lname = (name ? strlen(name) : 0);
682   if ((2*sz + 2 + lname) > bsz) return 0;
683   *(r++) = '_';
684   r = SWIG_PackData(r,ptr,sz);
685   if (lname) {
686     strncpy(r,name,lname+1);
687   } else {
688     *r = 0;
689   }
690   return buff;
691 }
692
693 SWIGRUNTIME const char *
694 SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
695   if (*c != '_') {
696     if (strcmp(c,"NULL") == 0) {
697       memset(ptr,0,sz);
698       return name;
699     } else {
700       return 0;
701     }
702   }
703   return SWIG_UnpackData(++c,ptr,sz);
704 }
705
706 #ifdef __cplusplus
707 }
708 #endif
709
710 /*  Errors in SWIG */
711 #define  SWIG_UnknownError         -1 
712 #define  SWIG_IOError              -2 
713 #define  SWIG_RuntimeError         -3 
714 #define  SWIG_IndexError           -4 
715 #define  SWIG_TypeError            -5 
716 #define  SWIG_DivisionByZero       -6 
717 #define  SWIG_OverflowError        -7 
718 #define  SWIG_SyntaxError          -8 
719 #define  SWIG_ValueError           -9 
720 #define  SWIG_SystemError          -10
721 #define  SWIG_AttributeError       -11
722 #define  SWIG_MemoryError          -12 
723 #define  SWIG_NullReferenceError   -13
724
725
726
727 #ifdef __cplusplus
728 /* Needed on some windows machines---since MS plays funny games with the header files under C++ */
729 #include <math.h>
730 #include <stdlib.h>
731 extern "C" {
732 #endif
733 #include "EXTERN.h"
734 #include "perl.h"
735 #include "XSUB.h"
736
737 /* Add in functionality missing in older versions of Perl. Much of this is based on Devel-PPPort on cpan. */
738
739 /* Add PERL_REVISION, PERL_VERSION, PERL_SUBVERSION if missing */
740 #ifndef PERL_REVISION
741 #  if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
742 #    define PERL_PATCHLEVEL_H_IMPLICIT
743 #    include <patchlevel.h>
744 #  endif
745 #  if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
746 #    include <could_not_find_Perl_patchlevel.h>
747 #  endif
748 #  ifndef PERL_REVISION
749 #    define PERL_REVISION       (5)
750 #    define PERL_VERSION        PATCHLEVEL
751 #    define PERL_SUBVERSION     SUBVERSION
752 #  endif
753 #endif
754
755 #if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)
756 #define PerlIO_exportFILE(fh,fl) (FILE*)(fh)
757 #endif
758
759 #ifndef SvIOK_UV
760 # define SvIOK_UV(sv)       (SvIOK(sv) && (SvUVX(sv) == SvIVX(sv)))
761 #endif
762
763 #ifndef SvUOK
764 # define SvUOK(sv)           SvIOK_UV(sv)
765 #endif
766
767 #if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5)))
768 #  define PL_sv_undef               sv_undef
769 #  define PL_na                     na
770 #  define PL_errgv                  errgv
771 #  define PL_sv_no                  sv_no
772 #  define PL_sv_yes                 sv_yes
773 #  define PL_markstack_ptr          markstack_ptr
774 #endif
775
776 #ifndef IVSIZE
777 #  ifdef LONGSIZE
778 #    define IVSIZE LONGSIZE
779 #  else
780 #    define IVSIZE 4 /* A bold guess, but the best we can make. */
781 #  endif
782 #endif
783
784 #ifndef INT2PTR
785 #  if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
786 #    define PTRV                  UV
787 #    define INT2PTR(any,d)        (any)(d)
788 #  else
789 #    if PTRSIZE == LONGSIZE
790 #      define PTRV                unsigned long
791 #    else
792 #      define PTRV                unsigned
793 #    endif
794 #    define INT2PTR(any,d)        (any)(PTRV)(d)
795 #  endif
796
797 #  define NUM2PTR(any,d)  (any)(PTRV)(d)
798 #  define PTR2IV(p)       INT2PTR(IV,p)
799 #  define PTR2UV(p)       INT2PTR(UV,p)
800 #  define PTR2NV(p)       NUM2PTR(NV,p)
801
802 #  if PTRSIZE == LONGSIZE
803 #    define PTR2ul(p)     (unsigned long)(p)
804 #  else
805 #    define PTR2ul(p)     INT2PTR(unsigned long,p)
806 #  endif
807 #endif /* !INT2PTR */
808
809 #ifndef SvPV_nolen
810 # define SvPV_nolen(x) SvPV(x,PL_na)
811 #endif
812
813 #ifndef get_sv
814 #  define get_sv perl_get_sv
815 #endif
816
817 #ifndef ERRSV
818 #  define ERRSV get_sv("@",FALSE)
819 #endif
820
821 #ifndef pTHX_
822 #define pTHX_
823 #endif   
824
825 #include <string.h>
826 #ifdef __cplusplus
827 }
828 #endif
829
830 /* -----------------------------------------------------------------------------
831  * error manipulation
832  * ----------------------------------------------------------------------------- */
833
834 SWIGINTERN const char*
835 SWIG_Perl_ErrorType(int code) {
836   const char* type = 0;
837   switch(code) {
838   case SWIG_MemoryError:
839     type = "MemoryError";
840     break;
841   case SWIG_IOError:
842     type = "IOError";
843     break;
844   case SWIG_RuntimeError:
845     type = "RuntimeError";
846     break;
847   case SWIG_IndexError:
848     type = "IndexError";
849     break;
850   case SWIG_TypeError:
851     type = "TypeError";
852     break;
853   case SWIG_DivisionByZero:
854     type = "ZeroDivisionError";
855     break;
856   case SWIG_OverflowError:
857     type = "OverflowError";
858     break;
859   case SWIG_SyntaxError:
860     type = "SyntaxError";
861     break;
862   case SWIG_ValueError:
863     type = "ValueError";
864     break;
865   case SWIG_SystemError:
866     type = "SystemError";
867     break;
868   case SWIG_AttributeError:
869     type = "AttributeError";
870     break;
871   default:
872     type = "RuntimeError";
873   }
874   return type;
875 }
876
877
878
879
880 /* -----------------------------------------------------------------------------
881  * perlrun.swg
882  *
883  * This file contains the runtime support for Perl modules
884  * and includes code for managing global variables and pointer
885  * type checking.
886  * ----------------------------------------------------------------------------- */
887
888 #ifdef PERL_OBJECT
889 #define SWIG_PERL_OBJECT_DECL CPerlObj *SWIGUNUSEDPARM(pPerl),
890 #define SWIG_PERL_OBJECT_CALL pPerl,
891 #else
892 #define SWIG_PERL_OBJECT_DECL
893 #define SWIG_PERL_OBJECT_CALL
894 #endif
895
896 /* Common SWIG API */
897
898 /* for raw pointers */
899 #define SWIG_ConvertPtr(obj, pp, type, flags)           SWIG_Perl_ConvertPtr(SWIG_PERL_OBJECT_CALL obj, pp, type, flags)
900 #define SWIG_ConvertPtrAndOwn(obj, pp, type, flags,own) SWIG_Perl_ConvertPtrAndOwn(SWIG_PERL_OBJECT_CALL obj, pp, type, flags, own)
901 #define SWIG_NewPointerObj(p, type, flags)              SWIG_Perl_NewPointerObj(SWIG_PERL_OBJECT_CALL p, type, flags)
902
903 /* for raw packed data */
904 #define SWIG_ConvertPacked(obj, p, s, type)             SWIG_Perl_ConvertPacked(SWIG_PERL_OBJECT_CALL obj, p, s, type)
905 #define SWIG_NewPackedObj(p, s, type)                   SWIG_Perl_NewPackedObj(SWIG_PERL_OBJECT_CALL p, s, type)
906
907 /* for class or struct pointers */
908 #define SWIG_ConvertInstance(obj, pptr, type, flags)    SWIG_ConvertPtr(obj, pptr, type, flags)
909 #define SWIG_NewInstanceObj(ptr, type, flags)           SWIG_NewPointerObj(ptr, type, flags)
910
911 /* for C or C++ function pointers */
912 #define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_ConvertPtr(obj, pptr, type, 0)
913 #define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_NewPointerObj(ptr, type, 0)
914
915 /* for C++ member pointers, ie, member methods */
916 #define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_ConvertPacked(obj, ptr, sz, ty)
917 #define SWIG_NewMemberObj(ptr, sz, type)                SWIG_NewPackedObj(ptr, sz, type)
918
919
920 /* Runtime API */
921
922 #define SWIG_GetModule(clientdata)                      SWIG_Perl_GetModule()
923 #define SWIG_SetModule(clientdata, pointer)             SWIG_Perl_SetModule(pointer)
924
925
926 /* Error manipulation */
927
928 #define SWIG_ErrorType(code)                            SWIG_Perl_ErrorType(code)               
929 #define SWIG_Error(code, msg)                           sv_setpvf(GvSV(PL_errgv),"%s %s\n", SWIG_ErrorType(code), msg)
930 #define SWIG_fail                                       goto fail                                                   
931
932 /* Perl-specific SWIG API */
933
934 #define SWIG_MakePtr(sv, ptr, type, flags)              SWIG_Perl_MakePtr(SWIG_PERL_OBJECT_CALL sv, ptr, type, flags)
935 #define SWIG_MakePackedObj(sv, p, s, type)              SWIG_Perl_MakePackedObj(SWIG_PERL_OBJECT_CALL sv, p, s, type)
936 #define SWIG_SetError(str)                              SWIG_Error(SWIG_RuntimeError, str)
937
938
939 #define SWIG_PERL_DECL_ARGS_1(arg1)                     (SWIG_PERL_OBJECT_DECL arg1)
940 #define SWIG_PERL_CALL_ARGS_1(arg1)                     (SWIG_PERL_OBJECT_CALL arg1)
941 #define SWIG_PERL_DECL_ARGS_2(arg1, arg2)               (SWIG_PERL_OBJECT_DECL arg1, arg2)
942 #define SWIG_PERL_CALL_ARGS_2(arg1, arg2)               (SWIG_PERL_OBJECT_CALL arg1, arg2)
943
944 /* -----------------------------------------------------------------------------
945  * pointers/data manipulation
946  * ----------------------------------------------------------------------------- */
947
948 /* For backward compatibility only */
949 #define SWIG_POINTER_EXCEPTION  0
950
951 #ifdef __cplusplus
952 extern "C" {
953 #endif
954
955 #define SWIG_OWNER   SWIG_POINTER_OWN
956 #define SWIG_SHADOW  SWIG_OWNER << 1
957
958 #define SWIG_MAYBE_PERL_OBJECT SWIG_PERL_OBJECT_DECL
959
960 /* SWIG Perl macros */
961
962 /* Macro to declare an XS function */
963 #ifndef XSPROTO
964 #   define XSPROTO(name) void name(pTHX_ CV* cv)
965 #endif
966
967 /* Macro to call an XS function */
968 #ifdef PERL_OBJECT 
969 #  define SWIG_CALLXS(_name) _name(cv,pPerl) 
970 #else 
971 #  ifndef MULTIPLICITY 
972 #    define SWIG_CALLXS(_name) _name(cv) 
973 #  else 
974 #    define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv) 
975 #  endif 
976 #endif 
977
978 #ifdef PERL_OBJECT
979 #define MAGIC_PPERL  CPerlObj *pPerl = (CPerlObj *) this;
980
981 #ifdef __cplusplus
982 extern "C" {
983 #endif
984 typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *);
985 #ifdef __cplusplus
986 }
987 #endif
988
989 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
990 #define SWIGCLASS_STATIC
991
992 #else /* PERL_OBJECT */
993
994 #define MAGIC_PPERL
995 #define SWIGCLASS_STATIC static SWIGUNUSED
996
997 #ifndef MULTIPLICITY
998 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
999
1000 #ifdef __cplusplus
1001 extern "C" {
1002 #endif
1003 typedef int (*SwigMagicFunc)(SV *, MAGIC *);
1004 #ifdef __cplusplus
1005 }
1006 #endif
1007
1008 #else /* MULTIPLICITY */
1009
1010 #define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b)
1011
1012 #ifdef __cplusplus
1013 extern "C" {
1014 #endif
1015 typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
1016 #ifdef __cplusplus
1017 }
1018 #endif
1019
1020 #endif /* MULTIPLICITY */
1021 #endif /* PERL_OBJECT */
1022
1023 /* Workaround for bug in perl 5.6.x croak and earlier */
1024 #if (PERL_VERSION < 8)
1025 #  ifdef PERL_OBJECT
1026 #    define SWIG_croak_null() SWIG_Perl_croak_null(pPerl)
1027 static void SWIG_Perl_croak_null(CPerlObj *pPerl)
1028 #  else
1029 static void SWIG_croak_null()
1030 #  endif
1031 {
1032   SV *err=ERRSV;
1033 #  if (PERL_VERSION < 6)
1034   croak("%_", err);
1035 #  else
1036   if (SvOK(err) && !SvROK(err)) croak("%_", err);
1037   croak(Nullch);
1038 #  endif
1039 }
1040 #else
1041 #  define SWIG_croak_null() croak(Nullch)
1042 #endif
1043
1044
1045 /* 
1046    Define how strict is the cast between strings and integers/doubles
1047    when overloading between these types occurs.
1048    
1049    The default is making it as strict as possible by using SWIG_AddCast
1050    when needed.
1051    
1052    You can use -DSWIG_PERL_NO_STRICT_STR2NUM at compilation time to
1053    disable the SWIG_AddCast, making the casting between string and
1054    numbers less strict.
1055
1056    In the end, we try to solve the overloading between strings and
1057    numerical types in the more natural way, but if you can avoid it,
1058    well, avoid it using %rename, for example.
1059 */
1060 #ifndef SWIG_PERL_NO_STRICT_STR2NUM
1061 # ifndef SWIG_PERL_STRICT_STR2NUM
1062 #  define SWIG_PERL_STRICT_STR2NUM
1063 # endif
1064 #endif
1065 #ifdef SWIG_PERL_STRICT_STR2NUM
1066 /* string takes precedence */
1067 #define SWIG_Str2NumCast(x) SWIG_AddCast(x)  
1068 #else
1069 /* number takes precedence */
1070 #define SWIG_Str2NumCast(x) x
1071 #endif
1072
1073
1074
1075 #include <stdlib.h>
1076
1077 SWIGRUNTIME const char *
1078 SWIG_Perl_TypeProxyName(const swig_type_info *type) {
1079   if (!type) return NULL;
1080   if (type->clientdata != NULL) {
1081     return (const char*) type->clientdata;
1082   } 
1083   else {
1084     return type->name;
1085   }
1086 }
1087
1088 /* Identical to SWIG_TypeCheck, except for strcmp comparison */
1089 SWIGRUNTIME swig_cast_info *
1090 SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) {
1091   if (ty) {
1092     swig_cast_info *iter = ty->cast;
1093     while (iter) {
1094       if ( (!iter->type->clientdata && (strcmp(iter->type->name, c) == 0)) ||
1095             (iter->type->clientdata && (strcmp((char*)iter->type->clientdata, c) == 0)) ) {
1096         if (iter == ty->cast)
1097           return iter;
1098         /* Move iter to the top of the linked list */
1099         iter->prev->next = iter->next;
1100         if (iter->next)
1101           iter->next->prev = iter->prev;
1102         iter->next = ty->cast;
1103         iter->prev = 0;
1104         if (ty->cast) ty->cast->prev = iter;
1105         ty->cast = iter;
1106         return iter;
1107       }
1108       iter = iter->next;
1109     }
1110   }
1111   return 0;
1112 }
1113
1114 /* Function for getting a pointer value */
1115
1116 SWIGRUNTIME int
1117 SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags, int *own) {
1118   swig_cast_info *tc;
1119   void *voidptr = (void *)0;
1120   SV *tsv = 0;
1121
1122   if (own)
1123     *own = 0;
1124
1125   /* If magical, apply more magic */
1126   if (SvGMAGICAL(sv))
1127     mg_get(sv);
1128
1129   /* Check to see if this is an object */
1130   if (sv_isobject(sv)) {
1131     IV tmp = 0;
1132     tsv = (SV*) SvRV(sv);
1133     if ((SvTYPE(tsv) == SVt_PVHV)) {
1134       MAGIC *mg;
1135       if (SvMAGICAL(tsv)) {
1136         mg = mg_find(tsv,'P');
1137         if (mg) {
1138           sv = mg->mg_obj;
1139           if (sv_isobject(sv)) {
1140             tsv = (SV*)SvRV(sv);
1141             tmp = SvIV(tsv);
1142           }
1143         }
1144       } else {
1145         return SWIG_ERROR;
1146       }
1147     } else {
1148       tmp = SvIV(tsv);
1149     }
1150     voidptr = INT2PTR(void *,tmp);
1151   } else if (! SvOK(sv)) {            /* Check for undef */
1152     *(ptr) = (void *) 0;
1153     return SWIG_OK;
1154   } else if (SvTYPE(sv) == SVt_RV) {  /* Check for NULL pointer */
1155     if (!SvROK(sv)) {
1156       /* In Perl 5.12 and later, SVt_RV == SVt_IV, so sv could be a valid integer value.  */
1157       if (SvIOK(sv)) {
1158         return SWIG_ERROR;
1159       } else {
1160         /* NULL pointer (reference to undef). */
1161         *(ptr) = (void *) 0;
1162         return SWIG_OK;
1163       }
1164     } else {
1165       return SWIG_ERROR;
1166     }
1167   } else {                            /* Don't know what it is */
1168     return SWIG_ERROR;
1169   }
1170   if (_t) {
1171     /* Now see if the types match */
1172     char *_c = HvNAME(SvSTASH(SvRV(sv)));
1173     tc = SWIG_TypeProxyCheck(_c,_t);
1174     if (!tc) {
1175       return SWIG_ERROR;
1176     }
1177     {
1178       int newmemory = 0;
1179       *ptr = SWIG_TypeCast(tc,voidptr,&newmemory);
1180       if (newmemory == SWIG_CAST_NEW_MEMORY) {
1181         assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
1182         if (own)
1183           *own = *own | SWIG_CAST_NEW_MEMORY;
1184       }
1185     }
1186   } else {
1187     *ptr = voidptr;
1188   }
1189
1190   /* 
1191    *  DISOWN implementation: we need a perl guru to check this one.
1192    */
1193   if (tsv && (flags & SWIG_POINTER_DISOWN)) {
1194     /* 
1195      *  almost copy paste code from below SWIG_POINTER_OWN setting
1196      */
1197     SV *obj = sv;
1198     HV *stash = SvSTASH(SvRV(obj));
1199     GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
1200     if (isGV(gv)) {
1201       HV *hv = GvHVn(gv);
1202       /*
1203        * To set ownership (see below), a newSViv(1) entry is added. 
1204        * Hence, to remove ownership, we delete the entry.
1205        */
1206       if (hv_exists_ent(hv, obj, 0)) {
1207         hv_delete_ent(hv, obj, 0, 0);
1208       }
1209     }
1210   }
1211   return SWIG_OK;
1212 }
1213
1214 SWIGRUNTIME int
1215 SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags) {
1216   return SWIG_Perl_ConvertPtrAndOwn(sv, ptr, _t, flags, 0);
1217 }
1218
1219 SWIGRUNTIME void
1220 SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, int flags) {
1221   if (ptr && (flags & (SWIG_SHADOW | SWIG_POINTER_OWN))) {
1222     SV *self;
1223     SV *obj=newSV(0);
1224     HV *hash=newHV();
1225     HV *stash;
1226     sv_setref_pv(obj, (char *) SWIG_Perl_TypeProxyName(t), ptr);
1227     stash=SvSTASH(SvRV(obj));
1228     if (flags & SWIG_POINTER_OWN) {
1229       HV *hv;
1230       GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
1231       if (!isGV(gv))
1232         gv_init(gv, stash, "OWNER", 5, FALSE);
1233       hv=GvHVn(gv);
1234       hv_store_ent(hv, obj, newSViv(1), 0);
1235     }
1236     sv_magic((SV *)hash, (SV *)obj, 'P', Nullch, 0);
1237     SvREFCNT_dec(obj);
1238     self=newRV_noinc((SV *)hash);
1239     sv_setsv(sv, self);
1240     SvREFCNT_dec((SV *)self);
1241     sv_bless(sv, stash);
1242   }
1243   else {
1244     sv_setref_pv(sv, (char *) SWIG_Perl_TypeProxyName(t), ptr);
1245   }
1246 }
1247
1248 SWIGRUNTIMEINLINE SV *
1249 SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *ptr, swig_type_info *t, int flags) {
1250   SV *result = sv_newmortal();
1251   SWIG_MakePtr(result, ptr, t, flags);
1252   return result;
1253 }
1254
1255 SWIGRUNTIME void
1256 SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, int sz, swig_type_info *type) {
1257   char result[1024];
1258   char *r = result;
1259   if ((2*sz + 1 + strlen(SWIG_Perl_TypeProxyName(type))) > 1000) return;
1260   *(r++) = '_';
1261   r = SWIG_PackData(r,ptr,sz);
1262   strcpy(r,SWIG_Perl_TypeProxyName(type));
1263   sv_setpv(sv, result);
1264 }
1265
1266 SWIGRUNTIME SV *
1267 SWIG_Perl_NewPackedObj(SWIG_MAYBE_PERL_OBJECT void *ptr, int sz, swig_type_info *type) {
1268   SV *result = sv_newmortal();
1269   SWIG_Perl_MakePackedObj(result, ptr, sz, type);
1270   return result;
1271 }
1272
1273 /* Convert a packed value value */
1274 SWIGRUNTIME int
1275 SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_type_info *ty) {
1276   swig_cast_info *tc;
1277   const char  *c = 0;
1278
1279   if ((!obj) || (!SvOK(obj))) return SWIG_ERROR;
1280   c = SvPV_nolen(obj);
1281   /* Pointer values must start with leading underscore */
1282   if (*c != '_') return SWIG_ERROR;
1283   c++;
1284   c = SWIG_UnpackData(c,ptr,sz);
1285   if (ty) {
1286     tc = SWIG_TypeCheck(c,ty);
1287     if (!tc) return SWIG_ERROR;
1288   }
1289   return SWIG_OK;
1290 }
1291
1292
1293 /* Macros for low-level exception handling */
1294 #define SWIG_croak(x)    { SWIG_Error(SWIG_RuntimeError, x); SWIG_fail; }
1295
1296
1297 typedef XSPROTO(SwigPerlWrapper);
1298 typedef SwigPerlWrapper *SwigPerlWrapperPtr;
1299
1300 /* Structure for command table */
1301 typedef struct {
1302   const char         *name;
1303   SwigPerlWrapperPtr  wrapper;
1304 } swig_command_info;
1305
1306 /* Information for constant table */
1307
1308 #define SWIG_INT     1
1309 #define SWIG_FLOAT   2
1310 #define SWIG_STRING  3
1311 #define SWIG_POINTER 4
1312 #define SWIG_BINARY  5
1313
1314 /* Constant information structure */
1315 typedef struct swig_constant_info {
1316     int              type;
1317     const char      *name;
1318     long             lvalue;
1319     double           dvalue;
1320     void            *pvalue;
1321     swig_type_info **ptype;
1322 } swig_constant_info;
1323
1324
1325 /* Structure for variable table */
1326 typedef struct {
1327   const char   *name;
1328   SwigMagicFunc   set;
1329   SwigMagicFunc   get;
1330   swig_type_info  **type;
1331 } swig_variable_info;
1332
1333 /* Magic variable code */
1334 #ifndef PERL_OBJECT
1335 #define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)
1336   #ifndef MULTIPLICITY
1337      SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) 
1338   #else
1339      SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) 
1340   #endif
1341 #else
1342 #  define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
1343 SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) 
1344 #endif
1345 {
1346   MAGIC *mg;
1347   sv_magic(sv,sv,'U',(char *) name,strlen(name));
1348   mg = mg_find(sv,'U');
1349   mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
1350   mg->mg_virtual->svt_get = (SwigMagicFunc) get;
1351   mg->mg_virtual->svt_set = (SwigMagicFunc) set;
1352   mg->mg_virtual->svt_len = 0;
1353   mg->mg_virtual->svt_clear = 0;
1354   mg->mg_virtual->svt_free = 0;
1355 }
1356
1357
1358 SWIGRUNTIME swig_module_info *
1359 SWIG_Perl_GetModule(void) {
1360   static void *type_pointer = (void *)0;
1361   SV *pointer;
1362
1363   /* first check if pointer already created */
1364   if (!type_pointer) {
1365     pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE | GV_ADDMULTI);
1366     if (pointer && SvOK(pointer)) {
1367       type_pointer = INT2PTR(swig_type_info **, SvIV(pointer));
1368     }
1369   }
1370
1371   return (swig_module_info *) type_pointer;
1372 }
1373
1374 SWIGRUNTIME void
1375 SWIG_Perl_SetModule(swig_module_info *module) {
1376   SV *pointer;
1377
1378   /* create a new pointer */
1379   pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE | GV_ADDMULTI);
1380   sv_setiv(pointer, PTR2IV(module));
1381 }
1382
1383 #ifdef __cplusplus
1384 }
1385 #endif
1386
1387 /* Workaround perl5 global namespace pollution. Note that undefining library
1388  * functions like fopen will not solve the problem on all platforms as fopen
1389  * might be a macro on Windows but not necessarily on other operating systems. */
1390 #ifdef do_open
1391   #undef do_open
1392 #endif
1393 #ifdef do_close
1394   #undef do_close
1395 #endif
1396 #ifdef do_exec
1397   #undef do_exec
1398 #endif
1399 #ifdef scalar
1400   #undef scalar
1401 #endif
1402 #ifdef list
1403   #undef list
1404 #endif
1405 #ifdef apply
1406   #undef apply
1407 #endif
1408 #ifdef convert
1409   #undef convert
1410 #endif
1411 #ifdef Error
1412   #undef Error
1413 #endif
1414 #ifdef form
1415   #undef form
1416 #endif
1417 #ifdef vform
1418   #undef vform
1419 #endif
1420 #ifdef LABEL
1421   #undef LABEL
1422 #endif
1423 #ifdef METHOD
1424   #undef METHOD
1425 #endif
1426 #ifdef Move
1427   #undef Move
1428 #endif
1429 #ifdef yylex
1430   #undef yylex
1431 #endif
1432 #ifdef yyparse
1433   #undef yyparse
1434 #endif
1435 #ifdef yyerror
1436   #undef yyerror
1437 #endif
1438 #ifdef invert
1439   #undef invert
1440 #endif
1441 #ifdef ref
1442   #undef ref
1443 #endif
1444 #ifdef read
1445   #undef read
1446 #endif
1447 #ifdef write
1448   #undef write
1449 #endif
1450 #ifdef eof
1451   #undef eof
1452 #endif
1453 #ifdef bool
1454   #undef bool
1455 #endif
1456 #ifdef close
1457   #undef close
1458 #endif
1459 #ifdef rewind
1460   #undef rewind
1461 #endif
1462 #ifdef free
1463   #undef free
1464 #endif
1465 #ifdef malloc
1466   #undef malloc
1467 #endif
1468 #ifdef calloc
1469   #undef calloc
1470 #endif
1471 #ifdef Stat
1472   #undef Stat
1473 #endif
1474 #ifdef check
1475   #undef check
1476 #endif
1477 #ifdef seekdir
1478   #undef seekdir
1479 #endif
1480 #ifdef open
1481   #undef open
1482 #endif
1483 #ifdef readdir
1484   #undef readdir
1485 #endif
1486 #ifdef bind
1487   #undef bind
1488 #endif
1489 #ifdef access
1490   #undef access
1491 #endif
1492 #ifdef stat
1493   #undef stat
1494 #endif
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_FILE swig_types[0]
1510 #define SWIGTYPE_p_GSList swig_types[1]
1511 #define SWIGTYPE_p_amanda_log_handler_t swig_types[2]
1512 #define SWIGTYPE_p_char swig_types[3]
1513 #define SWIGTYPE_p_double swig_types[4]
1514 #define SWIGTYPE_p_dumpspec_t swig_types[5]
1515 #define SWIGTYPE_p_find_result_t swig_types[6]
1516 #define SWIGTYPE_p_float swig_types[7]
1517 #define SWIGTYPE_p_int swig_types[8]
1518 #define SWIGTYPE_p_unsigned_char swig_types[9]
1519 static swig_type_info *swig_types[11];
1520 static swig_module_info swig_module = {swig_types, 10, 0, 0, 0, 0};
1521 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
1522 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
1523
1524 /* -------- TYPES TABLE (END) -------- */
1525
1526 #define SWIG_init    boot_Amanda__Logfile
1527
1528 #define SWIG_name   "Amanda::Logfilec::boot_Amanda__Logfile"
1529 #define SWIG_prefix "Amanda::Logfilec::"
1530
1531 #define SWIGVERSION 0x020004 
1532 #define SWIG_VERSION SWIGVERSION
1533
1534
1535 #define SWIG_as_voidptr(a) (void *)((const void *)(a)) 
1536 #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) 
1537
1538
1539 #ifdef __cplusplus
1540 extern "C"
1541 #endif
1542 #ifndef PERL_OBJECT
1543 #ifndef MULTIPLICITY
1544 SWIGEXPORT void SWIG_init (CV* cv);
1545 #else
1546 SWIGEXPORT void SWIG_init (pTHXo_ CV* cv);
1547 #endif
1548 #else
1549 SWIGEXPORT void SWIG_init (CV *cv, CPerlObj *);
1550 #endif
1551
1552
1553 #include "amglue.h"
1554
1555
1556 #include "amglue.h"
1557
1558
1559 #include "amglue.h"
1560
1561
1562 #include "cmdline.h"
1563
1564
1565 typedef GSList amglue_dumpspec_list;
1566
1567
1568 #include <glib.h>
1569 #include "logfile.h"
1570 #include "find.h"
1571 #include "diskfile.h" /* for the gross hack, below */
1572
1573
1574 SWIGINTERNINLINE SV *
1575 SWIG_From_long  SWIG_PERL_DECL_ARGS_1(long value)
1576 {    
1577   SV *obj = sv_newmortal();
1578   sv_setiv(obj, (IV) value);
1579   return obj;
1580 }
1581
1582
1583 SWIGINTERNINLINE SV *
1584 SWIG_From_int  SWIG_PERL_DECL_ARGS_1(int value)
1585 {    
1586   return SWIG_From_long  SWIG_PERL_CALL_ARGS_1(value);
1587 }
1588
1589
1590 /* open_ and close_logfile are both simple wrappers around fopen/fclose. */
1591 typedef FILE loghandle;
1592
1593 static loghandle *open_logfile(char *filename) {
1594     return fopen(filename, "r");
1595 }
1596
1597
1598 SWIGINTERN swig_type_info*
1599 SWIG_pchar_descriptor(void)
1600 {
1601   static int init = 0;
1602   static swig_type_info* info = 0;
1603   if (!init) {
1604     info = SWIG_TypeQuery("_p_char");
1605     init = 1;
1606   }
1607   return info;
1608 }
1609
1610
1611 SWIGINTERN int
1612 SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc)
1613 {
1614   if (SvMAGICAL(obj)) {
1615      SV *tmp = sv_newmortal();
1616      SvSetSV(tmp, obj);
1617      obj = tmp;
1618   }
1619   if (SvPOK(obj)) {
1620     STRLEN len = 0;
1621     char *cstr = SvPV(obj, len); 
1622     size_t size = len + 1;
1623     if (cptr)  {
1624       if (alloc) {
1625         if (*alloc == SWIG_NEWOBJ) {
1626           *cptr = (char *)memcpy((char *)malloc((size)*sizeof(char)), cstr, sizeof(char)*(size));
1627         } else {
1628           *cptr = cstr;
1629           *alloc = SWIG_OLDOBJ;
1630         }
1631       }
1632     }
1633     if (psize) *psize = size;
1634     return SWIG_OK;
1635   } else {
1636     swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
1637     if (pchar_descriptor) {
1638       char* vptr = 0; 
1639       if (SWIG_ConvertPtr(obj, (void**)&vptr, pchar_descriptor, 0) == SWIG_OK) {
1640         if (cptr) *cptr = vptr;
1641         if (psize) *psize = vptr ? (strlen(vptr) + 1) : 0;
1642         if (alloc) *alloc = SWIG_OLDOBJ;
1643         return SWIG_OK;
1644       }
1645     }
1646   }
1647   return SWIG_TypeError;
1648 }
1649
1650
1651
1652
1653
1654 static void close_logfile(loghandle *logfile) {
1655     if (logfile) fclose(logfile);
1656 }
1657
1658
1659 typedef int LOGLINE_RETURN;
1660
1661
1662 static void log_add_(logtype_t typ, char *message)
1663 {
1664     log_add(typ, "%s", message);
1665 }
1666 static void log_add_full_(logtype_t typ, char *pname, char *message)
1667 {
1668     log_add_full(typ, pname, "%s", message);
1669 }
1670
1671
1672 #include <limits.h>
1673 #if !defined(SWIG_NO_LLONG_MAX)
1674 # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
1675 #   define LLONG_MAX __LONG_LONG_MAX__
1676 #   define LLONG_MIN (-LLONG_MAX - 1LL)
1677 #   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
1678 # endif
1679 #endif
1680
1681
1682 SWIGINTERN int
1683 SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val)
1684 {
1685   if (SvNIOK(obj)) {
1686     if (val) *val = SvNV(obj);
1687     return SWIG_OK;
1688   } else if (SvIOK(obj)) {
1689     if (val) *val = (double) SvIV(obj);
1690     return SWIG_AddCast(SWIG_OK);
1691   } else {
1692     const char *nptr = SvPV_nolen(obj);
1693     if (nptr) {
1694       char *endptr;
1695       double v;
1696       errno = 0;
1697       v = strtod(nptr, &endptr);
1698       if (errno == ERANGE) {
1699         errno = 0;
1700         return SWIG_OverflowError;
1701       } else {
1702         if (*endptr == '\0') {
1703           if (val) *val = v;
1704           return SWIG_Str2NumCast(SWIG_OK);
1705         }
1706       }
1707     }
1708   }
1709   return SWIG_TypeError;
1710 }
1711
1712
1713 #include <float.h>
1714
1715
1716 #include <math.h>
1717
1718
1719 SWIGINTERNINLINE int
1720 SWIG_CanCastAsInteger(double *d, double min, double max) {
1721   double x = *d;
1722   if ((min <= x && x <= max)) {
1723    double fx = floor(x);
1724    double cx = ceil(x);
1725    double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
1726    if ((errno == EDOM) || (errno == ERANGE)) {
1727      errno = 0;
1728    } else {
1729      double summ, reps, diff;
1730      if (rd < x) {
1731        diff = x - rd;
1732      } else if (rd > x) {
1733        diff = rd - x;
1734      } else {
1735        return 1;
1736      }
1737      summ = rd + x;
1738      reps = diff/summ;
1739      if (reps < 8*DBL_EPSILON) {
1740        *d = rd;
1741        return 1;
1742      }
1743    }
1744   }
1745   return 0;
1746 }
1747
1748
1749 SWIGINTERN int
1750 SWIG_AsVal_long SWIG_PERL_DECL_ARGS_2(SV *obj, long* val)
1751 {
1752   if (SvIOK(obj)) {
1753     if (val) *val = SvIV(obj);
1754     return SWIG_OK;
1755   } else {
1756     int dispatch = 0;
1757     const char *nptr = SvPV_nolen(obj);
1758     if (nptr) {
1759       char *endptr;
1760       long v;
1761       errno = 0;
1762       v = strtol(nptr, &endptr,0);
1763       if (errno == ERANGE) {
1764         errno = 0;
1765         return SWIG_OverflowError;
1766       } else {
1767         if (*endptr == '\0') {
1768           if (val) *val = v;
1769           return SWIG_Str2NumCast(SWIG_OK);
1770         }
1771       }
1772     }
1773     if (!dispatch) {
1774       double d;
1775       int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d));
1776       if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
1777         if (val) *val = (long)(d);
1778         return res;
1779       }
1780     }
1781   }
1782   return SWIG_TypeError;
1783 }
1784
1785
1786 SWIGINTERN int
1787 SWIG_AsVal_int SWIG_PERL_DECL_ARGS_2(SV * obj, int *val)
1788 {
1789   long v;
1790   int res = SWIG_AsVal_long SWIG_PERL_CALL_ARGS_2(obj, &v);
1791   if (SWIG_IsOK(res)) {
1792     if ((v < INT_MIN || v > INT_MAX)) {
1793       return SWIG_OverflowError;
1794     } else {
1795       if (val) *val = (int)(v);
1796     }
1797   }  
1798   return res;
1799 }
1800
1801 SWIGINTERN void delete_find_result_t(find_result_t *self){
1802             find_result_t *selfp = self;
1803             free_find_result(&selfp);
1804         }
1805
1806 SWIGINTERNINLINE SV *
1807 SWIG_FromCharPtrAndSize(const char* carray, size_t size)
1808 {
1809   SV *obj = sv_newmortal();
1810   if (carray) {
1811     sv_setpvn(obj, carray, size);
1812   } else {
1813     sv_setsv(obj, &PL_sv_undef);
1814   }
1815   return obj;
1816 }
1817
1818
1819 SWIGINTERNINLINE SV * 
1820 SWIG_FromCharPtr(const char *cptr)
1821
1822   return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
1823 }
1824
1825
1826 SWIGINTERNINLINE SV *
1827 SWIG_From_double  SWIG_PERL_DECL_ARGS_1(double value)
1828 {    
1829   SV *obj = sv_newmortal();
1830   sv_setnv(obj, value);
1831   return obj;
1832 }
1833
1834
1835 static find_result_t *search_logfile_wrap(char *label, char *datestamp,
1836                                    char *logfile, int add_missing_disks) {
1837     find_result_t *rv = NULL;
1838
1839     /* We use a static variable to collect any unrecognized disks */
1840     static disklist_t unrecognized_disks = { NULL, NULL };
1841
1842     search_logfile(&rv, label, datestamp, logfile, 
1843         add_missing_disks? &unrecognized_disks : NULL);
1844
1845     return rv;
1846 }
1847
1848
1849 static find_result_t *search_holding_disk_wrap(void) {
1850     find_result_t *rv = NULL;
1851     static disklist_t unrecognized_disks = { NULL, NULL };
1852     search_holding_disk(&rv, &unrecognized_disks);
1853     return rv;
1854 }
1855
1856 #ifdef __cplusplus
1857 extern "C" {
1858 #endif
1859
1860 #ifdef PERL_OBJECT
1861 #define MAGIC_CLASS _wrap_Amanda__Logfile_var::
1862 class _wrap_Amanda__Logfile_var : public CPerlObj {
1863 public:
1864 #else
1865 #define MAGIC_CLASS
1866 #endif
1867 SWIGCLASS_STATIC int swig_magic_readonly(pTHX_ SV *SWIGUNUSEDPARM(sv), MAGIC *SWIGUNUSEDPARM(mg)) {
1868     MAGIC_PPERL
1869     croak("Value is read-only.");
1870     return 0;
1871 }
1872 SWIGCLASS_STATIC int _wrap_amanda_log_trace_log_get(pTHX_ SV *sv, MAGIC *SWIGUNUSEDPARM(mg)) {
1873   MAGIC_PPERL
1874   sv_setiv(SvRV(sv),PTR2IV(amanda_log_trace_log));
1875   return 1;
1876 }
1877
1878
1879
1880
1881 #ifdef PERL_OBJECT
1882 };
1883 #endif
1884
1885 #ifdef __cplusplus
1886 }
1887 #endif
1888
1889 #ifdef __cplusplus
1890 extern "C" {
1891 #endif
1892 XS(_wrap_open_logfile) {
1893   {
1894     char *arg1 = (char *) 0 ;
1895     int res1 ;
1896     char *buf1 = 0 ;
1897     int alloc1 = 0 ;
1898     int argvi = 0;
1899     loghandle *result = 0 ;
1900     dXSARGS;
1901     
1902     if ((items < 1) || (items > 1)) {
1903       SWIG_croak("Usage: open_logfile(filename);");
1904     }
1905     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
1906     if (!SWIG_IsOK(res1)) {
1907       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "open_logfile" "', argument " "1"" of type '" "char *""'");
1908     }
1909     arg1 = (char *)(buf1);
1910     result = (loghandle *)open_logfile(arg1);
1911     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FILE, 0 | 0); argvi++ ;
1912     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
1913     XSRETURN(argvi);
1914   fail:
1915     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
1916     SWIG_croak_null();
1917   }
1918 }
1919
1920
1921 XS(_wrap_close_logfile) {
1922   {
1923     loghandle *arg1 = (loghandle *) 0 ;
1924     void *argp1 = 0 ;
1925     int res1 = 0 ;
1926     int argvi = 0;
1927     dXSARGS;
1928     
1929     if ((items < 1) || (items > 1)) {
1930       SWIG_croak("Usage: close_logfile(logfile);");
1931     }
1932     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_FILE, 0 |  0 );
1933     if (!SWIG_IsOK(res1)) {
1934       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "close_logfile" "', argument " "1"" of type '" "loghandle *""'"); 
1935     }
1936     arg1 = (loghandle *)(argp1);
1937     close_logfile(arg1);
1938     ST(argvi) = sv_newmortal();
1939     
1940     XSRETURN(argvi);
1941   fail:
1942     
1943     SWIG_croak_null();
1944   }
1945 }
1946
1947
1948 XS(_wrap_get_logline) {
1949   {
1950     FILE *arg1 = (FILE *) 0 ;
1951     void *argp1 = 0 ;
1952     int res1 = 0 ;
1953     int argvi = 0;
1954     LOGLINE_RETURN result;
1955     dXSARGS;
1956     
1957     if ((items < 1) || (items > 1)) {
1958       SWIG_croak("Usage: get_logline(logfile);");
1959     }
1960     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_FILE, 0 |  0 );
1961     if (!SWIG_IsOK(res1)) {
1962       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_logline" "', argument " "1"" of type '" "FILE *""'"); 
1963     }
1964     arg1 = (FILE *)(argp1);
1965     result = get_logline(arg1);
1966     {
1967       if (result != 0) {
1968         EXTEND(SP, 3);
1969         ST(argvi) = sv_2mortal(newSViv(curlog));
1970         argvi++;
1971         ST(argvi) = sv_2mortal(newSViv(curprog));
1972         argvi++;
1973         ST(argvi) = sv_2mortal(newSVpv(curstr, 0));
1974         argvi++;
1975       }
1976       /* otherwise (end of logfile) return an empty list */
1977     }
1978     
1979     XSRETURN(argvi);
1980   fail:
1981     
1982     SWIG_croak_null();
1983   }
1984 }
1985
1986
1987 XS(_wrap_log_add) {
1988   {
1989     logtype_t arg1 ;
1990     char *arg2 = (char *) 0 ;
1991     int res2 ;
1992     char *buf2 = 0 ;
1993     int alloc2 = 0 ;
1994     int argvi = 0;
1995     dXSARGS;
1996     
1997     if ((items < 2) || (items > 2)) {
1998       SWIG_croak("Usage: log_add(typ,message);");
1999     }
2000     {
2001       if (sizeof(signed int) == 1) {
2002         arg1 = amglue_SvI8(ST(0));
2003       } else if (sizeof(signed int) == 2) {
2004         arg1 = amglue_SvI16(ST(0));
2005       } else if (sizeof(signed int) == 4) {
2006         arg1 = amglue_SvI32(ST(0));
2007       } else if (sizeof(signed int) == 8) {
2008         arg1 = amglue_SvI64(ST(0));
2009       } else {
2010         g_critical("Unexpected signed int >64 bits?"); /* should be optimized out unless sizeof(signed int) > 8 */
2011       }
2012     }
2013     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
2014     if (!SWIG_IsOK(res2)) {
2015       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "log_add" "', argument " "2"" of type '" "char *""'");
2016     }
2017     arg2 = (char *)(buf2);
2018     log_add_(arg1,arg2);
2019     ST(argvi) = sv_newmortal();
2020     
2021     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2022     XSRETURN(argvi);
2023   fail:
2024     
2025     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2026     SWIG_croak_null();
2027   }
2028 }
2029
2030
2031 XS(_wrap_log_add_full) {
2032   {
2033     logtype_t arg1 ;
2034     char *arg2 = (char *) 0 ;
2035     char *arg3 = (char *) 0 ;
2036     int res2 ;
2037     char *buf2 = 0 ;
2038     int alloc2 = 0 ;
2039     int res3 ;
2040     char *buf3 = 0 ;
2041     int alloc3 = 0 ;
2042     int argvi = 0;
2043     dXSARGS;
2044     
2045     if ((items < 3) || (items > 3)) {
2046       SWIG_croak("Usage: log_add_full(typ,pname,message);");
2047     }
2048     {
2049       if (sizeof(signed int) == 1) {
2050         arg1 = amglue_SvI8(ST(0));
2051       } else if (sizeof(signed int) == 2) {
2052         arg1 = amglue_SvI16(ST(0));
2053       } else if (sizeof(signed int) == 4) {
2054         arg1 = amglue_SvI32(ST(0));
2055       } else if (sizeof(signed int) == 8) {
2056         arg1 = amglue_SvI64(ST(0));
2057       } else {
2058         g_critical("Unexpected signed int >64 bits?"); /* should be optimized out unless sizeof(signed int) > 8 */
2059       }
2060     }
2061     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
2062     if (!SWIG_IsOK(res2)) {
2063       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "log_add_full" "', argument " "2"" of type '" "char *""'");
2064     }
2065     arg2 = (char *)(buf2);
2066     res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
2067     if (!SWIG_IsOK(res3)) {
2068       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "log_add_full" "', argument " "3"" of type '" "char *""'");
2069     }
2070     arg3 = (char *)(buf3);
2071     log_add_full_(arg1,arg2,arg3);
2072     ST(argvi) = sv_newmortal();
2073     
2074     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2075     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2076     XSRETURN(argvi);
2077   fail:
2078     
2079     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2080     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2081     SWIG_croak_null();
2082   }
2083 }
2084
2085
2086 XS(_wrap_log_rename) {
2087   {
2088     char *arg1 = (char *) 0 ;
2089     int res1 ;
2090     char *buf1 = 0 ;
2091     int alloc1 = 0 ;
2092     int argvi = 0;
2093     dXSARGS;
2094     
2095     if ((items < 1) || (items > 1)) {
2096       SWIG_croak("Usage: log_rename(datestamp);");
2097     }
2098     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
2099     if (!SWIG_IsOK(res1)) {
2100       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "log_rename" "', argument " "1"" of type '" "char *""'");
2101     }
2102     arg1 = (char *)(buf1);
2103     log_rename(arg1);
2104     ST(argvi) = sv_newmortal();
2105     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2106     XSRETURN(argvi);
2107   fail:
2108     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2109     SWIG_croak_null();
2110   }
2111 }
2112
2113
2114 XS(_wrap_delete_find_result_t) {
2115   {
2116     find_result_t *arg1 = (find_result_t *) 0 ;
2117     void *argp1 = 0 ;
2118     int res1 = 0 ;
2119     int argvi = 0;
2120     dXSARGS;
2121     
2122     if ((items < 1) || (items > 1)) {
2123       SWIG_croak("Usage: delete_find_result_t(self);");
2124     }
2125     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, SWIG_POINTER_DISOWN |  0 );
2126     if (!SWIG_IsOK(res1)) {
2127       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_find_result_t" "', argument " "1"" of type '" "find_result_t *""'"); 
2128     }
2129     arg1 = (find_result_t *)(argp1);
2130     delete_find_result_t(arg1);
2131     ST(argvi) = sv_newmortal();
2132     
2133     XSRETURN(argvi);
2134   fail:
2135     
2136     SWIG_croak_null();
2137   }
2138 }
2139
2140
2141 XS(_wrap_find_result_t_timestamp_get) {
2142   {
2143     find_result_t *arg1 = (find_result_t *) 0 ;
2144     void *argp1 = 0 ;
2145     int res1 = 0 ;
2146     int argvi = 0;
2147     char *result = 0 ;
2148     dXSARGS;
2149     
2150     if ((items < 1) || (items > 1)) {
2151       SWIG_croak("Usage: find_result_t_timestamp_get(self);");
2152     }
2153     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2154     if (!SWIG_IsOK(res1)) {
2155       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_timestamp_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2156     }
2157     arg1 = (find_result_t *)(argp1);
2158     result = (char *) ((arg1)->timestamp);
2159     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2160     
2161     XSRETURN(argvi);
2162   fail:
2163     
2164     SWIG_croak_null();
2165   }
2166 }
2167
2168
2169 XS(_wrap_find_result_t_write_timestamp_get) {
2170   {
2171     find_result_t *arg1 = (find_result_t *) 0 ;
2172     void *argp1 = 0 ;
2173     int res1 = 0 ;
2174     int argvi = 0;
2175     char *result = 0 ;
2176     dXSARGS;
2177     
2178     if ((items < 1) || (items > 1)) {
2179       SWIG_croak("Usage: find_result_t_write_timestamp_get(self);");
2180     }
2181     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2182     if (!SWIG_IsOK(res1)) {
2183       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_write_timestamp_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2184     }
2185     arg1 = (find_result_t *)(argp1);
2186     result = (char *) ((arg1)->write_timestamp);
2187     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2188     
2189     XSRETURN(argvi);
2190   fail:
2191     
2192     SWIG_croak_null();
2193   }
2194 }
2195
2196
2197 XS(_wrap_find_result_t_hostname_get) {
2198   {
2199     find_result_t *arg1 = (find_result_t *) 0 ;
2200     void *argp1 = 0 ;
2201     int res1 = 0 ;
2202     int argvi = 0;
2203     char *result = 0 ;
2204     dXSARGS;
2205     
2206     if ((items < 1) || (items > 1)) {
2207       SWIG_croak("Usage: find_result_t_hostname_get(self);");
2208     }
2209     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2210     if (!SWIG_IsOK(res1)) {
2211       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_hostname_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2212     }
2213     arg1 = (find_result_t *)(argp1);
2214     result = (char *) ((arg1)->hostname);
2215     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2216     
2217     XSRETURN(argvi);
2218   fail:
2219     
2220     SWIG_croak_null();
2221   }
2222 }
2223
2224
2225 XS(_wrap_find_result_t_diskname_get) {
2226   {
2227     find_result_t *arg1 = (find_result_t *) 0 ;
2228     void *argp1 = 0 ;
2229     int res1 = 0 ;
2230     int argvi = 0;
2231     char *result = 0 ;
2232     dXSARGS;
2233     
2234     if ((items < 1) || (items > 1)) {
2235       SWIG_croak("Usage: find_result_t_diskname_get(self);");
2236     }
2237     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2238     if (!SWIG_IsOK(res1)) {
2239       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_diskname_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2240     }
2241     arg1 = (find_result_t *)(argp1);
2242     result = (char *) ((arg1)->diskname);
2243     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2244     
2245     XSRETURN(argvi);
2246   fail:
2247     
2248     SWIG_croak_null();
2249   }
2250 }
2251
2252
2253 XS(_wrap_find_result_t_level_get) {
2254   {
2255     find_result_t *arg1 = (find_result_t *) 0 ;
2256     void *argp1 = 0 ;
2257     int res1 = 0 ;
2258     int argvi = 0;
2259     int result;
2260     dXSARGS;
2261     
2262     if ((items < 1) || (items > 1)) {
2263       SWIG_croak("Usage: find_result_t_level_get(self);");
2264     }
2265     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2266     if (!SWIG_IsOK(res1)) {
2267       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_level_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2268     }
2269     arg1 = (find_result_t *)(argp1);
2270     result = (int) ((arg1)->level);
2271     {
2272       SV *for_stack;
2273       SP += argvi; PUTBACK;
2274       for_stack = sv_2mortal(amglue_newSVi64(result));
2275       SPAGAIN; SP -= argvi;
2276       ST(argvi) = for_stack;
2277       argvi++;
2278     }
2279     
2280     XSRETURN(argvi);
2281   fail:
2282     
2283     SWIG_croak_null();
2284   }
2285 }
2286
2287
2288 XS(_wrap_find_result_t_label_get) {
2289   {
2290     find_result_t *arg1 = (find_result_t *) 0 ;
2291     void *argp1 = 0 ;
2292     int res1 = 0 ;
2293     int argvi = 0;
2294     char *result = 0 ;
2295     dXSARGS;
2296     
2297     if ((items < 1) || (items > 1)) {
2298       SWIG_croak("Usage: find_result_t_label_get(self);");
2299     }
2300     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2301     if (!SWIG_IsOK(res1)) {
2302       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_label_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2303     }
2304     arg1 = (find_result_t *)(argp1);
2305     result = (char *) ((arg1)->label);
2306     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2307     
2308     XSRETURN(argvi);
2309   fail:
2310     
2311     SWIG_croak_null();
2312   }
2313 }
2314
2315
2316 XS(_wrap_find_result_t_filenum_get) {
2317   {
2318     find_result_t *arg1 = (find_result_t *) 0 ;
2319     void *argp1 = 0 ;
2320     int res1 = 0 ;
2321     int argvi = 0;
2322     off_t result;
2323     dXSARGS;
2324     
2325     if ((items < 1) || (items > 1)) {
2326       SWIG_croak("Usage: find_result_t_filenum_get(self);");
2327     }
2328     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2329     if (!SWIG_IsOK(res1)) {
2330       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_filenum_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2331     }
2332     arg1 = (find_result_t *)(argp1);
2333     result =  ((arg1)->filenum);
2334     {
2335       SV *for_stack;
2336       SP += argvi; PUTBACK;
2337       for_stack = sv_2mortal(amglue_newSVu64(result));
2338       SPAGAIN; SP -= argvi;
2339       ST(argvi) = for_stack;
2340       argvi++;
2341     }
2342     
2343     XSRETURN(argvi);
2344   fail:
2345     
2346     SWIG_croak_null();
2347   }
2348 }
2349
2350
2351 XS(_wrap_find_result_t_status_get) {
2352   {
2353     find_result_t *arg1 = (find_result_t *) 0 ;
2354     void *argp1 = 0 ;
2355     int res1 = 0 ;
2356     int argvi = 0;
2357     char *result = 0 ;
2358     dXSARGS;
2359     
2360     if ((items < 1) || (items > 1)) {
2361       SWIG_croak("Usage: find_result_t_status_get(self);");
2362     }
2363     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2364     if (!SWIG_IsOK(res1)) {
2365       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_status_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2366     }
2367     arg1 = (find_result_t *)(argp1);
2368     result = (char *) ((arg1)->status);
2369     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2370     
2371     XSRETURN(argvi);
2372   fail:
2373     
2374     SWIG_croak_null();
2375   }
2376 }
2377
2378
2379 XS(_wrap_find_result_t_dump_status_get) {
2380   {
2381     find_result_t *arg1 = (find_result_t *) 0 ;
2382     void *argp1 = 0 ;
2383     int res1 = 0 ;
2384     int argvi = 0;
2385     char *result = 0 ;
2386     dXSARGS;
2387     
2388     if ((items < 1) || (items > 1)) {
2389       SWIG_croak("Usage: find_result_t_dump_status_get(self);");
2390     }
2391     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2392     if (!SWIG_IsOK(res1)) {
2393       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_dump_status_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2394     }
2395     arg1 = (find_result_t *)(argp1);
2396     result = (char *) ((arg1)->dump_status);
2397     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2398     
2399     XSRETURN(argvi);
2400   fail:
2401     
2402     SWIG_croak_null();
2403   }
2404 }
2405
2406
2407 XS(_wrap_find_result_t_message_get) {
2408   {
2409     find_result_t *arg1 = (find_result_t *) 0 ;
2410     void *argp1 = 0 ;
2411     int res1 = 0 ;
2412     int argvi = 0;
2413     char *result = 0 ;
2414     dXSARGS;
2415     
2416     if ((items < 1) || (items > 1)) {
2417       SWIG_croak("Usage: find_result_t_message_get(self);");
2418     }
2419     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2420     if (!SWIG_IsOK(res1)) {
2421       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_message_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2422     }
2423     arg1 = (find_result_t *)(argp1);
2424     result = (char *) ((arg1)->message);
2425     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2426     
2427     XSRETURN(argvi);
2428   fail:
2429     
2430     SWIG_croak_null();
2431   }
2432 }
2433
2434
2435 XS(_wrap_find_result_t_partnum_get) {
2436   {
2437     find_result_t *arg1 = (find_result_t *) 0 ;
2438     void *argp1 = 0 ;
2439     int res1 = 0 ;
2440     int argvi = 0;
2441     int result;
2442     dXSARGS;
2443     
2444     if ((items < 1) || (items > 1)) {
2445       SWIG_croak("Usage: find_result_t_partnum_get(self);");
2446     }
2447     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2448     if (!SWIG_IsOK(res1)) {
2449       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_partnum_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2450     }
2451     arg1 = (find_result_t *)(argp1);
2452     result = (int) ((arg1)->partnum);
2453     {
2454       SV *for_stack;
2455       SP += argvi; PUTBACK;
2456       for_stack = sv_2mortal(amglue_newSVi64(result));
2457       SPAGAIN; SP -= argvi;
2458       ST(argvi) = for_stack;
2459       argvi++;
2460     }
2461     
2462     XSRETURN(argvi);
2463   fail:
2464     
2465     SWIG_croak_null();
2466   }
2467 }
2468
2469
2470 XS(_wrap_find_result_t_totalparts_get) {
2471   {
2472     find_result_t *arg1 = (find_result_t *) 0 ;
2473     void *argp1 = 0 ;
2474     int res1 = 0 ;
2475     int argvi = 0;
2476     int result;
2477     dXSARGS;
2478     
2479     if ((items < 1) || (items > 1)) {
2480       SWIG_croak("Usage: find_result_t_totalparts_get(self);");
2481     }
2482     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2483     if (!SWIG_IsOK(res1)) {
2484       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_totalparts_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2485     }
2486     arg1 = (find_result_t *)(argp1);
2487     result = (int) ((arg1)->totalparts);
2488     {
2489       SV *for_stack;
2490       SP += argvi; PUTBACK;
2491       for_stack = sv_2mortal(amglue_newSVi64(result));
2492       SPAGAIN; SP -= argvi;
2493       ST(argvi) = for_stack;
2494       argvi++;
2495     }
2496     
2497     XSRETURN(argvi);
2498   fail:
2499     
2500     SWIG_croak_null();
2501   }
2502 }
2503
2504
2505 XS(_wrap_find_result_t_sec_get) {
2506   {
2507     find_result_t *arg1 = (find_result_t *) 0 ;
2508     void *argp1 = 0 ;
2509     int res1 = 0 ;
2510     int argvi = 0;
2511     double result;
2512     dXSARGS;
2513     
2514     if ((items < 1) || (items > 1)) {
2515       SWIG_croak("Usage: find_result_t_sec_get(self);");
2516     }
2517     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2518     if (!SWIG_IsOK(res1)) {
2519       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_sec_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2520     }
2521     arg1 = (find_result_t *)(argp1);
2522     result = (double) ((arg1)->sec);
2523     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
2524     
2525     XSRETURN(argvi);
2526   fail:
2527     
2528     SWIG_croak_null();
2529   }
2530 }
2531
2532
2533 XS(_wrap_find_result_t_bytes_get) {
2534   {
2535     find_result_t *arg1 = (find_result_t *) 0 ;
2536     void *argp1 = 0 ;
2537     int res1 = 0 ;
2538     int argvi = 0;
2539     off_t result;
2540     dXSARGS;
2541     
2542     if ((items < 1) || (items > 1)) {
2543       SWIG_croak("Usage: find_result_t_bytes_get(self);");
2544     }
2545     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2546     if (!SWIG_IsOK(res1)) {
2547       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_bytes_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2548     }
2549     arg1 = (find_result_t *)(argp1);
2550     result =  ((arg1)->bytes);
2551     {
2552       SV *for_stack;
2553       SP += argvi; PUTBACK;
2554       for_stack = sv_2mortal(amglue_newSVu64(result));
2555       SPAGAIN; SP -= argvi;
2556       ST(argvi) = for_stack;
2557       argvi++;
2558     }
2559     
2560     XSRETURN(argvi);
2561   fail:
2562     
2563     SWIG_croak_null();
2564   }
2565 }
2566
2567
2568 XS(_wrap_find_result_t_kb_get) {
2569   {
2570     find_result_t *arg1 = (find_result_t *) 0 ;
2571     void *argp1 = 0 ;
2572     int res1 = 0 ;
2573     int argvi = 0;
2574     off_t result;
2575     dXSARGS;
2576     
2577     if ((items < 1) || (items > 1)) {
2578       SWIG_croak("Usage: find_result_t_kb_get(self);");
2579     }
2580     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2581     if (!SWIG_IsOK(res1)) {
2582       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_kb_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2583     }
2584     arg1 = (find_result_t *)(argp1);
2585     result =  ((arg1)->kb);
2586     {
2587       SV *for_stack;
2588       SP += argvi; PUTBACK;
2589       for_stack = sv_2mortal(amglue_newSVu64(result));
2590       SPAGAIN; SP -= argvi;
2591       ST(argvi) = for_stack;
2592       argvi++;
2593     }
2594     
2595     XSRETURN(argvi);
2596   fail:
2597     
2598     SWIG_croak_null();
2599   }
2600 }
2601
2602
2603 XS(_wrap_find_result_t_orig_kb_get) {
2604   {
2605     find_result_t *arg1 = (find_result_t *) 0 ;
2606     void *argp1 = 0 ;
2607     int res1 = 0 ;
2608     int argvi = 0;
2609     off_t result;
2610     dXSARGS;
2611     
2612     if ((items < 1) || (items > 1)) {
2613       SWIG_croak("Usage: find_result_t_orig_kb_get(self);");
2614     }
2615     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_find_result_t, 0 |  0 );
2616     if (!SWIG_IsOK(res1)) {
2617       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "find_result_t_orig_kb_get" "', argument " "1"" of type '" "find_result_t *""'"); 
2618     }
2619     arg1 = (find_result_t *)(argp1);
2620     result =  ((arg1)->orig_kb);
2621     {
2622       SV *for_stack;
2623       SP += argvi; PUTBACK;
2624       for_stack = sv_2mortal(amglue_newSVu64(result));
2625       SPAGAIN; SP -= argvi;
2626       ST(argvi) = for_stack;
2627       argvi++;
2628     }
2629     
2630     XSRETURN(argvi);
2631   fail:
2632     
2633     SWIG_croak_null();
2634   }
2635 }
2636
2637
2638 XS(_wrap_new_find_result_t) {
2639   {
2640     int argvi = 0;
2641     find_result_t *result = 0 ;
2642     dXSARGS;
2643     
2644     if ((items < 0) || (items > 0)) {
2645       SWIG_croak("Usage: new_find_result_t();");
2646     }
2647     result = (find_result_t *)calloc(1, sizeof(find_result_t));
2648     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_find_result_t, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
2649     XSRETURN(argvi);
2650   fail:
2651     SWIG_croak_null();
2652   }
2653 }
2654
2655
2656 XS(_wrap_find_log) {
2657   {
2658     int argvi = 0;
2659     char **result = 0 ;
2660     dXSARGS;
2661     
2662     if ((items < 0) || (items > 0)) {
2663       SWIG_croak("Usage: find_log();");
2664     }
2665     result = (char **)find_log();
2666     {
2667       char **iter;
2668       int len, i;
2669       
2670       /* measure the length of the array and make sure perl has enough room */
2671       for (len=0, iter=result; *iter; iter++) len++;
2672       EXTEND(SP, len);
2673       
2674       /* now copy it to the perl stack */
2675       for (i=0, iter=result; *iter; iter++, i++) {
2676         ST(argvi) = sv_2mortal(newSVpv(*iter, 0));
2677         argvi++;
2678       }
2679     }
2680     XSRETURN(argvi);
2681   fail:
2682     SWIG_croak_null();
2683   }
2684 }
2685
2686
2687 XS(_wrap_search_logfile) {
2688   {
2689     char *arg1 = (char *) 0 ;
2690     char *arg2 = (char *) 0 ;
2691     char *arg3 = (char *) 0 ;
2692     int arg4 ;
2693     int res1 ;
2694     char *buf1 = 0 ;
2695     int alloc1 = 0 ;
2696     int res2 ;
2697     char *buf2 = 0 ;
2698     int alloc2 = 0 ;
2699     int res3 ;
2700     char *buf3 = 0 ;
2701     int alloc3 = 0 ;
2702     int argvi = 0;
2703     find_result_t *result = 0 ;
2704     dXSARGS;
2705     
2706     if ((items < 4) || (items > 4)) {
2707       SWIG_croak("Usage: search_logfile(label,datestamp,logfile,add_missing_disks);");
2708     }
2709     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
2710     if (!SWIG_IsOK(res1)) {
2711       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "search_logfile" "', argument " "1"" of type '" "char *""'");
2712     }
2713     arg1 = (char *)(buf1);
2714     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
2715     if (!SWIG_IsOK(res2)) {
2716       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "search_logfile" "', argument " "2"" of type '" "char *""'");
2717     }
2718     arg2 = (char *)(buf2);
2719     res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
2720     if (!SWIG_IsOK(res3)) {
2721       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "search_logfile" "', argument " "3"" of type '" "char *""'");
2722     }
2723     arg3 = (char *)(buf3);
2724     {
2725       if (sizeof(signed int) == 1) {
2726         arg4 = amglue_SvI8(ST(3));
2727       } else if (sizeof(signed int) == 2) {
2728         arg4 = amglue_SvI16(ST(3));
2729       } else if (sizeof(signed int) == 4) {
2730         arg4 = amglue_SvI32(ST(3));
2731       } else if (sizeof(signed int) == 8) {
2732         arg4 = amglue_SvI64(ST(3));
2733       } else {
2734         g_critical("Unexpected signed int >64 bits?"); /* should be optimized out unless sizeof(signed int) > 8 */
2735       }
2736     }
2737     result = (find_result_t *)search_logfile_wrap(arg1,arg2,arg3,arg4);
2738     {
2739       find_result_t *iter;
2740       int len;
2741       
2742       /* measure the list and make room on the perl stack */
2743       for (len=0, iter=result; iter; iter=iter->next) len++;
2744       EXTEND(SP, len);
2745       
2746       iter = result;
2747       while (iter) {
2748         find_result_t *next;
2749         /* Let SWIG take ownership of the object */
2750         ST(argvi) = SWIG_NewPointerObj(iter, SWIGTYPE_p_find_result_t, SWIG_OWNER | SWIG_SHADOW);
2751         argvi++;
2752         
2753         /* null out the 'next' field */
2754         next = iter->next;
2755         iter->next = NULL;
2756         iter = next;
2757       }
2758     }
2759     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2760     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2761     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2762     
2763     XSRETURN(argvi);
2764   fail:
2765     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
2766     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2767     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2768     
2769     SWIG_croak_null();
2770   }
2771 }
2772
2773
2774 XS(_wrap_search_holding_disk) {
2775   {
2776     int argvi = 0;
2777     find_result_t *result = 0 ;
2778     dXSARGS;
2779     
2780     if ((items < 0) || (items > 0)) {
2781       SWIG_croak("Usage: search_holding_disk();");
2782     }
2783     result = (find_result_t *)search_holding_disk_wrap();
2784     {
2785       find_result_t *iter;
2786       int len;
2787       
2788       /* measure the list and make room on the perl stack */
2789       for (len=0, iter=result; iter; iter=iter->next) len++;
2790       EXTEND(SP, len);
2791       
2792       iter = result;
2793       while (iter) {
2794         find_result_t *next;
2795         /* Let SWIG take ownership of the object */
2796         ST(argvi) = SWIG_NewPointerObj(iter, SWIGTYPE_p_find_result_t, SWIG_OWNER | SWIG_SHADOW);
2797         argvi++;
2798         
2799         /* null out the 'next' field */
2800         next = iter->next;
2801         iter->next = NULL;
2802         iter = next;
2803       }
2804     }
2805     XSRETURN(argvi);
2806   fail:
2807     SWIG_croak_null();
2808   }
2809 }
2810
2811
2812 XS(_wrap_dumps_match) {
2813   {
2814     find_result_t *arg1 = (find_result_t *) 0 ;
2815     char *arg2 = (char *) 0 ;
2816     char *arg3 = (char *) 0 ;
2817     char *arg4 = (char *) 0 ;
2818     char *arg5 = (char *) 0 ;
2819     int arg6 ;
2820     int res2 ;
2821     char *buf2 = 0 ;
2822     int alloc2 = 0 ;
2823     int res3 ;
2824     char *buf3 = 0 ;
2825     int alloc3 = 0 ;
2826     int res4 ;
2827     char *buf4 = 0 ;
2828     int alloc4 = 0 ;
2829     int res5 ;
2830     char *buf5 = 0 ;
2831     int alloc5 = 0 ;
2832     int argvi = 0;
2833     find_result_t *result = 0 ;
2834     dXSARGS;
2835     
2836     if ((items < 6) || (items > 6)) {
2837       SWIG_croak("Usage: dumps_match(output_find,hostname,diskname,datestamp,level,ok);");
2838     }
2839     {
2840       AV *av;
2841       I32 len, i;
2842       find_result_t *head = NULL, *tail = NULL;
2843       
2844       if (!SvROK(ST(0)) || SvTYPE(SvRV(ST(0))) != SVt_PVAV) {
2845         SWIG_exception(SWIG_TypeError, "expected an arrayref of find_result_t's");
2846       }
2847       
2848       av = (AV *)SvRV(ST(0));
2849       len = av_len(av) + 1;
2850       
2851       for (i = 0; i < len; i++) {
2852         SV **val = av_fetch(av, i, 0);
2853         find_result_t *r;
2854         
2855         if (!val || SWIG_ConvertPtr(*val, (void **)&r, SWIGTYPE_p_find_result_t, 0) == -1) {
2856           SWIG_exception(SWIG_TypeError, "array member is not a find_result_t");
2857         }
2858         
2859         if (!head) {
2860           head = tail = r;
2861         } else {
2862           tail->next = r;
2863           tail = r;
2864         }
2865         
2866         tail->next = NULL;
2867       }
2868       
2869       /* point to the head of that list */
2870       arg1 = head;
2871     }
2872     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
2873     if (!SWIG_IsOK(res2)) {
2874       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "dumps_match" "', argument " "2"" of type '" "char *""'");
2875     }
2876     arg2 = (char *)(buf2);
2877     res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
2878     if (!SWIG_IsOK(res3)) {
2879       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "dumps_match" "', argument " "3"" of type '" "char *""'");
2880     }
2881     arg3 = (char *)(buf3);
2882     res4 = SWIG_AsCharPtrAndSize(ST(3), &buf4, NULL, &alloc4);
2883     if (!SWIG_IsOK(res4)) {
2884       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "dumps_match" "', argument " "4"" of type '" "char *""'");
2885     }
2886     arg4 = (char *)(buf4);
2887     res5 = SWIG_AsCharPtrAndSize(ST(4), &buf5, NULL, &alloc5);
2888     if (!SWIG_IsOK(res5)) {
2889       SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "dumps_match" "', argument " "5"" of type '" "char *""'");
2890     }
2891     arg5 = (char *)(buf5);
2892     {
2893       if (sizeof(signed int) == 1) {
2894         arg6 = amglue_SvI8(ST(5));
2895       } else if (sizeof(signed int) == 2) {
2896         arg6 = amglue_SvI16(ST(5));
2897       } else if (sizeof(signed int) == 4) {
2898         arg6 = amglue_SvI32(ST(5));
2899       } else if (sizeof(signed int) == 8) {
2900         arg6 = amglue_SvI64(ST(5));
2901       } else {
2902         g_critical("Unexpected signed int >64 bits?"); /* should be optimized out unless sizeof(signed int) > 8 */
2903       }
2904     }
2905     result = (find_result_t *)dumps_match(arg1,arg2,arg3,arg4,arg5,arg6);
2906     {
2907       find_result_t *iter;
2908       int len;
2909       
2910       /* measure the list and make room on the perl stack */
2911       for (len=0, iter=result; iter; iter=iter->next) len++;
2912       EXTEND(SP, len);
2913       
2914       iter = result;
2915       while (iter) {
2916         find_result_t *next;
2917         /* Let SWIG take ownership of the object */
2918         ST(argvi) = SWIG_NewPointerObj(iter, SWIGTYPE_p_find_result_t, SWIG_OWNER | SWIG_SHADOW);
2919         argvi++;
2920         
2921         /* null out the 'next' field */
2922         next = iter->next;
2923         iter->next = NULL;
2924         iter = next;
2925       }
2926     }
2927     {
2928       find_result_t *iter = arg1, *next;
2929       
2930       /* undo all the links we added earlier */
2931       while (iter) {
2932         next = iter->next;
2933         iter->next = NULL;
2934         iter = next;
2935       }
2936     }
2937     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2938     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2939     if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
2940     if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
2941     
2942     XSRETURN(argvi);
2943   fail:
2944     {
2945       find_result_t *iter = arg1, *next;
2946       
2947       /* undo all the links we added earlier */
2948       while (iter) {
2949         next = iter->next;
2950         iter->next = NULL;
2951         iter = next;
2952       }
2953     }
2954     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2955     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
2956     if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
2957     if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
2958     
2959     SWIG_croak_null();
2960   }
2961 }
2962
2963
2964 XS(_wrap_dumps_match_dumpspecs) {
2965   {
2966     find_result_t *arg1 = (find_result_t *) 0 ;
2967     amglue_dumpspec_list *arg2 = (amglue_dumpspec_list *) 0 ;
2968     gboolean arg3 ;
2969     int argvi = 0;
2970     find_result_t *result = 0 ;
2971     dXSARGS;
2972     
2973     if ((items < 3) || (items > 3)) {
2974       SWIG_croak("Usage: dumps_match_dumpspecs(output_find,dumpspecs,ok);");
2975     }
2976     {
2977       AV *av;
2978       I32 len, i;
2979       find_result_t *head = NULL, *tail = NULL;
2980       
2981       if (!SvROK(ST(0)) || SvTYPE(SvRV(ST(0))) != SVt_PVAV) {
2982         SWIG_exception(SWIG_TypeError, "expected an arrayref of find_result_t's");
2983       }
2984       
2985       av = (AV *)SvRV(ST(0));
2986       len = av_len(av) + 1;
2987       
2988       for (i = 0; i < len; i++) {
2989         SV **val = av_fetch(av, i, 0);
2990         find_result_t *r;
2991         
2992         if (!val || SWIG_ConvertPtr(*val, (void **)&r, SWIGTYPE_p_find_result_t, 0) == -1) {
2993           SWIG_exception(SWIG_TypeError, "array member is not a find_result_t");
2994         }
2995         
2996         if (!head) {
2997           head = tail = r;
2998         } else {
2999           tail->next = r;
3000           tail = r;
3001         }
3002         
3003         tail->next = NULL;
3004       }
3005       
3006       /* point to the head of that list */
3007       arg1 = head;
3008     }
3009     {
3010       AV *av;
3011       int len;
3012       int i;
3013       
3014       if (!SvROK(ST(1)) || SvTYPE(SvRV(ST(1))) != SVt_PVAV) {
3015         SWIG_exception_fail(SWIG_TypeError, "Expected an arrayref of dumpspecs");
3016       }
3017       av = (AV *)SvRV(ST(1));
3018       
3019       len = av_len(av)+1;
3020       arg2 = NULL;
3021       for (i = 0; i < len; i++) {
3022         dumpspec_t *ds = NULL;
3023         SV **elt = av_fetch(av, i, 0);
3024         if (elt)
3025         SWIG_ConvertPtr(*elt, (void **)&ds, SWIGTYPE_p_dumpspec_t, 0);
3026         if (!ds)
3027         SWIG_exception_fail(SWIG_TypeError, "Expected an arrayref of dumpspecs");
3028         arg2 = g_slist_append(arg2, ds);
3029       }
3030     }
3031     {
3032       arg3 = SvTRUE(ST(2));
3033     }
3034     result = (find_result_t *)dumps_match_dumpspecs(arg1,arg2,arg3);
3035     {
3036       find_result_t *iter;
3037       int len;
3038       
3039       /* measure the list and make room on the perl stack */
3040       for (len=0, iter=result; iter; iter=iter->next) len++;
3041       EXTEND(SP, len);
3042       
3043       iter = result;
3044       while (iter) {
3045         find_result_t *next;
3046         /* Let SWIG take ownership of the object */
3047         ST(argvi) = SWIG_NewPointerObj(iter, SWIGTYPE_p_find_result_t, SWIG_OWNER | SWIG_SHADOW);
3048         argvi++;
3049         
3050         /* null out the 'next' field */
3051         next = iter->next;
3052         iter->next = NULL;
3053         iter = next;
3054       }
3055     }
3056     {
3057       find_result_t *iter = arg1, *next;
3058       
3059       /* undo all the links we added earlier */
3060       while (iter) {
3061         next = iter->next;
3062         iter->next = NULL;
3063         iter = next;
3064       }
3065     }
3066     {
3067       /* Free the GSList, but not its contents (which are still owned by SWIG) */
3068       g_slist_free(arg2);
3069     }
3070     
3071     XSRETURN(argvi);
3072   fail:
3073     {
3074       find_result_t *iter = arg1, *next;
3075       
3076       /* undo all the links we added earlier */
3077       while (iter) {
3078         next = iter->next;
3079         iter->next = NULL;
3080         iter = next;
3081       }
3082     }
3083     {
3084       /* Free the GSList, but not its contents (which are still owned by SWIG) */
3085       g_slist_free(arg2);
3086     }
3087     
3088     SWIG_croak_null();
3089   }
3090 }
3091
3092
3093
3094 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
3095
3096 static swig_type_info _swigt__p_FILE = {"_p_FILE", "FILE *|loghandle *", 0, 0, (void*)0, 0};
3097 static swig_type_info _swigt__p_GSList = {"_p_GSList", "amglue_dumpspec_list *|GSList *", 0, 0, (void*)0, 0};
3098 static swig_type_info _swigt__p_amanda_log_handler_t = {"_p_amanda_log_handler_t", "amanda_log_handler_t *", 0, 0, (void*)0, 0};
3099 static swig_type_info _swigt__p_char = {"_p_char", "gchar *|char *", 0, 0, (void*)0, 0};
3100 static swig_type_info _swigt__p_double = {"_p_double", "double *|gdouble *", 0, 0, (void*)0, 0};
3101 static swig_type_info _swigt__p_dumpspec_t = {"_p_dumpspec_t", "struct dumpspec_t *|dumpspec_t *", 0, 0, (void*)"Amanda::Cmdline::dumpspec_t", 0};
3102 static swig_type_info _swigt__p_find_result_t = {"_p_find_result_t", "find_result_t *", 0, 0, (void*)"Amanda::Logfile::find_result_t", 0};
3103 static swig_type_info _swigt__p_float = {"_p_float", "float *|gfloat *", 0, 0, (void*)0, 0};
3104 static swig_type_info _swigt__p_int = {"_p_int", "int *|logtype_t *|program_t *|gboolean *|cmdline_parse_dumpspecs_flags *", 0, 0, (void*)0, 0};
3105 static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "guchar *|unsigned char *", 0, 0, (void*)0, 0};
3106
3107 static swig_type_info *swig_type_initial[] = {
3108   &_swigt__p_FILE,
3109   &_swigt__p_GSList,
3110   &_swigt__p_amanda_log_handler_t,
3111   &_swigt__p_char,
3112   &_swigt__p_double,
3113   &_swigt__p_dumpspec_t,
3114   &_swigt__p_find_result_t,
3115   &_swigt__p_float,
3116   &_swigt__p_int,
3117   &_swigt__p_unsigned_char,
3118 };
3119
3120 static swig_cast_info _swigc__p_FILE[] = {  {&_swigt__p_FILE, 0, 0, 0},{0, 0, 0, 0}};
3121 static swig_cast_info _swigc__p_GSList[] = {  {&_swigt__p_GSList, 0, 0, 0},{0, 0, 0, 0}};
3122 static swig_cast_info _swigc__p_amanda_log_handler_t[] = {  {&_swigt__p_amanda_log_handler_t, 0, 0, 0},{0, 0, 0, 0}};
3123 static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
3124 static swig_cast_info _swigc__p_double[] = {  {&_swigt__p_double, 0, 0, 0},{0, 0, 0, 0}};
3125 static swig_cast_info _swigc__p_dumpspec_t[] = {  {&_swigt__p_dumpspec_t, 0, 0, 0},{0, 0, 0, 0}};
3126 static swig_cast_info _swigc__p_find_result_t[] = {  {&_swigt__p_find_result_t, 0, 0, 0},{0, 0, 0, 0}};
3127 static swig_cast_info _swigc__p_float[] = {  {&_swigt__p_float, 0, 0, 0},{0, 0, 0, 0}};
3128 static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
3129 static swig_cast_info _swigc__p_unsigned_char[] = {  {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
3130
3131 static swig_cast_info *swig_cast_initial[] = {
3132   _swigc__p_FILE,
3133   _swigc__p_GSList,
3134   _swigc__p_amanda_log_handler_t,
3135   _swigc__p_char,
3136   _swigc__p_double,
3137   _swigc__p_dumpspec_t,
3138   _swigc__p_find_result_t,
3139   _swigc__p_float,
3140   _swigc__p_int,
3141   _swigc__p_unsigned_char,
3142 };
3143
3144
3145 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
3146
3147 static swig_constant_info swig_constants[] = {
3148 {0,0,0,0,0,0}
3149 };
3150 #ifdef __cplusplus
3151 }
3152 #endif
3153 static swig_variable_info swig_variables[] = {
3154     { "Amanda::Logfilec::amanda_log_trace_log", MAGIC_CLASS swig_magic_readonly, MAGIC_CLASS _wrap_amanda_log_trace_log_get,&SWIGTYPE_p_amanda_log_handler_t },
3155 {0,0,0,0}
3156 };
3157 static swig_command_info swig_commands[] = {
3158 {"Amanda::Logfilec::open_logfile", _wrap_open_logfile},
3159 {"Amanda::Logfilec::close_logfile", _wrap_close_logfile},
3160 {"Amanda::Logfilec::get_logline", _wrap_get_logline},
3161 {"Amanda::Logfilec::log_add", _wrap_log_add},
3162 {"Amanda::Logfilec::log_add_full", _wrap_log_add_full},
3163 {"Amanda::Logfilec::log_rename", _wrap_log_rename},
3164 {"Amanda::Logfilec::delete_find_result_t", _wrap_delete_find_result_t},
3165 {"Amanda::Logfilec::find_result_t_timestamp_get", _wrap_find_result_t_timestamp_get},
3166 {"Amanda::Logfilec::find_result_t_write_timestamp_get", _wrap_find_result_t_write_timestamp_get},
3167 {"Amanda::Logfilec::find_result_t_hostname_get", _wrap_find_result_t_hostname_get},
3168 {"Amanda::Logfilec::find_result_t_diskname_get", _wrap_find_result_t_diskname_get},
3169 {"Amanda::Logfilec::find_result_t_level_get", _wrap_find_result_t_level_get},
3170 {"Amanda::Logfilec::find_result_t_label_get", _wrap_find_result_t_label_get},
3171 {"Amanda::Logfilec::find_result_t_filenum_get", _wrap_find_result_t_filenum_get},
3172 {"Amanda::Logfilec::find_result_t_status_get", _wrap_find_result_t_status_get},
3173 {"Amanda::Logfilec::find_result_t_dump_status_get", _wrap_find_result_t_dump_status_get},
3174 {"Amanda::Logfilec::find_result_t_message_get", _wrap_find_result_t_message_get},
3175 {"Amanda::Logfilec::find_result_t_partnum_get", _wrap_find_result_t_partnum_get},
3176 {"Amanda::Logfilec::find_result_t_totalparts_get", _wrap_find_result_t_totalparts_get},
3177 {"Amanda::Logfilec::find_result_t_sec_get", _wrap_find_result_t_sec_get},
3178 {"Amanda::Logfilec::find_result_t_bytes_get", _wrap_find_result_t_bytes_get},
3179 {"Amanda::Logfilec::find_result_t_kb_get", _wrap_find_result_t_kb_get},
3180 {"Amanda::Logfilec::find_result_t_orig_kb_get", _wrap_find_result_t_orig_kb_get},
3181 {"Amanda::Logfilec::new_find_result_t", _wrap_new_find_result_t},
3182 {"Amanda::Logfilec::find_log", _wrap_find_log},
3183 {"Amanda::Logfilec::search_logfile", _wrap_search_logfile},
3184 {"Amanda::Logfilec::search_holding_disk", _wrap_search_holding_disk},
3185 {"Amanda::Logfilec::dumps_match", _wrap_dumps_match},
3186 {"Amanda::Logfilec::dumps_match_dumpspecs", _wrap_dumps_match_dumpspecs},
3187 {0,0}
3188 };
3189 /* -----------------------------------------------------------------------------
3190  * Type initialization:
3191  * This problem is tough by the requirement that no dynamic 
3192  * memory is used. Also, since swig_type_info structures store pointers to 
3193  * swig_cast_info structures and swig_cast_info structures store pointers back
3194  * to swig_type_info structures, we need some lookup code at initialization. 
3195  * The idea is that swig generates all the structures that are needed. 
3196  * The runtime then collects these partially filled structures. 
3197  * The SWIG_InitializeModule function takes these initial arrays out of 
3198  * swig_module, and does all the lookup, filling in the swig_module.types
3199  * array with the correct data and linking the correct swig_cast_info
3200  * structures together.
3201  *
3202  * The generated swig_type_info structures are assigned staticly to an initial 
3203  * array. We just loop through that array, and handle each type individually.
3204  * First we lookup if this type has been already loaded, and if so, use the
3205  * loaded structure instead of the generated one. Then we have to fill in the
3206  * cast linked list. The cast data is initially stored in something like a
3207  * two-dimensional array. Each row corresponds to a type (there are the same
3208  * number of rows as there are in the swig_type_initial array). Each entry in
3209  * a column is one of the swig_cast_info structures for that type.
3210  * The cast_initial array is actually an array of arrays, because each row has
3211  * a variable number of columns. So to actually build the cast linked list,
3212  * we find the array of casts associated with the type, and loop through it 
3213  * adding the casts to the list. The one last trick we need to do is making
3214  * sure the type pointer in the swig_cast_info struct is correct.
3215  *
3216  * First off, we lookup the cast->type name to see if it is already loaded. 
3217  * There are three cases to handle:
3218  *  1) If the cast->type has already been loaded AND the type we are adding
3219  *     casting info to has not been loaded (it is in this module), THEN we
3220  *     replace the cast->type pointer with the type pointer that has already
3221  *     been loaded.
3222  *  2) If BOTH types (the one we are adding casting info to, and the 
3223  *     cast->type) are loaded, THEN the cast info has already been loaded by
3224  *     the previous module so we just ignore it.
3225  *  3) Finally, if cast->type has not already been loaded, then we add that
3226  *     swig_cast_info to the linked list (because the cast->type) pointer will
3227  *     be correct.
3228  * ----------------------------------------------------------------------------- */
3229
3230 #ifdef __cplusplus
3231 extern "C" {
3232 #if 0
3233 } /* c-mode */
3234 #endif
3235 #endif
3236
3237 #if 0
3238 #define SWIGRUNTIME_DEBUG
3239 #endif
3240
3241
3242 SWIGRUNTIME void
3243 SWIG_InitializeModule(void *clientdata) {
3244   size_t i;
3245   swig_module_info *module_head, *iter;
3246   int found, init;
3247   
3248   clientdata = clientdata;
3249   
3250   /* check to see if the circular list has been setup, if not, set it up */
3251   if (swig_module.next==0) {
3252     /* Initialize the swig_module */
3253     swig_module.type_initial = swig_type_initial;
3254     swig_module.cast_initial = swig_cast_initial;
3255     swig_module.next = &swig_module;
3256     init = 1;
3257   } else {
3258     init = 0;
3259   }
3260   
3261   /* Try and load any already created modules */
3262   module_head = SWIG_GetModule(clientdata);
3263   if (!module_head) {
3264     /* This is the first module loaded for this interpreter */
3265     /* so set the swig module into the interpreter */
3266     SWIG_SetModule(clientdata, &swig_module);
3267     module_head = &swig_module;
3268   } else {
3269     /* the interpreter has loaded a SWIG module, but has it loaded this one? */
3270     found=0;
3271     iter=module_head;
3272     do {
3273       if (iter==&swig_module) {
3274         found=1;
3275         break;
3276       }
3277       iter=iter->next;
3278     } while (iter!= module_head);
3279     
3280     /* if the is found in the list, then all is done and we may leave */
3281     if (found) return;
3282     /* otherwise we must add out module into the list */
3283     swig_module.next = module_head->next;
3284     module_head->next = &swig_module;
3285   }
3286   
3287   /* When multiple interpeters are used, a module could have already been initialized in
3288        a different interpreter, but not yet have a pointer in this interpreter.
3289        In this case, we do not want to continue adding types... everything should be
3290        set up already */
3291   if (init == 0) return;
3292   
3293   /* Now work on filling in swig_module.types */
3294 #ifdef SWIGRUNTIME_DEBUG
3295   printf("SWIG_InitializeModule: size %d\n", swig_module.size);
3296 #endif
3297   for (i = 0; i < swig_module.size; ++i) {
3298     swig_type_info *type = 0;
3299     swig_type_info *ret;
3300     swig_cast_info *cast;
3301     
3302 #ifdef SWIGRUNTIME_DEBUG
3303     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
3304 #endif
3305     
3306     /* if there is another module already loaded */
3307     if (swig_module.next != &swig_module) {
3308       type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
3309     }
3310     if (type) {
3311       /* Overwrite clientdata field */
3312 #ifdef SWIGRUNTIME_DEBUG
3313       printf("SWIG_InitializeModule: found type %s\n", type->name);
3314 #endif
3315       if (swig_module.type_initial[i]->clientdata) {
3316         type->clientdata = swig_module.type_initial[i]->clientdata;
3317 #ifdef SWIGRUNTIME_DEBUG
3318         printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
3319 #endif
3320       }
3321     } else {
3322       type = swig_module.type_initial[i];
3323     }
3324     
3325     /* Insert casting types */
3326     cast = swig_module.cast_initial[i];
3327     while (cast->type) {
3328       /* Don't need to add information already in the list */
3329       ret = 0;
3330 #ifdef SWIGRUNTIME_DEBUG
3331       printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
3332 #endif
3333       if (swig_module.next != &swig_module) {
3334         ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
3335 #ifdef SWIGRUNTIME_DEBUG
3336         if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
3337 #endif
3338       }
3339       if (ret) {
3340         if (type == swig_module.type_initial[i]) {
3341 #ifdef SWIGRUNTIME_DEBUG
3342           printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
3343 #endif
3344           cast->type = ret;
3345           ret = 0;
3346         } else {
3347           /* Check for casting already in the list */
3348           swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
3349 #ifdef SWIGRUNTIME_DEBUG
3350           if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
3351 #endif
3352           if (!ocast) ret = 0;
3353         }
3354       }
3355       
3356       if (!ret) {
3357 #ifdef SWIGRUNTIME_DEBUG
3358         printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
3359 #endif
3360         if (type->cast) {
3361           type->cast->prev = cast;
3362           cast->next = type->cast;
3363         }
3364         type->cast = cast;
3365       }
3366       cast++;
3367     }
3368     /* Set entry in modules->types array equal to the type */
3369     swig_module.types[i] = type;
3370   }
3371   swig_module.types[i] = 0;
3372   
3373 #ifdef SWIGRUNTIME_DEBUG
3374   printf("**** SWIG_InitializeModule: Cast List ******\n");
3375   for (i = 0; i < swig_module.size; ++i) {
3376     int j = 0;
3377     swig_cast_info *cast = swig_module.cast_initial[i];
3378     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
3379     while (cast->type) {
3380       printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
3381       cast++;
3382       ++j;
3383     }
3384     printf("---- Total casts: %d\n",j);
3385   }
3386   printf("**** SWIG_InitializeModule: Cast List ******\n");
3387 #endif
3388 }
3389
3390 /* This function will propagate the clientdata field of type to
3391 * any new swig_type_info structures that have been added into the list
3392 * of equivalent types.  It is like calling
3393 * SWIG_TypeClientData(type, clientdata) a second time.
3394 */
3395 SWIGRUNTIME void
3396 SWIG_PropagateClientData(void) {
3397   size_t i;
3398   swig_cast_info *equiv;
3399   static int init_run = 0;
3400   
3401   if (init_run) return;
3402   init_run = 1;
3403   
3404   for (i = 0; i < swig_module.size; i++) {
3405     if (swig_module.types[i]->clientdata) {
3406       equiv = swig_module.types[i]->cast;
3407       while (equiv) {
3408         if (!equiv->converter) {
3409           if (equiv->type && !equiv->type->clientdata)
3410           SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
3411         }
3412         equiv = equiv->next;
3413       }
3414     }
3415   }
3416 }
3417
3418 #ifdef __cplusplus
3419 #if 0
3420 {
3421   /* c-mode */
3422 #endif
3423 }
3424 #endif
3425
3426
3427
3428 #ifdef __cplusplus
3429 extern "C"
3430 #endif
3431
3432 XS(SWIG_init) {
3433   dXSARGS;
3434   int i;
3435   
3436   SWIG_InitializeModule(0);
3437   
3438   /* Install commands */
3439   for (i = 0; swig_commands[i].name; i++) {
3440     newXS((char*) swig_commands[i].name,swig_commands[i].wrapper, (char*)__FILE__);
3441   }
3442   
3443   /* Install variables */
3444   for (i = 0; swig_variables[i].name; i++) {
3445     SV *sv;
3446     sv = get_sv((char*) swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
3447     if (swig_variables[i].type) {
3448       SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
3449     } else {
3450       sv_setiv(sv,(IV) 0);
3451     }
3452     swig_create_magic(sv, (char *) swig_variables[i].name, swig_variables[i].set, swig_variables[i].get); 
3453   }
3454   
3455   /* Install constant */
3456   for (i = 0; swig_constants[i].type; i++) {
3457     SV *sv;
3458     sv = get_sv((char*)swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
3459     switch(swig_constants[i].type) {
3460     case SWIG_INT:
3461       sv_setiv(sv, (IV) swig_constants[i].lvalue);
3462       break;
3463     case SWIG_FLOAT:
3464       sv_setnv(sv, (double) swig_constants[i].dvalue);
3465       break;
3466     case SWIG_STRING:
3467       sv_setpv(sv, (char *) swig_constants[i].pvalue);
3468       break;
3469     case SWIG_POINTER:
3470       SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0);
3471       break;
3472     case SWIG_BINARY:
3473       SWIG_MakePackedObj(sv, swig_constants[i].pvalue, swig_constants[i].lvalue, *(swig_constants[i].ptype));
3474       break;
3475     default:
3476       break;
3477     }
3478     SvREADONLY_on(sv);
3479   }
3480   
3481   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3482     SV *sv = get_sv((char*) SWIG_prefix "L_BOGUS", TRUE | 0x2 | GV_ADDMULTI);
3483     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_BOGUS)));
3484     SvREADONLY_on(sv);
3485   } while(0) /*@SWIG@*/;
3486   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3487     SV *sv = get_sv((char*) SWIG_prefix "L_FATAL", TRUE | 0x2 | GV_ADDMULTI);
3488     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_FATAL)));
3489     SvREADONLY_on(sv);
3490   } while(0) /*@SWIG@*/;
3491   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3492     SV *sv = get_sv((char*) SWIG_prefix "L_ERROR", TRUE | 0x2 | GV_ADDMULTI);
3493     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_ERROR)));
3494     SvREADONLY_on(sv);
3495   } while(0) /*@SWIG@*/;
3496   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3497     SV *sv = get_sv((char*) SWIG_prefix "L_WARNING", TRUE | 0x2 | GV_ADDMULTI);
3498     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_WARNING)));
3499     SvREADONLY_on(sv);
3500   } while(0) /*@SWIG@*/;
3501   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3502     SV *sv = get_sv((char*) SWIG_prefix "L_INFO", TRUE | 0x2 | GV_ADDMULTI);
3503     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_INFO)));
3504     SvREADONLY_on(sv);
3505   } while(0) /*@SWIG@*/;
3506   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3507     SV *sv = get_sv((char*) SWIG_prefix "L_SUMMARY", TRUE | 0x2 | GV_ADDMULTI);
3508     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_SUMMARY)));
3509     SvREADONLY_on(sv);
3510   } while(0) /*@SWIG@*/;
3511   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3512     SV *sv = get_sv((char*) SWIG_prefix "L_START", TRUE | 0x2 | GV_ADDMULTI);
3513     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_START)));
3514     SvREADONLY_on(sv);
3515   } while(0) /*@SWIG@*/;
3516   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3517     SV *sv = get_sv((char*) SWIG_prefix "L_FINISH", TRUE | 0x2 | GV_ADDMULTI);
3518     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_FINISH)));
3519     SvREADONLY_on(sv);
3520   } while(0) /*@SWIG@*/;
3521   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3522     SV *sv = get_sv((char*) SWIG_prefix "L_DISK", TRUE | 0x2 | GV_ADDMULTI);
3523     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_DISK)));
3524     SvREADONLY_on(sv);
3525   } while(0) /*@SWIG@*/;
3526   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3527     SV *sv = get_sv((char*) SWIG_prefix "L_DONE", TRUE | 0x2 | GV_ADDMULTI);
3528     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_DONE)));
3529     SvREADONLY_on(sv);
3530   } while(0) /*@SWIG@*/;
3531   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3532     SV *sv = get_sv((char*) SWIG_prefix "L_PART", TRUE | 0x2 | GV_ADDMULTI);
3533     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_PART)));
3534     SvREADONLY_on(sv);
3535   } while(0) /*@SWIG@*/;
3536   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3537     SV *sv = get_sv((char*) SWIG_prefix "L_PARTPARTIAL", TRUE | 0x2 | GV_ADDMULTI);
3538     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_PARTPARTIAL)));
3539     SvREADONLY_on(sv);
3540   } while(0) /*@SWIG@*/;
3541   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3542     SV *sv = get_sv((char*) SWIG_prefix "L_SUCCESS", TRUE | 0x2 | GV_ADDMULTI);
3543     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_SUCCESS)));
3544     SvREADONLY_on(sv);
3545   } while(0) /*@SWIG@*/;
3546   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3547     SV *sv = get_sv((char*) SWIG_prefix "L_PARTIAL", TRUE | 0x2 | GV_ADDMULTI);
3548     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_PARTIAL)));
3549     SvREADONLY_on(sv);
3550   } while(0) /*@SWIG@*/;
3551   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3552     SV *sv = get_sv((char*) SWIG_prefix "L_FAIL", TRUE | 0x2 | GV_ADDMULTI);
3553     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_FAIL)));
3554     SvREADONLY_on(sv);
3555   } while(0) /*@SWIG@*/;
3556   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3557     SV *sv = get_sv((char*) SWIG_prefix "L_STRANGE", TRUE | 0x2 | GV_ADDMULTI);
3558     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_STRANGE)));
3559     SvREADONLY_on(sv);
3560   } while(0) /*@SWIG@*/;
3561   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3562     SV *sv = get_sv((char*) SWIG_prefix "L_CHUNK", TRUE | 0x2 | GV_ADDMULTI);
3563     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_CHUNK)));
3564     SvREADONLY_on(sv);
3565   } while(0) /*@SWIG@*/;
3566   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3567     SV *sv = get_sv((char*) SWIG_prefix "L_CHUNKSUCCESS", TRUE | 0x2 | GV_ADDMULTI);
3568     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_CHUNKSUCCESS)));
3569     SvREADONLY_on(sv);
3570   } while(0) /*@SWIG@*/;
3571   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3572     SV *sv = get_sv((char*) SWIG_prefix "L_STATS", TRUE | 0x2 | GV_ADDMULTI);
3573     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_STATS)));
3574     SvREADONLY_on(sv);
3575   } while(0) /*@SWIG@*/;
3576   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3577     SV *sv = get_sv((char*) SWIG_prefix "L_MARKER", TRUE | 0x2 | GV_ADDMULTI);
3578     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_MARKER)));
3579     SvREADONLY_on(sv);
3580   } while(0) /*@SWIG@*/;
3581   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3582     SV *sv = get_sv((char*) SWIG_prefix "L_CONT", TRUE | 0x2 | GV_ADDMULTI);
3583     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(L_CONT)));
3584     SvREADONLY_on(sv);
3585   } while(0) /*@SWIG@*/;
3586   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3587     SV *sv = get_sv((char*) SWIG_prefix "P_UNKNOWN", TRUE | 0x2 | GV_ADDMULTI);
3588     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_UNKNOWN)));
3589     SvREADONLY_on(sv);
3590   } while(0) /*@SWIG@*/;
3591   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3592     SV *sv = get_sv((char*) SWIG_prefix "P_PLANNER", TRUE | 0x2 | GV_ADDMULTI);
3593     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_PLANNER)));
3594     SvREADONLY_on(sv);
3595   } while(0) /*@SWIG@*/;
3596   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3597     SV *sv = get_sv((char*) SWIG_prefix "P_DRIVER", TRUE | 0x2 | GV_ADDMULTI);
3598     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_DRIVER)));
3599     SvREADONLY_on(sv);
3600   } while(0) /*@SWIG@*/;
3601   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3602     SV *sv = get_sv((char*) SWIG_prefix "P_REPORTER", TRUE | 0x2 | GV_ADDMULTI);
3603     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_REPORTER)));
3604     SvREADONLY_on(sv);
3605   } while(0) /*@SWIG@*/;
3606   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3607     SV *sv = get_sv((char*) SWIG_prefix "P_DUMPER", TRUE | 0x2 | GV_ADDMULTI);
3608     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_DUMPER)));
3609     SvREADONLY_on(sv);
3610   } while(0) /*@SWIG@*/;
3611   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3612     SV *sv = get_sv((char*) SWIG_prefix "P_CHUNKER", TRUE | 0x2 | GV_ADDMULTI);
3613     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_CHUNKER)));
3614     SvREADONLY_on(sv);
3615   } while(0) /*@SWIG@*/;
3616   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3617     SV *sv = get_sv((char*) SWIG_prefix "P_TAPER", TRUE | 0x2 | GV_ADDMULTI);
3618     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_TAPER)));
3619     SvREADONLY_on(sv);
3620   } while(0) /*@SWIG@*/;
3621   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3622     SV *sv = get_sv((char*) SWIG_prefix "P_AMFLUSH", TRUE | 0x2 | GV_ADDMULTI);
3623     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMFLUSH)));
3624     SvREADONLY_on(sv);
3625   } while(0) /*@SWIG@*/;
3626   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3627     SV *sv = get_sv((char*) SWIG_prefix "P_AMDUMP", TRUE | 0x2 | GV_ADDMULTI);
3628     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMDUMP)));
3629     SvREADONLY_on(sv);
3630   } while(0) /*@SWIG@*/;
3631   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3632     SV *sv = get_sv((char*) SWIG_prefix "P_AMIDXTAPED", TRUE | 0x2 | GV_ADDMULTI);
3633     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMIDXTAPED)));
3634     SvREADONLY_on(sv);
3635   } while(0) /*@SWIG@*/;
3636   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3637     SV *sv = get_sv((char*) SWIG_prefix "P_AMFETCHDUMP", TRUE | 0x2 | GV_ADDMULTI);
3638     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMFETCHDUMP)));
3639     SvREADONLY_on(sv);
3640   } while(0) /*@SWIG@*/;
3641   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3642     SV *sv = get_sv((char*) SWIG_prefix "P_AMCHECKDUMP", TRUE | 0x2 | GV_ADDMULTI);
3643     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMCHECKDUMP)));
3644     SvREADONLY_on(sv);
3645   } while(0) /*@SWIG@*/;
3646   /*@SWIG:/usr/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3647     SV *sv = get_sv((char*) SWIG_prefix "P_AMVAULT", TRUE | 0x2 | GV_ADDMULTI);
3648     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(P_AMVAULT)));
3649     SvREADONLY_on(sv);
3650   } while(0) /*@SWIG@*/;
3651   SWIG_TypeClientData(SWIGTYPE_p_find_result_t, (void*) "Amanda::Logfile::find_result_t");
3652   ST(0) = &PL_sv_yes;
3653   XSRETURN(1);
3654 }
3655