Home | History | Annotate | Download | only in csharp
      1 /* -----------------------------------------------------------------------------
      2  * enums.swg
      3  *
      4  * Include this file in order for C/C++ enums to be wrapped by proper C# enums.
      5  * Note that the PINVOKE layer handles the enum as an int.
      6  * ----------------------------------------------------------------------------- */
      7 
      8 // const enum SWIGTYPE & typemaps
      9 %typemap(ctype) const enum SWIGTYPE & "int"
     10 %typemap(imtype) const enum SWIGTYPE & "int"
     11 %typemap(cstype) const enum SWIGTYPE & "$*csclassname"
     12 
     13 %typemap(in) const enum SWIGTYPE & ($*1_ltype temp)
     14 %{ temp = ($*1_ltype)$input;
     15    $1 = &temp; %}
     16 %typemap(out) const enum SWIGTYPE & %{ $result = *$1; %}
     17 
     18 %typemap(directorout,warning=SWIGWARN_TYPEMAP_THREAD_UNSAFE_MSG) const enum SWIGTYPE &
     19 %{ static $*1_ltype temp = ($*1_ltype)$input;
     20    $result = &temp; %}
     21 %typemap(directorin) const enum SWIGTYPE & "$input = $1;"
     22 %typemap(csdirectorin) const enum SWIGTYPE & "($*csclassname)$iminput"
     23 %typemap(csdirectorout) const enum SWIGTYPE & "(int)$cscall"
     24 
     25 %typecheck(SWIG_TYPECHECK_POINTER) const enum SWIGTYPE & ""
     26 
     27 %typemap(throws, canthrow=1) const enum SWIGTYPE &
     28 %{ (void)$1;
     29    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ $1_type exception thrown");
     30    return $null; %}
     31 
     32 %typemap(csin) const enum SWIGTYPE & "(int)$csinput"
     33 %typemap(csout, excode=SWIGEXCODE) const enum SWIGTYPE & {
     34     $*csclassname ret = ($*csclassname)$imcall;$excode
     35     return ret;
     36   }
     37 
     38 %typemap(csvarout, excode=SWIGEXCODE2) const enum SWIGTYPE & %{
     39     get {
     40       $*csclassname ret = ($*csclassname)$imcall;$excode
     41       return ret;
     42     } %}
     43 
     44 
     45 // enum SWIGTYPE typemaps
     46 %typemap(ctype) enum SWIGTYPE "int"
     47 %typemap(imtype) enum SWIGTYPE "int"
     48 %typemap(cstype) enum SWIGTYPE "$csclassname"
     49 
     50 %typemap(in) enum SWIGTYPE %{ $1 = ($1_ltype)$input; %}
     51 %typemap(out) enum SWIGTYPE %{ $result = $1; %}
     52 
     53 %typemap(directorout) enum SWIGTYPE  %{ $result = ($1_ltype)$input; %}
     54 %typemap(directorin) enum SWIGTYPE "$input = $1;"
     55 %typemap(csdirectorin) enum SWIGTYPE "($csclassname)$iminput"
     56 %typemap(csdirectorout) enum SWIGTYPE "(int)$cscall"
     57 
     58 %typecheck(SWIG_TYPECHECK_POINTER) enum SWIGTYPE ""
     59 
     60 %typemap(throws, canthrow=1) enum SWIGTYPE
     61 %{ (void)$1;
     62    SWIG_CSharpSetPendingException(SWIG_CSharpApplicationException, "C++ $1_type exception thrown");
     63    return $null; %}
     64 
     65 %typemap(csin) enum SWIGTYPE "(int)$csinput"
     66 %typemap(csout, excode=SWIGEXCODE) enum SWIGTYPE {
     67     $csclassname ret = ($csclassname)$imcall;$excode
     68     return ret;
     69   }
     70 
     71 %typemap(csvarout, excode=SWIGEXCODE2) enum SWIGTYPE %{
     72     get {
     73       $csclassname ret = ($csclassname)$imcall;$excode
     74       return ret;
     75     } %}
     76 
     77 %typemap(csbase)           enum SWIGTYPE ""
     78 %typemap(csclassmodifiers) enum SWIGTYPE "public enum"
     79 %typemap(cscode)           enum SWIGTYPE ""
     80 %typemap(csimports)        enum SWIGTYPE ""
     81 %typemap(csinterfaces)     enum SWIGTYPE ""
     82 
     83 %typemap(csbody) enum SWIGTYPE ""
     84 
     85 %csenum(proper);
     86 
     87