1 /* ------------------------------------------------------------ 2 * Enums mapped as integer values 3 * ------------------------------------------------------------ */ 4 5 %apply int { enum SWIGTYPE }; 6 %apply const int& { const enum SWIGTYPE& }; 7 8 %typemap(in,fragment=SWIG_AsVal_frag(int),noblock=1) const enum SWIGTYPE& (int val, int ecode, $basetype temp) { 9 ecode = SWIG_AsVal(int)($input, &val); 10 if (!SWIG_IsOK(ecode)) { 11 %argument_fail(ecode, "$type", $symname, $argnum); 12 } else { 13 temp = %static_cast(val,$basetype); 14 $1 = &temp; 15 } 16 } 17 18 %typemap(varin,fragment=SWIG_AsVal_frag(int),noblock=1) enum SWIGTYPE { 19 if (sizeof(int) != sizeof($1)) { 20 %variable_fail(SWIG_AttributeError,"$type", "arch, read-only $name"); 21 } else { 22 int ecode = SWIG_AsVal(int)($input, %reinterpret_cast(&$1,int*)); 23 if (!SWIG_IsOK(ecode)) { 24 %variable_fail(ecode, "$type", "$name"); 25 } 26 } 27 } 28 29