diff options
Diffstat (limited to 'Lib/typemaps/valtypes.swg')
-rw-r--r-- | Lib/typemaps/valtypes.swg | 135 |
1 files changed, 78 insertions, 57 deletions
diff --git a/Lib/typemaps/valtypes.swg b/Lib/typemaps/valtypes.swg index 290370f88..973a8723e 100644 --- a/Lib/typemaps/valtypes.swg +++ b/Lib/typemaps/valtypes.swg @@ -2,68 +2,89 @@ * Value typemaps (Type, const Type&) for value types, such as * fundamental types (int, double), that define the AsVal/From * methods. + * + * To apply them, just use one of the following macros: + * + * %typemaps_from(FromMeth, FromFrag, Type) + * %typemaps_asval(CheckCode, AsValMeth, AsValFrag, Type) + * %typemaps_asvalfrom(CheckCode, AsValMeth, FromMeth, AsValFrag, FromFrag, Type) + * + * or the simpler and normalize form: + * + * %typemaps_asvalfromn(CheckCode, Type) + * + * Also, you can use the individual typemap definitions: + * + * %value_in_typemap(asval_meth,frag,Type) + * %value_varin_typemap(asval_meth,frag,Type) + * %value_typecheck_typemap(checkcode,asval_meth,frag,Type) + * %value_directorout_typemap(asval_meth,frag,Type) + * + * %value_out_typemap(from_meth,frag,Type) + * %value_varout_typemap(from_meth,frag,Type) + * %value_constcode_typemap(from_meth,frag,Type) + * %value_directorin_typemap(from_meth,frag,Type) + * %value_throws_typemap(from_meth,frag,Type) + * *---------------------------------------------------------------------*/ /* in */ -%define SWIG_VALUE_IN_TYPEMAP(asval_meth,frag,Type...) +%define %value_in_typemap(asval_meth,frag,Type...) %typemap(in,noblock=1,fragment=frag) Type (Type val, int ecode = 0) { ecode = asval_meth($input, &val); if (ecode != SWIG_OK) { - SWIG_arg_fail(ecode, "$ltype", $argnum); - } else { - $1 = SWIG_static_cast(val,$ltype); - } + %argument_fail(ecode, "$ltype", $argnum); + } + $1 = %static_cast(val,$ltype); } %typemap(in,noblock=1,fragment=frag) const Type & ($*ltype temp, Type val, int ecode = 0) { ecode = asval_meth($input, &val); if (ecode != SWIG_OK) { - SWIG_arg_fail(ecode, "$*ltype", $argnum); - } else { - temp = SWIG_static_cast(val, $*ltype); - $1 = &temp; - } + %argument_fail(ecode, "$*ltype", $argnum); + } + temp = %static_cast(val, $*ltype); + $1 = &temp; } %enddef /* out */ -%define SWIG_VALUE_OUT_TYPEMAP(from_meth,frag,Type...) +%define %value_out_typemap(from_meth,frag,Type...) %typemap(out,noblock=1,fragment=frag) Type, const Type { - SWIG_set_result(from_meth(SWIG_static_cast($1,Type))); + %set_output(from_meth(%static_cast($1,Type))); } %typemap(out,noblock=1,fragment=frag) const Type& { - SWIG_set_result(from_meth(SWIG_static_cast(*$1,Type))); + %set_output(from_meth(%static_cast(*$1,Type))); } %enddef /* varin */ -%define SWIG_VALUE_VARIN_TYPEMAP(asval_meth,frag,Type...) +%define %value_varin_typemap(asval_meth,frag,Type...) %typemap(varin,noblock=1,fragment=frag) Type { Type val; int res = asval_meth($input, &val); if (res != SWIG_OK) { - SWIG_var_fail(res, "$type", "$name"); - } else { - $1 = SWIG_static_cast(val,$ltype); + %variable_fail(res, "$type", "$name"); } + $1 = %static_cast(val,$ltype); } %enddef /* varout */ -%define SWIG_VALUE_VAROUT_TYPEMAP(from_meth,frag,Type...) +%define %value_varout_typemap(from_meth,frag,Type...) %typemap(varout,noblock=1,fragment=frag) Type, const Type& { - $result = from_meth(SWIG_static_cast($1,$basetype)); + %set_varoutput(from_meth(%static_cast($1,$basetype))); } %enddef /* constant installation code */ -%define SWIG_VALUE_CONSTCODE_TYPEMAP(from_meth,frag,Type...) +%define %value_constcode_typemap(from_meth,frag,Type...) %typemap(constcode,noblock=1,fragment=frag) Type { - SWIG_set_constant("$symname", from_meth(SWIG_static_cast($value,Type))); + %set_constant("$symname", from_meth(%static_cast($value,Type))); } %enddef @@ -72,41 +93,41 @@ /* directorin */ -%define SWIG_VALUE_DIRECTORIN_TYPEMAP(from_meth,frag,Type...) +%define %value_directorin_typemap(from_meth,frag,Type...) %typemap(directorin,noblock=1,fragment=frag) Type *DIRECTORIN { - $input = from_meth(SWIG_static_cast(*$1_name,Type)); + $input = from_meth(%static_cast(*$1_name,Type)); } %typemap(directorin,noblock=1,fragment=frag) Type, const Type& { - $input = from_meth(SWIG_static_cast($1_name,Type)); + $input = from_meth(%static_cast($1_name,Type)); } %enddef /* directorout */ -%define SWIG_VALUE_DIRECTOROUT_TYPEMAP(asval_meth,frag,Type...) +%define %value_directorout_typemap(asval_meth,frag,Type...) %typemap(directorargout,noblock=1,fragment=frag) Type *DIRECTOROUT { Type val; int res = asval_meth($input, &val); if (res != SWIG_OK) { - SWIG_dout_fail(res, "$type"); + %dirout_fail(res, "$type"); } - *$result = SWIG_static_cast(val, $type); + *$result = %static_cast(val, $type); } %typemap(directorout,noblock=1,fragment=frag) Type { Type val; int res = asval_meth($input, &val); if (res != SWIG_OK) { - SWIG_dout_fail(res, "$type"); + %dirout_fail(res, "$type"); } - $result = SWIG_static_cast(val,$type); + $result = %static_cast(val,$type); } %typemap(directorout,noblock=1,fragment=frag,warning=SWIG_WARN_TYPEMAP_THREAD_UNSAFE) const Type& { Type val; int res = asval_meth($input, &val); if (res != SWIG_OK) { - SWIG_dout_fail(res, "$type"); + %dirout_fail(res, "$type"); } - static $basetype temp = SWIG_static_cast(val, $basetype); + static $basetype temp = %static_cast(val, $basetype); $result = &temp; } %typemap(directorout,fragment=frag) Type &DIRECTOROUT = Type @@ -114,23 +135,23 @@ #else -#define SWIG_VALUE_DIRECTORIN_TYPEMAP(from_meth,frag,Type...) -#define SWIG_VALUE_DIRECTOROUT_TYPEMAP(asval_meth,frag,Type...) +#define %value_directorin_typemap(from_meth,frag,Type...) +#define %value_directorout_typemap(asval_meth,frag,Type...) #endif /* SWIG_DIRECTOR_TYPEMAPS */ /* throws */ -%define SWIG_VALUE_THROWS_TYPEMAP(from_meth,frag,Type...) +%define %value_throws_typemap(from_meth,frag,Type...) %typemap(throws,noblock=1,fragment=frag) Type { - SWIG_raise(from_meth(SWIG_static_cast($1,Type)), "$type", 0); + %raise(from_meth(%static_cast($1,Type)), "$type", 0); } %enddef /* typecheck */ -%define SWIG_VALUE_TYPECHECK_TYPEMAP(check,asval_meth,frag,Type...) +%define %value_typecheck_typemap(check,asval_meth,frag,Type...) %typemap(typecheck,noblock=1,precedence=check,fragment=frag) Type, const Type& { $1 = (asval_meth($input, 0) == SWIG_OK); } @@ -139,25 +160,25 @@ /*--------------------------------------------------------------------- * typemap definition for types with AsVal methods *---------------------------------------------------------------------*/ -%define %typemap_asval(CheckCode, AsValMeth, AsValFrag, Type...) - SWIG_VALUE_IN_TYPEMAP(SWIG_arg(AsValMeth), SWIG_arg(AsValFrag), Type); - SWIG_VALUE_VARIN_TYPEMAP(SWIG_arg(AsValMeth), SWIG_arg(AsValFrag), Type); - SWIG_VALUE_DIRECTOROUT_TYPEMAP(SWIG_arg(AsValMeth), SWIG_arg(AsValFrag), Type); - SWIG_VALUE_TYPECHECK_TYPEMAP(SWIG_arg(CheckCode), SWIG_arg(AsValMeth), SWIG_arg(AsValFrag), Type); - SWIG_VALUE_INPUT_TYPEMAP(SWIG_arg(CheckCode), SWIG_arg(AsValMeth), SWIG_arg(AsValFrag), Type); +%define %typemaps_asval(CheckCode, AsValMeth, AsValFrag, Type...) + %value_in_typemap(%arg(AsValMeth), %arg(AsValFrag), Type); + %value_varin_typemap(%arg(AsValMeth), %arg(AsValFrag), Type); + %value_directorout_typemap(%arg(AsValMeth), %arg(AsValFrag), Type); + %value_typecheck_typemap(%arg(CheckCode), %arg(AsValMeth), %arg(AsValFrag), Type); + %value_input_typemap(%arg(CheckCode), %arg(AsValMeth), %arg(AsValFrag), Type); %enddef /*--------------------------------------------------------------------- * typemap definition for types with from method *---------------------------------------------------------------------*/ -%define %typemap_from(FromMeth, FromFrag, Type...) - SWIG_VALUE_OUT_TYPEMAP(SWIG_arg(FromMeth), SWIG_arg(FromFrag), Type); - SWIG_VALUE_VAROUT_TYPEMAP(SWIG_arg(FromMeth), SWIG_arg(FromFrag), Type); - SWIG_VALUE_CONSTCODE_TYPEMAP(SWIG_arg(FromMeth), SWIG_arg(FromFrag), Type); - SWIG_VALUE_DIRECTORIN_TYPEMAP(SWIG_arg(FromMeth), SWIG_arg(FromFrag), Type); - SWIG_VALUE_THROWS_TYPEMAP(SWIG_arg(FromMeth), SWIG_arg(FromFrag), Type); - SWIG_VALUE_OUTPUT_TYPEMAP(SWIG_arg(FromMeth), SWIG_arg(FromFrag), Type); +%define %typemaps_from(FromMeth, FromFrag, Type...) + %value_out_typemap(%arg(FromMeth), %arg(FromFrag), Type); + %value_varout_typemap(%arg(FromMeth), %arg(FromFrag), Type); + %value_constcode_typemap(%arg(FromMeth), %arg(FromFrag), Type); + %value_directorin_typemap(%arg(FromMeth), %arg(FromFrag), Type); + %value_throws_typemap(%arg(FromMeth), %arg(FromFrag), Type); + %value_output_typemap(%arg(FromMeth), %arg(FromFrag), Type); %enddef @@ -165,22 +186,22 @@ * typemap definition for types with alval/from method *---------------------------------------------------------------------*/ -%define %typemap_asvalfrom(CheckCode, AsValMeth, FromMeth, +%define %typemaps_asvalfrom(CheckCode, AsValMeth, FromMeth, AsValFrag, FromFrag, Type...) - %typemap_asval(SWIG_arg(CheckCode), SWIG_arg(AsValMeth), SWIG_arg(AsValFrag), Type); - %typemap_from(SWIG_arg(FromMeth), SWIG_arg(FromFrag), Type); - SWIG_VALUE_INOUT_TYPEMAP(Type); + %typemaps_asval(%arg(CheckCode), %arg(AsValMeth), %arg(AsValFrag), Type); + %typemaps_from(%arg(FromMeth), %arg(FromFrag), Type); + %value_inout_typemap(Type); %enddef /*--------------------------------------------------------------------- * typemap definition for types with for 'normalized' asval/from methods *---------------------------------------------------------------------*/ -%define %typemap_asvalfromn(CheckCode, Type...) - %typemap_asvalfrom(SWIG_arg(CheckCode), +%define %typemaps_asvalfromn(CheckCode, Type...) + %typemaps_asvalfrom(%arg(CheckCode), SWIG_AsVal(Type), SWIG_From(Type), - SWIG_arg(SWIG_AsVal_frag(Type)), - SWIG_arg(SWIG_From_frag(Type)), + %arg(SWIG_AsVal_frag(Type)), + %arg(SWIG_From_frag(Type)), Type); %enddef |