mirror of https://github.com/swig/swig
1624 lines
57 KiB
Plaintext
1624 lines
57 KiB
Plaintext
<swigxml:swig name="namespaces" xmlns:swigxml="http://jniplusplus.sourceforge.net" xmlns:swig="http://swig.sourceforge.net" xmlns:c="http://www.ansi.org" >
|
|
<swig:top >
|
|
<swigxml:child >
|
|
<swig:file name="../../Lib/swig.swg" >
|
|
<swigxml:type string="include" />
|
|
</swig:file>
|
|
<swig:file name="example_xml.i" >
|
|
<swigxml:child >
|
|
<swig:module name="my_example" />
|
|
<c:enum name="color" >
|
|
<swigxml:child >
|
|
<c:enumvalue name="RED" >
|
|
<swigxml:value string="RED" />
|
|
</c:enumvalue>
|
|
<c:enumvalue name="BLUE" />
|
|
<c:enumvalue name="GREEN" />
|
|
</swigxml:child>
|
|
</c:enum>
|
|
<c:class name="Foo" >
|
|
<swigxml:child >
|
|
<c:access name="public" />
|
|
<c:function name="Foo" >
|
|
<swigxml:code >
|
|
{ } </swigxml:code>
|
|
<swigxml:type string="int" />
|
|
</c:function>
|
|
<c:enum name="speed" >
|
|
<swigxml:child >
|
|
<c:enumvalue name="IMPULSE" />
|
|
<c:enumvalue name="WARP" />
|
|
<c:enumvalue name="LUDICROUS" />
|
|
</swigxml:child>
|
|
</c:enum>
|
|
<c:function name="enum_test" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="s" >
|
|
<swigxml:type string="speed" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:type string="void" />
|
|
</c:function>
|
|
</swigxml:child>
|
|
<swigxml:classtype string="class" />
|
|
<swigxml:namespace string="Foo" />
|
|
</c:class>
|
|
<c:function name="enum_test" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="c" >
|
|
<swigxml:type string="color" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="s" >
|
|
<swigxml:type string="Foo::speed" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:type string="void" />
|
|
</c:function>
|
|
<swig:file name="../../Lib/pointer.i" >
|
|
<swigxml:child >
|
|
<swig:module name="pointer" />
|
|
<swig:insert >
|
|
<swigxml:code >
|
|
|
|
%include pointer.i
|
|
|
|
The pointer.i library provides run-time support for managing and
|
|
manipulating a variety of C/C++ pointer values. In particular,
|
|
you can create various kinds of objects and dereference common
|
|
pointer types. This is done through a common set of functions:
|
|
|
|
ptrvalue - Dereferences a pointer
|
|
ptrset - Set the value of an object referenced by
|
|
a pointer.
|
|
ptrcreate - Create a new object and return a pointer.
|
|
ptrfree - Free the memory allocated by ptrcreate.
|
|
ptradd - Increment/decrement a pointer value.
|
|
|
|
When creating, dereferencing, or setting the value of pointer
|
|
variable, only the common C datatypes of int, short, long, float,
|
|
double, char, and char * are currently supported. Other
|
|
datatypes may generate an error.
|
|
|
|
One of the more interesting aspects of this library is that
|
|
it operates with a wide range of datatypes. For example,
|
|
the "ptrvalue" function can dereference "double *", "int *",
|
|
"long *", "char *", and other datatypes. Since SWIG encodes
|
|
pointers with type information, this can be done transparently
|
|
and in most cases, you can dereference a pointer without
|
|
ever knowing what type it actually is.
|
|
|
|
This library is primarily designed for utility, not high
|
|
performance (the dynamic determination of pointer types takes
|
|
more work than most normal wrapper functions). As a result,
|
|
you may achieve better performance by writing customized
|
|
"helper" functions if you're making lots of calls to these
|
|
functions in inner loops or other intensive operations.
|
|
</swigxml:code>
|
|
<swigxml:section string="doc" />
|
|
</swig:insert>
|
|
<swig:types >
|
|
<swigxml:parms >
|
|
<swigxml:parm >
|
|
<swigxml:type string="p.int" />
|
|
</swigxml:parm>
|
|
<swigxml:parm >
|
|
<swigxml:type string="p.short" />
|
|
</swigxml:parm>
|
|
<swigxml:parm >
|
|
<swigxml:type string="p.long" />
|
|
</swigxml:parm>
|
|
<swigxml:parm >
|
|
<swigxml:type string="p.float" />
|
|
</swigxml:parm>
|
|
<swigxml:parm >
|
|
<swigxml:type string="p.double" />
|
|
</swigxml:parm>
|
|
<swigxml:parm >
|
|
<swigxml:type string="p.char" />
|
|
</swigxml:parm>
|
|
<swigxml:parm >
|
|
<swigxml:type string="p.p.char" />
|
|
</swigxml:parm>
|
|
<swigxml:parm >
|
|
<swigxml:type string="p.void" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
</swig:types>
|
|
<swig:file name="../../Lib/xml/ptrlang.i" >
|
|
<swigxml:child >
|
|
<swig:insert >
|
|
<swigxml:code >
|
|
|
|
#include &lt;ctype.h>
|
|
|
|
/* Types used by the library */
|
|
static swig_type_info *SWIG_POINTER_int_p = 0;
|
|
static swig_type_info *SWIG_POINTER_short_p =0;
|
|
static swig_type_info *SWIG_POINTER_long_p = 0;
|
|
static swig_type_info *SWIG_POINTER_float_p = 0;
|
|
static swig_type_info *SWIG_POINTER_double_p = 0;
|
|
static swig_type_info *SWIG_POINTER_char_p = 0;
|
|
static swig_type_info *SWIG_POINTER_char_pp = 0;
|
|
static swig_type_info *SWIG_POINTER_void_p = 0;
|
|
</swigxml:code>
|
|
</swig:insert>
|
|
<swig:insert >
|
|
<swigxml:code >
|
|
|
|
SWIG_POINTER_int_p = SWIG_TypeQuery("int *");
|
|
SWIG_POINTER_short_p = SWIG_TypeQuery("short *");
|
|
SWIG_POINTER_long_p = SWIG_TypeQuery("long *");
|
|
SWIG_POINTER_float_p = SWIG_TypeQuery("float *");
|
|
SWIG_POINTER_double_p = SWIG_TypeQuery("double *");
|
|
SWIG_POINTER_char_p = SWIG_TypeQuery("char *");
|
|
SWIG_POINTER_char_pp = SWIG_TypeQuery("char **");
|
|
SWIG_POINTER_void_p = SWIG_TypeQuery("void *");
|
|
</swigxml:code>
|
|
<swigxml:section string="init" />
|
|
</swig:insert>
|
|
<swig:insert >
|
|
<swigxml:code >
|
|
|
|
|
|
/* #ifdef WIN32
|
|
#undef isspace
|
|
#define isspace(c) (c == ' ')
|
|
#endif
|
|
*/
|
|
|
|
/*------------------------------------------------------------------
|
|
ptrvalue(ptr,type = 0)
|
|
|
|
Attempts to dereference a pointer value. If type is given, it
|
|
will try to use that type. Otherwise, this function will attempt
|
|
to "guess" the proper datatype by checking against all of the
|
|
builtin C datatypes.
|
|
------------------------------------------------------------------ */
|
|
|
|
#ifdef PERL_OBJECT
|
|
static SV *_ptrvalue(CPerlObj *pPerl,SV *_PTRVALUE, int index, char *type) {
|
|
#define ptrvalue(a,b,c) _ptrvalue(pPerl,a,b,c)
|
|
#else
|
|
static SV *_ptrvalue(SV *_PTRVALUE, int index, char *type) {
|
|
#define ptrvalue(a,b,c) _ptrvalue(a,b,c)
|
|
#endif
|
|
|
|
void *ptr;
|
|
SV *obj = 0;
|
|
|
|
if (SWIG_ConvertPtr(_PTRVALUE, &ptr, 0) &lt; 0) {
|
|
croak("Type error it ptrvalue. Argument is not a valid pointer value.");
|
|
} else {
|
|
/* If no datatype was passed, try a few common datatypes first */
|
|
if (!type) {
|
|
|
|
/* No datatype was passed. Type to figure out if it's a common one */
|
|
|
|
if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_int_p) >= 0) {
|
|
type = "int";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_double_p) >= 0) {
|
|
type = "double";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_short_p) >= 0) {
|
|
type = "short";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_long_p) >= 0) {
|
|
type = "long";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_float_p) >= 0) {
|
|
type = "float";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_char_p) >= 0) {
|
|
type = "char";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_char_pp) >= 0) {
|
|
type = "char *";
|
|
} else {
|
|
type = "unknown";
|
|
}
|
|
}
|
|
|
|
if (!ptr) {
|
|
croak("Unable to dereference NULL pointer.");
|
|
return 0;
|
|
}
|
|
|
|
/* Now we have a datatype. Try to figure out what to do about it */
|
|
if (strcmp(type,"int") == 0) {
|
|
obj = sv_newmortal();
|
|
sv_setiv(obj,(IV) *(((int *) ptr) + index));
|
|
} else if (strcmp(type,"double") == 0) {
|
|
obj = sv_newmortal();
|
|
sv_setnv(obj,(double) *(((double *) ptr)+index));
|
|
} else if (strcmp(type,"short") == 0) {
|
|
obj = sv_newmortal();
|
|
sv_setiv(obj,(IV) *(((short *) ptr) + index));
|
|
} else if (strcmp(type,"long") == 0) {
|
|
obj = sv_newmortal();
|
|
sv_setiv(obj,(IV) *(((long *) ptr) + index));
|
|
} else if (strcmp(type,"float") == 0) {
|
|
obj = sv_newmortal();
|
|
sv_setnv(obj,(double) *(((float *) ptr)+index));
|
|
} else if (strcmp(type,"char") == 0) {
|
|
obj = sv_newmortal();
|
|
sv_setpv(obj,((char *) ptr)+index);
|
|
} else if (strcmp(type,"char *") == 0) {
|
|
char *c = *(((char **) ptr)+index);
|
|
obj = sv_newmortal();
|
|
if (c)
|
|
sv_setpv(obj,c);
|
|
else
|
|
sv_setpv(obj,"NULL");
|
|
} else {
|
|
croak("Unable to dereference unsupported datatype.");
|
|
obj = 0;
|
|
}
|
|
}
|
|
return obj;
|
|
}
|
|
|
|
/*------------------------------------------------------------------
|
|
ptrcreate(type,value = 0,numelements = 1)
|
|
|
|
Attempts to create a new object of given type. Type must be
|
|
a basic C datatype. Will not create complex objects.
|
|
------------------------------------------------------------------ */
|
|
#ifdef PERL_OBJECT
|
|
static SV *_ptrcreate(CPerlObj *pPerl, char *type, SV *value, int numelements) {
|
|
#define ptrcreate(a,b,c) _ptrcreate(pPerl,a,b,c)
|
|
#else
|
|
static SV *_ptrcreate(char *type, SV *value, int numelements) {
|
|
#define ptrcreate(a,b,c) _ptrcreate(a,b,c)
|
|
#endif
|
|
|
|
void *ptr;
|
|
SV *obj;
|
|
int sz;
|
|
swig_type_info *cast = 0;
|
|
|
|
/* Check the type string against a variety of possibilities */
|
|
|
|
if (strcmp(type,"int") == 0) {
|
|
sz = sizeof(int)*numelements;
|
|
cast = SWIG_POINTER_int_p;
|
|
} else if (strcmp(type,"short") == 0) {
|
|
sz = sizeof(short)*numelements;
|
|
cast = SWIG_POINTER_short_p;
|
|
} else if (strcmp(type,"long") == 0) {
|
|
sz = sizeof(long)*numelements;
|
|
cast = SWIG_POINTER_long_p;
|
|
} else if (strcmp(type,"double") == 0) {
|
|
sz = sizeof(double)*numelements;
|
|
cast = SWIG_POINTER_double_p;
|
|
} else if (strcmp(type,"float") == 0) {
|
|
sz = sizeof(float)*numelements;
|
|
cast = SWIG_POINTER_float_p;
|
|
} else if (strcmp(type,"char") == 0) {
|
|
sz = sizeof(char)*numelements;
|
|
cast = SWIG_POINTER_char_p;
|
|
} else if (strcmp(type,"char *") == 0) {
|
|
sz = sizeof(char *)*(numelements+1);
|
|
cast = SWIG_POINTER_char_pp;
|
|
} else if (strcmp(type,"void") == 0) {
|
|
sz = numelements;
|
|
cast = SWIG_POINTER_void_p;
|
|
} else {
|
|
croak("Unable to create unknown datatype.");
|
|
return 0;
|
|
}
|
|
|
|
/* Create the new object */
|
|
|
|
ptr = (void *) malloc(sz);
|
|
if (!ptr) {
|
|
croak("Out of memory in ptrcreate.");
|
|
return 0;
|
|
}
|
|
|
|
/* Now try to set its default value */
|
|
|
|
if (value) {
|
|
if (strcmp(type,"int") == 0) {
|
|
int *ip,i,ivalue;
|
|
ivalue = (int) SvIV(value);
|
|
ip = (int *) ptr;
|
|
for (i = 0; i &lt; numelements; i++)
|
|
ip[i] = ivalue;
|
|
} else if (strcmp(type,"short") == 0) {
|
|
short *ip,ivalue;
|
|
int i;
|
|
ivalue = (short) SvIV(value);
|
|
ip = (short *) ptr;
|
|
for (i = 0; i &lt; numelements; i++)
|
|
ip[i] = ivalue;
|
|
} else if (strcmp(type,"long") == 0) {
|
|
long *ip,ivalue;
|
|
int i;
|
|
ivalue = (long) SvIV(value);
|
|
ip = (long *) ptr;
|
|
for (i = 0; i &lt; numelements; i++)
|
|
ip[i] = ivalue;
|
|
} else if (strcmp(type,"double") == 0) {
|
|
double *ip,ivalue;
|
|
int i;
|
|
ivalue = (double) SvNV(value);
|
|
ip = (double *) ptr;
|
|
for (i = 0; i &lt; numelements; i++)
|
|
ip[i] = ivalue;
|
|
} else if (strcmp(type,"float") == 0) {
|
|
float *ip,ivalue;
|
|
int i;
|
|
ivalue = (float) SvNV(value);
|
|
ip = (float *) ptr;
|
|
for (i = 0; i &lt; numelements; i++)
|
|
ip[i] = ivalue;
|
|
} else if (strcmp(type,"char") == 0) {
|
|
char *ip,*ivalue;
|
|
ivalue = (char *) SvPV(value,PL_na);
|
|
ip = (char *) ptr;
|
|
strncpy(ip,ivalue,numelements-1);
|
|
} else if (strcmp(type,"char *") == 0) {
|
|
char **ip, *ivalue;
|
|
int i;
|
|
ivalue = (char *) SvPV(value,PL_na);
|
|
ip = (char **) ptr;
|
|
for (i = 0; i &lt; numelements; i++) {
|
|
if (ivalue) {
|
|
ip[i] = (char *) malloc(strlen(ivalue)+1);
|
|
strcpy(ip[i],ivalue);
|
|
} else {
|
|
ip[i] = 0;
|
|
}
|
|
}
|
|
ip[numelements] = 0;
|
|
}
|
|
}
|
|
/* Create the pointer value */
|
|
|
|
|
|
obj = sv_newmortal();
|
|
SWIG_MakePtr(obj,ptr,cast);
|
|
return obj;
|
|
}
|
|
|
|
/*------------------------------------------------------------------
|
|
ptrset(ptr,value,index = 0,type = 0)
|
|
|
|
Attempts to set the value of a pointer variable. If type is
|
|
given, we will use that type. Otherwise, we'll guess the datatype.
|
|
------------------------------------------------------------------ */
|
|
|
|
#ifdef PERL_OBJECT
|
|
static void _ptrset(CPerlObj *pPerl,SV *_PTRVALUE, SV *value, int index, char *type) {
|
|
#define ptrset(a,b,c,d) _ptrset(pPerl,a,b,c,d)
|
|
#else
|
|
static void _ptrset(SV *_PTRVALUE, SV *value, int index, char *type) {
|
|
#define ptrset(a,b,c,d) _ptrset(a,b,c,d)
|
|
#endif
|
|
void *ptr;
|
|
SV *obj;
|
|
|
|
|
|
if (SWIG_ConvertPtr(_PTRVALUE, &ptr, 0) &lt; 0) {
|
|
croak("Type error it ptrvalue. Argument is not a valid pointer value.");
|
|
} else {
|
|
/* If no datatype was passed, try a few common datatypes first */
|
|
if (!type) {
|
|
/* No datatype was passed. Type to figure out if it's a common one */
|
|
if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_int_p) >= 0) {
|
|
type = "int";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_double_p) >= 0) {
|
|
type = "double";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_short_p) >= 0) {
|
|
type = "short";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_long_p) >= 0) {
|
|
type = "long";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_float_p) >= 0) {
|
|
type = "float";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_char_p) >= 0) {
|
|
type = "char";
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_char_pp) >= 0) {
|
|
type = "char *";
|
|
} else {
|
|
type = "unknown";
|
|
}
|
|
}
|
|
}
|
|
if (!ptr) {
|
|
croak("Unable to set NULL pointer.");
|
|
return;
|
|
}
|
|
|
|
/* Now we have a datatype. Try to figure out what to do about it */
|
|
if (strcmp(type,"int") == 0) {
|
|
*(((int *) ptr)+index) = (int) SvIV(value);
|
|
} else if (strcmp(type,"double") == 0) {
|
|
*(((double *) ptr)+index) = (double) SvNV(value);
|
|
} else if (strcmp(type,"short") == 0) {
|
|
*(((short *) ptr)+index) = (short) SvIV(value);
|
|
} else if (strcmp(type,"long") == 0) {
|
|
*(((long *) ptr)+index) = (long) SvIV(value);
|
|
} else if (strcmp(type,"float") == 0) {
|
|
*(((float *) ptr)+index) = (float) SvNV(value);
|
|
} else if (strcmp(type,"char") == 0) {
|
|
char *c = SvPV(value,PL_na);
|
|
strcpy(((char *) ptr)+index, c);
|
|
} else if (strcmp(type,"char *") == 0) {
|
|
char *c = SvPV(value,PL_na);
|
|
char **ca = (char **) ptr;
|
|
free(ca[index]);
|
|
if (strcmp(c,"NULL") == 0) {
|
|
ca[index] = 0;
|
|
} else {
|
|
ca[index] = (char *) malloc(strlen(c)+1);
|
|
strcpy(ca[index],c);
|
|
}
|
|
} else {
|
|
croak("Unable to set unsupported datatype.");
|
|
return;
|
|
}
|
|
}
|
|
|
|
/*------------------------------------------------------------------
|
|
ptradd(ptr,offset)
|
|
|
|
Adds a value to an existing pointer value. Will do a type-dependent
|
|
add for basic datatypes. For other datatypes, will do a byte-add.
|
|
------------------------------------------------------------------ */
|
|
|
|
#ifdef PERL_OBJECT
|
|
static SV *_ptradd(CPerlObj *pPerl, SV *_PTRVALUE, int offset) {
|
|
#define ptradd(a,b) _ptradd(pPerl,a,b)
|
|
#else
|
|
static SV *_ptradd(SV *_PTRVALUE, int offset) {
|
|
#define ptradd(a,b) _ptradd(a,b)
|
|
#endif
|
|
|
|
void *ptr,*junk;
|
|
SV *obj;
|
|
swig_type_info *type;
|
|
char *tname;
|
|
|
|
/* Try to handle a few common datatypes first */
|
|
|
|
if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_int_p) >= 0) {
|
|
ptr = (void *) (((int *) ptr) + offset);
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_double_p) >= 0) {
|
|
ptr = (void *) (((double *) ptr) + offset);
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_short_p) >= 0) {
|
|
ptr = (void *) (((short *) ptr) + offset);
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_long_p) >= 0) {
|
|
ptr = (void *) (((long *) ptr) + offset);
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_float_p) >= 0) {
|
|
ptr = (void *) (((float *) ptr) + offset);
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,SWIG_POINTER_char_p) >= 0) {
|
|
ptr = (void *) (((char *) ptr) + offset);
|
|
} else if (SWIG_ConvertPtr(_PTRVALUE,&ptr,0) >= 0) {
|
|
ptr = (void *) (((char *) ptr) + offset);
|
|
} else {
|
|
croak("Type error in ptradd. Argument is not a valid pointer value.");
|
|
return 0;
|
|
}
|
|
printf("ptradd = %x\n", ptr);
|
|
tname = HvNAME(SvSTASH(SvRV(_PTRVALUE)));
|
|
obj = sv_newmortal();
|
|
sv_setref_pv(obj,tname,ptr);
|
|
return obj;
|
|
}
|
|
|
|
/*------------------------------------------------------------------
|
|
ptrfree(ptr)
|
|
|
|
Destroys a pointer value
|
|
------------------------------------------------------------------ */
|
|
#ifdef PERL_OBJECT
|
|
void _ptrfree(CPerlObj *pPerl, SV *_PTRVALUE) {
|
|
#define ptrfree(a) _ptrfree(pPerl, a)
|
|
#else
|
|
void _ptrfree(SV *_PTRVALUE) {
|
|
#define ptrfree(a) _ptrfree(a)
|
|
#endif
|
|
|
|
void *ptr, *junk;
|
|
|
|
if (SWIG_ConvertPtr(_PTRVALUE,&ptr,0) &lt; 0) {
|
|
croak("Type error in ptrfree. Argument is not a valid pointer value.");
|
|
return;
|
|
}
|
|
|
|
/* Check to see if this pointer is a char ** */
|
|
if (SWIG_ConvertPtr(_PTRVALUE,&junk,SWIG_POINTER_char_pp) >= 0) {
|
|
char **c = (char **) ptr;
|
|
if (c) {
|
|
int i = 0;
|
|
while (c[i]) {
|
|
free(c[i]);
|
|
i++;
|
|
}
|
|
}
|
|
}
|
|
free((char *) ptr);
|
|
}
|
|
|
|
</swigxml:code>
|
|
</swig:insert>
|
|
<swig:typemap name="ptr" >
|
|
<swigxml:code >
|
|
{
|
|
$target = $source;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.SV" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="value" >
|
|
<swigxml:code >
|
|
{
|
|
$target = $source;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.SV" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="ptrcast" >
|
|
<swigxml:code >
|
|
{
|
|
$target = $source;
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="out" />
|
|
<swigxml:type string="p.SV" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="ptrvalue" >
|
|
<swigxml:code >
|
|
{
|
|
$target = $source;
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="out" />
|
|
<swigxml:type string="p.SV" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="ptrcreate" >
|
|
<swigxml:code >
|
|
{
|
|
$target = $source;
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="out" />
|
|
<swigxml:type string="p.SV" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="ptradd" >
|
|
<swigxml:code >
|
|
{
|
|
$target = $source;
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="out" />
|
|
<swigxml:type string="p.SV" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="ptrset" >
|
|
<swigxml:code >
|
|
{
|
|
if ($source == -1) return NULL;
|
|
} </swigxml:code>
|
|
<swigxml:method string="ret" />
|
|
<swigxml:type string="int" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<c:function name="ptrvalue" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="ptr" >
|
|
<swigxml:type string="p.SV" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="index" >
|
|
<swigxml:value string="0" />
|
|
<swigxml:type string="int" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="type" >
|
|
<swigxml:value string="0" />
|
|
<swigxml:type string="p.char" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:type string="p.SV" />
|
|
</c:function>
|
|
<c:function name="ptrset" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="ptr" >
|
|
<swigxml:type string="p.SV" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="value" >
|
|
<swigxml:type string="p.SV" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="index" >
|
|
<swigxml:value string="0" />
|
|
<swigxml:type string="int" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="type" >
|
|
<swigxml:value string="0" />
|
|
<swigxml:type string="p.char" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:type string="void" />
|
|
</c:function>
|
|
<c:function name="ptrcreate" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="type" >
|
|
<swigxml:type string="p.char" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="value" >
|
|
<swigxml:value string="0" />
|
|
<swigxml:type string="p.SV" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="nitems" >
|
|
<swigxml:value string="1" />
|
|
<swigxml:type string="int" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:type string="p.SV" />
|
|
</c:function>
|
|
<c:function name="ptrfree" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="ptr" >
|
|
<swigxml:type string="p.SV" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:type string="void" />
|
|
</c:function>
|
|
<c:function name="ptradd" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="ptr" >
|
|
<swigxml:type string="p.SV" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="offset" >
|
|
<swigxml:type string="int" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:type string="p.SV" />
|
|
</c:function>
|
|
</swigxml:child>
|
|
<swigxml:type string="include" />
|
|
</swig:file>
|
|
</swigxml:child>
|
|
<swigxml:type string="include" />
|
|
</swig:file>
|
|
<swig:file name="../../Lib/xml/typemaps.i" >
|
|
<swigxml:child >
|
|
<swig:typemap name="INPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="double" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
temp = (double) SvNV($source);
|
|
$target = &temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.double" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="INPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="float" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
temp = (float) SvNV($source);
|
|
$target = &temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.float" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="INPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="int" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
temp = (int) SvIV($source);
|
|
$target = &temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.int" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="INPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="short" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
temp = (short) SvIV($source);
|
|
$target = &temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.short" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="INPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="long" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
temp = (long) SvIV($source);
|
|
$target = &temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.long" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="INPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="unsigned int" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
temp = (unsigned int) SvIV($source);
|
|
$target = &temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.unsigned int" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="INPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="unsigned short" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
temp = (unsigned short) SvIV($source);
|
|
$target = &temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.unsigned short" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="INPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="unsigned long" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
temp = (unsigned long) SvIV($source);
|
|
$target = &temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.unsigned long" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="INPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="unsigned char" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
temp = (unsigned char) SvIV($source);
|
|
$target = &temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.unsigned char" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="int" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
$target = &temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="ignore" />
|
|
<swigxml:type string="p.int" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="short" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
$target = &amp;temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="ignore" />
|
|
<swigxml:type string="p.short" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="long" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
$target = &amp;amp;temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="ignore" />
|
|
<swigxml:type string="p.long" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="unsigned int" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
$target = &amp;amp;amp;temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="ignore" />
|
|
<swigxml:type string="p.unsigned int" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="unsigned short" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
$target = &amp;amp;amp;amp;temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="ignore" />
|
|
<swigxml:type string="p.unsigned short" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="unsigned long" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
$target = &amp;amp;amp;amp;amp;temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="ignore" />
|
|
<swigxml:type string="p.unsigned long" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="unsigned char" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
$target = &amp;amp;amp;amp;amp;amp;temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="ignore" />
|
|
<swigxml:type string="p.unsigned char" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="float" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
$target = &amp;amp;amp;amp;amp;amp;amp;temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="ignore" />
|
|
<swigxml:type string="p.float" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="temp" >
|
|
<swigxml:type string="double" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
$target = &amp;amp;amp;amp;amp;amp;amp;amp;temp;
|
|
} </swigxml:code>
|
|
<swigxml:method string="ignore" />
|
|
<swigxml:type string="p.double" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:code >
|
|
{
|
|
if (argvi >= items) {
|
|
EXTEND(sp,1);
|
|
}
|
|
$target = sv_newmortal();
|
|
sv_setiv($target,(IV) *($source));
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.int" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:code >
|
|
{
|
|
if (argvi >= items) {
|
|
EXTEND(sp,1);
|
|
}
|
|
$target = sv_newmortal();
|
|
sv_setiv($target,(IV) *($source));
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.short" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:code >
|
|
{
|
|
if (argvi >= items) {
|
|
EXTEND(sp,1);
|
|
}
|
|
$target = sv_newmortal();
|
|
sv_setiv($target,(IV) *($source));
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.long" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:code >
|
|
{
|
|
if (argvi >= items) {
|
|
EXTEND(sp,1);
|
|
}
|
|
$target = sv_newmortal();
|
|
sv_setiv($target,(IV) *($source));
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.unsigned int" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:code >
|
|
{
|
|
if (argvi >= items) {
|
|
EXTEND(sp,1);
|
|
}
|
|
$target = sv_newmortal();
|
|
sv_setiv($target,(IV) *($source));
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.unsigned short" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:code >
|
|
{
|
|
if (argvi >= items) {
|
|
EXTEND(sp,1);
|
|
}
|
|
$target = sv_newmortal();
|
|
sv_setiv($target,(IV) *($source));
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.unsigned long" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:code >
|
|
{
|
|
if (argvi >= items) {
|
|
EXTEND(sp,1);
|
|
}
|
|
$target = sv_newmortal();
|
|
sv_setiv($target,(IV) *($source));
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.unsigned char" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:code >
|
|
{
|
|
if (argvi >= items) {
|
|
EXTEND(sp,1);
|
|
}
|
|
$target = sv_newmortal();
|
|
sv_setnv($target,(double) *($source));
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.float" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="OUTPUT" >
|
|
<swigxml:code >
|
|
{
|
|
if (argvi >= items) {
|
|
EXTEND(sp,1);
|
|
}
|
|
$target = sv_newmortal();
|
|
sv_setnv($target,(double) *($source));
|
|
argvi++;
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.double" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.int" />
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.int" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="INPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.short" />
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.short" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="INPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.long" />
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.long" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="INPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.unsigned" />
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.unsigned" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="INPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.unsigned short" />
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.unsigned short" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="INPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.unsigned long" />
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.unsigned long" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="INPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.unsigned char" />
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.unsigned char" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="INPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.float" />
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.float" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="INPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.double" />
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.double" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="INPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.int" />
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.int" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="OUTPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.short" />
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.short" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="OUTPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.long" />
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.long" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="OUTPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.unsigned" />
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.unsigned" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="OUTPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.unsigned short" />
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.unsigned short" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="OUTPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.unsigned long" />
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.unsigned long" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="OUTPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.unsigned char" />
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.unsigned char" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="OUTPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.float" />
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.float" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="OUTPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="BOTH" >
|
|
<swigxml:srctype string="p.double" />
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.double" />
|
|
<swigxml:lang string="perl5" />
|
|
<swigxml:srcname string="OUTPUT" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="dvalue" >
|
|
<swigxml:type string="double" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
if (!SvROK($source)) {
|
|
croak("expected a reference");
|
|
}
|
|
tempsv = SvRV($source);
|
|
if ((!SvNOK(tempsv)) && (!SvIOK(tempsv))) {
|
|
printf("Received %d\n", SvTYPE(tempsv));
|
|
croak("Expected a double reference.");
|
|
}
|
|
dvalue = SvNV(tempsv);
|
|
$target = &dvalue;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.double" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="dvalue" >
|
|
<swigxml:type string="float" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
if (!SvROK($source)) {
|
|
croak("expected a reference");
|
|
}
|
|
tempsv = SvRV($source);
|
|
if ((!SvNOK(tempsv)) && (!SvIOK(tempsv))) {
|
|
croak("expected a double reference");
|
|
}
|
|
dvalue = (float) SvNV(tempsv);
|
|
$target = &dvalue;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.float" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="dvalue" >
|
|
<swigxml:type string="int" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
if (!SvROK($source)) {
|
|
croak("expected a reference");
|
|
}
|
|
tempsv = SvRV($source);
|
|
if (!SvIOK(tempsv)) {
|
|
croak("expected an integer reference");
|
|
}
|
|
dvalue = SvIV(tempsv);
|
|
$target = &dvalue;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.int" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="dvalue" >
|
|
<swigxml:type string="short" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
if (!SvROK($source)) {
|
|
croak("expected a reference");
|
|
}
|
|
tempsv = SvRV($source);
|
|
if (!SvIOK(tempsv)) {
|
|
croak("expected an integer reference");
|
|
}
|
|
dvalue = (short) SvIV(tempsv);
|
|
$target = &dvalue;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.short" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="dvalue" >
|
|
<swigxml:type string="long" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
if (!SvROK($source)) {
|
|
croak("expected a reference");
|
|
}
|
|
tempsv = SvRV($source);
|
|
if (!SvIOK(tempsv)) {
|
|
croak("expected an integer reference");
|
|
}
|
|
dvalue = (long) SvIV(tempsv);
|
|
$target = &dvalue;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.long" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="dvalue" >
|
|
<swigxml:type string="unsigned int" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
if (!SvROK($source)) {
|
|
croak("expected a reference");
|
|
}
|
|
tempsv = SvRV($source);
|
|
if (!SvIOK(tempsv)) {
|
|
croak("expected an integer reference");
|
|
}
|
|
dvalue = (unsigned int) SvIV(tempsv);
|
|
$target = &dvalue;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.unsigned int" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="dvalue" >
|
|
<swigxml:type string="unsigned short" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
if (!SvROK($source)) {
|
|
croak("expected a reference");
|
|
}
|
|
tempsv = SvRV($source);
|
|
if (!SvIOK(tempsv)) {
|
|
croak("expected an integer reference");
|
|
}
|
|
dvalue = (unsigned short) SvIV(tempsv);
|
|
$target = &dvalue;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.unsigned short" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="dvalue" >
|
|
<swigxml:type string="unsigned long" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
if (!SvROK($source)) {
|
|
croak("expected a reference");
|
|
}
|
|
tempsv = SvRV($source);
|
|
if (!SvIOK(tempsv)) {
|
|
croak("expected an integer reference");
|
|
}
|
|
dvalue = (unsigned long) SvIV(tempsv);
|
|
$target = &dvalue;
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.unsigned long" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
tempsv = SvRV($arg);
|
|
sv_setnv(tempsv, (double) *$source);
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.double" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
tempsv = SvRV($arg);
|
|
sv_setnv(tempsv, (double) *$source);
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.float" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
tempsv = SvRV($arg);
|
|
sv_setiv(tempsv, (int) *$source);
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.int" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
tempsv = SvRV($arg);
|
|
sv_setiv(tempsv, (int) *$source);
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.short" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
tempsv = SvRV($arg);
|
|
sv_setiv(tempsv, (int) *$source);
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.long" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
tempsv = SvRV($arg);
|
|
sv_setiv(tempsv, (int) *$source);
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.unsigned int" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
tempsv = SvRV($arg);
|
|
sv_setiv(tempsv, (int) *$source);
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.unsigned short" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
<swig:typemap name="REFERENCE" >
|
|
<swigxml:code >
|
|
{
|
|
SV *tempsv;
|
|
tempsv = SvRV($arg);
|
|
sv_setiv(tempsv, (int) *$source);
|
|
} </swigxml:code>
|
|
<swigxml:method string="argout" />
|
|
<swigxml:type string="p.unsigned long" />
|
|
<swigxml:lang string="perl5" />
|
|
</swig:typemap>
|
|
</swigxml:child>
|
|
<swigxml:type string="include" />
|
|
</swig:file>
|
|
<swig:typemap >
|
|
<swigxml:code >
|
|
{
|
|
WHATEVER MAKES YOU HAPPY AS RESULT
|
|
} </swigxml:code>
|
|
<swigxml:method string="out" />
|
|
<swigxml:type string="p.int" />
|
|
</swig:typemap>
|
|
<swig:typemap >
|
|
<swigxml:code >
|
|
{
|
|
WHATEVER MAKES YOU HAPPY AS PARAMETER
|
|
} </swigxml:code>
|
|
<swigxml:method string="in" />
|
|
<swigxml:type string="p.int" />
|
|
</swig:typemap>
|
|
<swig:pragma name="DEBUG" >
|
|
<swigxml:value string="false" />
|
|
<swigxml:lang string="xml" />
|
|
</swig:pragma>
|
|
<c:function name="my_gcd" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="x" >
|
|
<swigxml:type string="p.q(const).char" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="y" >
|
|
<swigxml:type string="a().p.int" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="r" >
|
|
<swigxml:type string="p.int" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="op" >
|
|
<swigxml:type string="p.f(int,int).int" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:storage string="extern" />
|
|
<swigxml:type string="p.int" />
|
|
</c:function>
|
|
<c:variable name="my_foo" >
|
|
<swigxml:storage string="extern" />
|
|
<swigxml:type string="double" />
|
|
</c:variable>
|
|
<c:function name="my_void" >
|
|
<swigxml:type string="void" />
|
|
</c:function>
|
|
<c:function name="my_empty" >
|
|
<swigxml:type string="int" />
|
|
</c:function>
|
|
<c:variable name="my_dutch" >
|
|
<swigxml:value string="1.0" />
|
|
<swigxml:type string="q(const).double" />
|
|
</c:variable>
|
|
<c:class name="my_union" >
|
|
<swigxml:child >
|
|
<c:variable name="my_iii" >
|
|
<swigxml:type string="int" />
|
|
</c:variable>
|
|
<c:variable name="my_ccc" >
|
|
<swigxml:type string="char" />
|
|
</c:variable>
|
|
</swigxml:child>
|
|
<swigxml:classtype string="union" />
|
|
<swigxml:namespace string="my_union" />
|
|
</c:class>
|
|
<c:class name="my_struct" >
|
|
<swigxml:child >
|
|
<c:access name="public" />
|
|
<c:destructor name="my_struct" >
|
|
<swigxml:storage string="virtual" />
|
|
</c:destructor>
|
|
<c:function name="my_foo" >
|
|
<swigxml:type string="int" />
|
|
</c:function>
|
|
<c:access name="protected" />
|
|
<c:variable name="my_bar" >
|
|
<swigxml:type string="int" />
|
|
</c:variable>
|
|
<c:variable name="x" >
|
|
<swigxml:type string="double" />
|
|
</c:variable>
|
|
<c:variable name="y" >
|
|
<swigxml:type string="double" />
|
|
</c:variable>
|
|
<c:function name="area" >
|
|
<swigxml:abstract string="1" />
|
|
<swigxml:storage string="virtual" />
|
|
<swigxml:type string="double" />
|
|
</c:function>
|
|
<c:variable name="nshapes" >
|
|
<swigxml:storage string="static" />
|
|
<swigxml:type string="int" />
|
|
</c:variable>
|
|
</swigxml:child>
|
|
<swigxml:classtype string="struct" />
|
|
<swigxml:namespace string="my_struct" />
|
|
</c:class>
|
|
<c:class name="my_class" >
|
|
<swigxml:child >
|
|
<c:access name="public" />
|
|
<c:function name="my_class" >
|
|
<swigxml:parms >
|
|
<swigxml:parm name="c" >
|
|
<swigxml:type string="char" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:type string="int" />
|
|
</c:function>
|
|
<c:access name="private" />
|
|
<c:destructor name="my_class" />
|
|
<c:function name="my_func" >
|
|
<swigxml:parms >
|
|
<swigxml:parm >
|
|
<swigxml:type string="my_class" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="x" >
|
|
<swigxml:type string="p.p.char" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="y" >
|
|
<swigxml:type string="a().int" />
|
|
</swigxml:parm>
|
|
<swigxml:parm name="r" >
|
|
<swigxml:type string="r.q(const).int" />
|
|
</swigxml:parm>
|
|
</swigxml:parms>
|
|
<swigxml:storage string="virtual" />
|
|
<swigxml:type string="p.q(const).int" />
|
|
</c:function>
|
|
<c:variable name="my_foo" >
|
|
<swigxml:type string="a(128).double" />
|
|
</c:variable>
|
|
<c:variable name="i" >
|
|
<swigxml:type string="q(const).my_int" />
|
|
</c:variable>
|
|
</swigxml:child>
|
|
<swigxml:classtype string="class" />
|
|
<swigxml:bases >
|
|
<swigxml:item name="my_struct" />
|
|
<swigxml:item name="my_union" />
|
|
</swigxml:bases>
|
|
<swigxml:namespace string="my_class" />
|
|
</c:class>
|
|
<c:typedef name="my_int" >
|
|
<swigxml:type string="int" />
|
|
</c:typedef>
|
|
</swigxml:child>
|
|
<swigxml:type string="include" />
|
|
</swig:file>
|
|
</swigxml:child>
|
|
</swig:top>
|
|
</swigxml:swig>
|