123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785 |
- /* -----------------------------------------------------------------------------
- * modula3.swg
- *
- * Modula3 typemaps
- * ----------------------------------------------------------------------------- */
- %include <modula3head.swg>
- /* The ctype, m3rawtype and m3wraptype typemaps work together and so there should be one of each.
- * The ctype typemap contains the C type used in the signature of C wrappers for C++ functions.
- * The m3rawtype typemap contains the M3 type used in the raw interface.
- * The m3rawintype typemap contains the M3 type used as function argument.
- * The m3rawrettype typemap contains the M3 type used as return value.
- * The m3wraptype typemap contains the M3 type used in the M3 type wrapper classes and module class. */
- /* Primitive types */
- %typemap(ctype) bool, const bool & "bool"
- %typemap(ctype) char, const char & "char"
- %typemap(ctype) signed char, const signed char & "signed char"
- %typemap(ctype) unsigned char, const unsigned char & "unsigned short"
- %typemap(ctype) short, const short & "short"
- %typemap(ctype) unsigned short, const unsigned short & "unsigned short"
- %typemap(ctype) int, const int & "int"
- %typemap(ctype) unsigned int, const unsigned int & "unsigned int"
- %typemap(ctype) long, const long & "long"
- %typemap(ctype) unsigned long, const unsigned long & "unsigned long"
- %typemap(ctype) long long, const long long & "long long"
- %typemap(ctype) unsigned long long, const unsigned long long & "unsigned long long"
- %typemap(ctype) float, const float & "float"
- %typemap(ctype) double, const double & "double"
- %typemap(ctype) char * "char *"
- %typemap(ctype) void "void"
- %typemap(m3rawtype) bool, const bool & "BOOLEAN"
- %typemap(m3rawtype) char, const char & "C.char"
- %typemap(m3rawtype) signed char, const signed char & "C.signed_char"
- %typemap(m3rawtype) unsigned char, const unsigned char & "C.unsigned_char"
- %typemap(m3rawtype) short, const short & "C.short"
- %typemap(m3rawtype) unsigned short, const unsigned short & "C.unsigned_short"
- %typemap(m3rawtype) int, const int & "C.int"
- %typemap(m3rawtype) unsigned int, const unsigned int & "C.unsigned_int"
- %typemap(m3rawtype) long, const long & "C.long"
- %typemap(m3rawtype) unsigned long, const unsigned long & "C.unsigned_long"
- %typemap(m3rawtype) long long, const long long & "C.long_long"
- %typemap(m3rawtype) unsigned long long, const unsigned long long & "C.unsigned_long_long"
- %typemap(m3rawtype) float, const float & "C.float"
- %typemap(m3rawtype) double, const double & "C.double"
- %typemap(m3rawtype) long double, const long double & "C.long_double"
- %typemap(m3rawtype) char * "C.char_star"
- %typemap(m3rawtype) void ""
- %typemap(m3rawtype) FILE "Cstdio.FILE";
- %typemap(m3rawtype) FILE * "Cstdio.FILE_star";
- %typemap(m3rawintype) bool *, bool &, bool "BOOLEAN"
- %typemap(m3rawintype) char *, char &, char "C.char"
- %typemap(m3rawintype) signed char *, signed char &, signed char "C.signed_char"
- %typemap(m3rawintype) unsigned char *, unsigned char &, unsigned char "C.unsigned_char"
- %typemap(m3rawintype) short *, short &, short "C.short"
- %typemap(m3rawintype) unsigned short *, unsigned short &, unsigned short "C.unsigned_short"
- %typemap(m3rawintype) int *, int &, int "C.int"
- %typemap(m3rawintype) unsigned int *, unsigned int &, unsigned int "C.unsigned_int"
- %typemap(m3rawintype) long *, long &, long "C.long"
- %typemap(m3rawintype) unsigned long *, unsigned long &, unsigned long "C.unsigned_long"
- %typemap(m3rawintype) long long *, long long &, long long "C.long_long"
- %typemap(m3rawintype) unsigned long long *, unsigned long long &, unsigned long long "C.unsigned_long_long"
- %typemap(m3rawintype) float *, float &, float "C.float"
- %typemap(m3rawintype) double *, double &, double "C.double"
- %typemap(m3rawintype) long double *, long double &, long double "C.long_double"
- %typemap(m3rawintype) char * "C.char_star"
- %typemap(m3rawintype) void ""
- %typemap(m3rawintype) void * "ADDRESS"
- %typemap(m3rawintype) FILE "Cstdio.FILE";
- %typemap(m3rawintype) FILE * "Cstdio.FILE_star";
- %typemap(m3rawinmode) char *, void *, FILE * ""
- %typemap(m3rawrettype) bool, const bool & "BOOLEAN"
- %typemap(m3rawrettype) char, const char & "C.char"
- %typemap(m3rawrettype) signed char, const signed char & "C.signed_char"
- %typemap(m3rawrettype) unsigned char, const unsigned char & "C.unsigned_char"
- %typemap(m3rawrettype) short, const short & "C.short"
- %typemap(m3rawrettype) unsigned short, const unsigned short & "C.unsigned_short"
- %typemap(m3rawrettype) int, const int & "C.int"
- %typemap(m3rawrettype) unsigned int, const unsigned int & "C.unsigned_int"
- %typemap(m3rawrettype) long, const long & "C.long"
- %typemap(m3rawrettype) unsigned long, const unsigned long & "C.unsigned_long"
- %typemap(m3rawrettype) long long, const long long & "C.long_long"
- %typemap(m3rawrettype) unsigned long long, const unsigned long long & "C.unsigned_long_long"
- %typemap(m3rawrettype) float, const float & "C.float"
- %typemap(m3rawrettype) double, const double & "C.double"
- %typemap(m3rawrettype) long double, const long double & "C.long_double"
- %typemap(m3rawrettype) char * "C.char_star"
- %typemap(m3rawrettype) void ""
- %typemap(m3rawrettype) void * "ADDRESS"
- %typemap(m3rawrettype) FILE "Cstdio.FILE";
- %typemap(m3rawrettype) FILE * "Cstdio.FILE_star";
- %typemap("m3rawtype:import")
- char, const char &,
- signed char, const signed char &,
- unsigned char, const unsigned char &,
- short, const short &,
- unsigned short, const unsigned short &,
- int, const int &,
- unsigned int, const unsigned int &,
- long, const long &,
- unsigned long, const unsigned long &,
- long long, const long long &,
- unsigned long long, const unsigned long long &,
- float, const float &,
- double, const double &,
- long double, const long double &,
- char *
- "Ctypes AS C"
- %typemap("m3rawintype:import")
- char, const char &,
- signed char, const signed char &,
- unsigned char, const unsigned char &,
- short, const short &,
- unsigned short, const unsigned short &,
- int, const int &,
- unsigned int, const unsigned int &,
- long, const long &,
- unsigned long, const unsigned long &,
- long long, const long long &,
- unsigned long long, const unsigned long long &,
- float, const float &,
- double, const double &,
- long double, const long double &,
- char *
- "Ctypes AS C"
- %typemap("m3rawrettype:import")
- char, const char &,
- signed char, const signed char &,
- unsigned char, const unsigned char &,
- short, const short &,
- unsigned short, const unsigned short &,
- int, const int &,
- unsigned int, const unsigned int &,
- long, const long &,
- unsigned long, const unsigned long &,
- long long, const long long &,
- unsigned long long, const unsigned long long &,
- float, const float &,
- double, const double &,
- long double, const long double &,
- char *
- "Ctypes AS C"
- %typemap("m3rawtype:import")
- FILE, FILE *
- "Cstdio";
- %typemap("m3rawintype:import")
- FILE, FILE *
- "Cstdio";
- %typemap("m3rawrettype:import")
- FILE, FILE *
- "Cstdio";
- %typemap(m3wraptype) bool, const bool & "BOOLEAN"
- %typemap(m3wraptype) char, const char & "CHAR"
- %typemap(m3wraptype) signed char, const signed char & "CHAR"
- %typemap(m3wraptype) unsigned char, const unsigned char & "CHAR"
- %typemap(m3wraptype) short, const short & "Integer16.T"
- %typemap(m3wraptype) unsigned short, const unsigned short & "Cardinal16.T"
- %typemap(m3wraptype) int, const int & "INTEGER"
- %typemap(m3wraptype) unsigned int, const unsigned int & "CARDINAL"
- %typemap(m3wraptype) long, const long & "Integer32.T"
- %typemap(m3wraptype) unsigned long, const unsigned long & "Cardinal32.T"
- %typemap(m3wraptype) long long, const long long & "Integer64.T"
- %typemap(m3wraptype) unsigned long long, const unsigned long long & "Cardinal64.T"
- %typemap(m3wraptype) float, const float & "REAL"
- %typemap(m3wraptype) double, const double & "LONGREAL"
- %typemap(m3wraptype) long double, const long double & "EXTENDED"
- %typemap(m3wraptype) char * "TEXT"
- %typemap(m3wraptype) void ""
- %typemap(m3wraptype) FILE "Cstdio.FILE";
- %typemap(m3wraptype) FILE * "Cstdio.FILE_star";
- %typemap(m3wrapintype) bool, const bool *, const bool & "BOOLEAN"
- %typemap(m3wrapintype) char, const char *, const char & "CHAR"
- %typemap(m3wrapintype) signed char, const signed char *, const signed char & "CHAR"
- %typemap(m3wrapintype) unsigned char, const unsigned char *, const unsigned char & "CHAR"
- %typemap(m3wrapintype) short, const short *, const short & "INTEGER"
- %typemap(m3wrapintype) unsigned short, const unsigned short *, const unsigned short & "CARDINAL"
- %typemap(m3wrapintype) int, const int *, const int & "INTEGER"
- %typemap(m3wrapintype) unsigned int, const unsigned int *, const unsigned int & "CARDINAL"
- %typemap(m3wrapintype) long, const long *, const long & "INTEGER"
- %typemap(m3wrapintype) unsigned long, const unsigned long *, const unsigned long & "CARDINAL"
- %typemap(m3wrapintype) long long, const long long *, const long long & "INTEGER"
- %typemap(m3wrapintype) unsigned long long, const unsigned long long *, const unsigned long long & "CARDINAL"
- %typemap(m3wrapintype) float, const float *, const float & "REAL"
- %typemap(m3wrapintype) double, const double *, const double & "LONGREAL"
- %typemap(m3wrapintype) long double, const long double *, const long double & "EXTENDED"
- %typemap(m3wrapintype) const char *, const char [] "TEXT"
- %typemap(m3wrapintype,numinputs=0) void ""
- %typemap(m3wrapintype) FILE "Cstdio.FILE";
- %typemap(m3wrapintype) FILE * "Cstdio.FILE_star";
- %typemap(m3wrapouttype) bool, bool *, bool & "BOOLEAN"
- %typemap(m3wrapouttype) char, char *, char & "CHAR"
- %typemap(m3wrapouttype) signed char, signed char *, signed char & "CHAR"
- %typemap(m3wrapouttype) unsigned char, unsigned char *, unsigned char & "CHAR"
- %typemap(m3wrapouttype) short, short *, short & "INTEGER"
- %typemap(m3wrapouttype) unsigned short, unsigned short *, unsigned short & "CARDINAL"
- %typemap(m3wrapouttype) int, int *, int & "INTEGER"
- %typemap(m3wrapouttype) unsigned int, unsigned int *, unsigned int & "CARDINAL"
- %typemap(m3wrapouttype) long, long *, long & "INTEGER"
- %typemap(m3wrapouttype) unsigned long, unsigned long *, unsigned long & "CARDINAL"
- %typemap(m3wrapouttype) long long, long long *, long long & "INTEGER"
- %typemap(m3wrapouttype) unsigned long long, unsigned long long *, unsigned long long & "CARDINAL"
- %typemap(m3wrapouttype) float, float *, float & "REAL"
- %typemap(m3wrapouttype) double, double *, double & "LONGREAL"
- %typemap(m3wrapouttype) long double, long double *, long double & "EXTENDED"
- %typemap(m3wrapouttype) char *, char [] "TEXT"
- %typemap(m3wrapouttype,numinputs=0) void ""
- %typemap(m3wraprettype) bool, const bool & "BOOLEAN"
- %typemap(m3wraprettype) char, const char & "CHAR"
- %typemap(m3wraprettype) signed char, const signed char & "CHAR"
- %typemap(m3wraprettype) unsigned char, const unsigned char & "CHAR"
- %typemap(m3wraprettype) short, const short & "INTEGER"
- %typemap(m3wraprettype) unsigned short, const unsigned short & "CARDINAL"
- %typemap(m3wraprettype) int, const int & "INTEGER"
- %typemap(m3wraprettype) unsigned int, const unsigned int & "CARDINAL"
- %typemap(m3wraprettype) long, const long & "INTEGER"
- %typemap(m3wraprettype) unsigned long, const unsigned long & "CARDINAL"
- %typemap(m3wraprettype) long long, const long long & "INTEGER"
- %typemap(m3wraprettype) unsigned long long, const unsigned long long & "CARDINAL"
- %typemap(m3wraprettype) float, const float & "REAL"
- %typemap(m3wraprettype) double, const double & "LONGREAL"
- %typemap(m3wraprettype) long double, const long double & "EXTENDED"
- %typemap(m3wraprettype) char * "TEXT"
- %typemap(m3wraprettype) void ""
- %typemap(m3wraprettype) FILE "Cstdio.FILE";
- %typemap(m3wraprettype) FILE * "Cstdio.FILE_star";
- %typemap(ctype) char[ANY] "char *"
- %typemap(m3rawtype) char[ANY] "C.char_star"
- %typemap(m3rawintype) char[ANY] "C.char_star"
- %typemap(m3rawrettype) char[ANY] "C.char_star"
- %typemap(m3wraptype) char[ANY] "TEXT"
- %typemap(m3wrapintype) char[ANY] "TEXT"
- %typemap(m3wrapouttype) char[ANY] "TEXT"
- %typemap(m3wraprettype) char[ANY] "TEXT"
- %typemap(m3wrapinmode) const char * %{%}
- %typemap(m3wrapargvar) const char * %{$1 : C.char_star;%}
- %typemap(m3wrapinconv) const char * %{$1 := M3toC.SharedTtoS($1_name);%}
- %typemap(m3wrapfreearg) const char * %{M3toC.FreeSharedS($1_name,$1);%}
- %typemap(m3wrapargraw) const char * %{$1%}
- %typemap("m3wrapargvar:import") const char * "Ctypes AS C"
- %typemap("m3wrapinconv:import") const char * "M3toC"
- %typemap("m3wrapfreearg:import") const char * "M3toC"
- %typemap(m3wrapretvar) char * %{result : C.char_star;%}
- %typemap(m3wrapretraw) char * %{result%}
- %typemap(m3wrapretconv) char * %{M3toC.CopyStoT(result)%}
- %typemap("m3wrapretvar:import") char * "Ctypes AS C"
- %typemap("m3wrapretconv:import") char * "M3toC"
- %typemap(m3wrapinmode) FILE * %{%}
- %typemap("m3wraptype:import")
- FILE, FILE *
- "Cstdio";
- %typemap("m3wrapintype:import")
- FILE, FILE *
- "Cstdio";
- %typemap("m3wraprettype:import")
- FILE, FILE *
- "Cstdio";
- /* Composed types */
- %typemap(ctype) SWIGTYPE "$1_type"
- %typemap(m3rawtype) SWIGTYPE "$1_basetype"
- %typemap(m3rawrettype) SWIGTYPE "UNTRACED REF $1_basetype"
- %typemap(m3wraptype) SWIGTYPE "$1_basetype"
- %typemap(m3wrapintype) SWIGTYPE "$1_basetype"
- %typemap(m3wrapouttype) SWIGTYPE "$1_basetype"
- %typemap(m3wraprettype) SWIGTYPE "$1_basetype"
- %typemap(ctype) SWIGTYPE [] "$1_type"
- %typemap(m3rawtype) const SWIGTYPE [] "UNTRACED REF ARRAY INTEGER OF $1_basetype"
- %typemap(m3rawtype) SWIGTYPE [] "UNTRACED REF ARRAY INTEGER OF $1_basetype"
- %typemap(m3rawintype) const SWIGTYPE [] "(*ARRAY OF*) $1_basetype"
- %typemap(m3rawinmode) const SWIGTYPE [] "READONLY"
- %typemap(m3rawintype) SWIGTYPE [] "(*ARRAY OF*) $1_basetype"
- %typemap(m3rawinmode) SWIGTYPE [] "VAR"
- %typemap(m3rawrettype) const SWIGTYPE [] "UNTRACED REF ARRAY INTEGER OF $1_basetype"
- %typemap(m3rawrettype) SWIGTYPE [] "UNTRACED REF ARRAY INTEGER OF $1_basetype"
- %typemap(m3wraptype) SWIGTYPE [] "$1_basetype"
- %typemap(m3wrapintype) const SWIGTYPE [] "ARRAY OF $1_basetype"
- %typemap(m3wrapinmode) const SWIGTYPE [] "READONLY"
- %typemap(m3wrapintype) SWIGTYPE [] "ARRAY OF $1_basetype"
- %typemap(m3wrapinmode) SWIGTYPE [] "VAR"
- %typemap(m3wrapouttype) SWIGTYPE [] "ARRAY OF $1_basetype"
- %typemap(m3wraprettype) SWIGTYPE [] "REF ARRAY OF $1_basetype"
- %typemap(ctype) SWIGTYPE * "$1_type"
- %typemap(m3rawtype) const SWIGTYPE * "UNTRACED REF $1_basetype"
- %typemap(m3rawtype) SWIGTYPE * "UNTRACED REF $1_basetype"
- %typemap(m3rawintype) const SWIGTYPE * "$1_basetype"
- %typemap(m3rawinmode) const SWIGTYPE * "READONLY"
- %typemap(m3rawintype) SWIGTYPE * "$1_basetype"
- %typemap(m3rawinmode) SWIGTYPE * "VAR"
- %typemap(m3rawrettype) const SWIGTYPE * "UNTRACED REF $1_basetype"
- %typemap(m3rawrettype) SWIGTYPE * "UNTRACED REF $1_basetype"
- %typemap(m3wraptype) SWIGTYPE * "$1_basetype"
- %typemap(m3wrapintype) const SWIGTYPE * "$1_basetype"
- %typemap(m3wrapinmode) const SWIGTYPE * "READONLY"
- %typemap(m3wrapintype) SWIGTYPE * "$1_basetype"
- %typemap(m3wrapinmode) SWIGTYPE * "VAR"
- %typemap(m3wrapouttype) SWIGTYPE * "$1_basetype"
- %typemap(m3wraprettype) SWIGTYPE * "UNTRACED REF $1_basetype"
- %typemap(ctype) SWIGTYPE & "$1_type"
- %typemap(m3rawtype) const SWIGTYPE & "UNTRACED REF $1_basetype"
- %typemap(m3rawtype) SWIGTYPE & "UNTRACED REF $1_basetype"
- %typemap(m3rawintype) const SWIGTYPE & "$1_basetype"
- %typemap(m3rawinmode) const SWIGTYPE & "READONLY"
- %typemap(m3rawintype) SWIGTYPE & "$1_basetype"
- %typemap(m3rawinmode) SWIGTYPE & "VAR"
- %typemap(m3rawrettype) const SWIGTYPE & "UNTRACED REF $1_basetype"
- %typemap(m3rawrettype) SWIGTYPE & "UNTRACED REF $1_basetype"
- %typemap(m3wraptype) SWIGTYPE & "$1_basetype"
- %typemap(m3wrapintype) const SWIGTYPE & "$1_basetype"
- %typemap(m3wrapinmode) const SWIGTYPE & "READONLY"
- %typemap(m3wrapintype) SWIGTYPE & "$1_basetype"
- %typemap(m3wrapinmode) SWIGTYPE & "VAR"
- %typemap(m3wrapouttype) SWIGTYPE & "$1_basetype"
- %typemap(m3wraprettype) SWIGTYPE & "UNTRACED REF $1_basetype"
- %typemap(ctype) SWIGTYPE && "$1_type"
- %typemap(m3rawtype) const SWIGTYPE && "UNTRACED REF $1_basetype"
- %typemap(m3rawtype) SWIGTYPE && "UNTRACED REF $1_basetype"
- %typemap(m3rawintype) const SWIGTYPE && "$1_basetype"
- %typemap(m3rawinmode) const SWIGTYPE && "READONLY"
- %typemap(m3rawintype) SWIGTYPE && "$1_basetype"
- %typemap(m3rawinmode) SWIGTYPE && "VAR"
- %typemap(m3rawrettype) const SWIGTYPE && "UNTRACED REF $1_basetype"
- %typemap(m3rawrettype) SWIGTYPE && "UNTRACED REF $1_basetype"
- %typemap(m3wraptype) SWIGTYPE && "$1_basetype"
- %typemap(m3wrapintype) const SWIGTYPE && "$1_basetype"
- %typemap(m3wrapinmode) const SWIGTYPE && "READONLY"
- %typemap(m3wrapintype) SWIGTYPE && "$1_basetype"
- %typemap(m3wrapinmode) SWIGTYPE && "VAR"
- %typemap(m3wrapouttype) SWIGTYPE && "$1_basetype"
- %typemap(m3wraprettype) SWIGTYPE && "UNTRACED REF $1_basetype"
- %typemap(ctype) enum SWIGTYPE "$1_type"
- %typemap(m3rawtype) enum SWIGTYPE "C.int"
- %typemap(m3rawintype) enum SWIGTYPE "C.int (* $1_type *)"
- %typemap(m3rawrettype) enum SWIGTYPE "C.int"
- %typemap(m3wraptype) enum SWIGTYPE "$*1_type"
- %typemap(m3wrapintype) enum SWIGTYPE "$1_type"
- %typemap(m3wrapouttype) enum SWIGTYPE "$1_type"
- %typemap(m3wraprettype) enum SWIGTYPE "$*1_type"
- /* pointer to a class member */
- %typemap(ctype) SWIGTYPE (CLASS::*) "$1_type"
- %typemap(m3rawtype) SWIGTYPE (CLASS::*) "REFANY"
- %typemap(m3wraptype) SWIGTYPE (CLASS::*) "$1_basetype"
- /* The following are the in, out, freearg, argout typemaps.
- These are the PInvoke code generating typemaps for converting from C# to C and visa versa. */
- /* primitive types */
- %typemap(in) bool
- %{ $1 = $input ? true : false; %}
- %typemap(in) char,
- signed char,
- unsigned char,
- short,
- unsigned short,
- int,
- unsigned int,
- long,
- unsigned long,
- long long,
- unsigned long long,
- float,
- double,
- enum SWIGTYPE
- %{ $1 = ($1_ltype)$input; %}
- %typemap(out) bool %{ $result = $1; %}
- %typemap(out) char %{ $result = $1; %}
- %typemap(out) signed char %{ $result = $1; %}
- %typemap(out) unsigned char %{ $result = $1; %}
- %typemap(out) short %{ $result = $1; %}
- %typemap(out) unsigned short %{ $result = $1; %}
- %typemap(out) int %{ $result = $1; %}
- %typemap(out) unsigned int %{ $result = $1; %}
- %typemap(out) long %{ $result = $1; %}
- %typemap(out) unsigned long %{ $result = $1; %}
- %typemap(out) long long %{ $result = $1; %}
- %typemap(out) unsigned long long %{ $result = $1; %}
- %typemap(out) float %{ $result = $1; %}
- %typemap(out) double %{ $result = $1; %}
- %typemap(out) enum SWIGTYPE %{ $result = $1; %}
- /* char * - treat as String */
- %typemap(in) char * {
- $1 = $input;
- }
- //%typemap(freearg) char * { if ($1) JCALL2(ReleaseStringUTFChars, jenv, $input, $1); }
- //%typemap(out) char * { if($1) $result = JCALL1(NewStringUTF, jenv, $1); }
- %typemap(out) void ""
- /* primitive types by const reference */
- %typemap(in) const bool & (bool temp)
- %{ temp = $input ? true : false;
- $1 = &temp; %}
- %typemap(in) const char & (char temp),
- const signed char & (signed char temp),
- const unsigned char & (unsigned char temp),
- const short & (short temp),
- const unsigned short & (unsigned short temp),
- const int & (int temp),
- const unsigned int & (unsigned int temp),
- const long & (long temp),
- const unsigned long & (unsigned long temp),
- const long long & ($*1_ltype temp),
- const unsigned long long & ($*1_ltype temp),
- const float & (float temp),
- const double & (double temp)
- %{ temp = ($*1_ltype)$input;
- $1 = &temp; %}
- %typemap(out) const bool & %{ $result = *$1; %}
- %typemap(out) const char & %{ $result = *$1; %}
- %typemap(out) const signed char & %{ $result = *$1; %}
- %typemap(out) const unsigned char & %{ $result = *$1; %}
- %typemap(out) const short & %{ $result = *$1; %}
- %typemap(out) const unsigned short & %{ $result = *$1; %}
- %typemap(out) const int & %{ $result = *$1; %}
- %typemap(out) const unsigned int & %{ $result = *$1; %}
- %typemap(out) const long & %{ $result = *$1; %}
- %typemap(out) const unsigned long & %{ $result = *$1; %}
- %typemap(out) const long long & %{ $result = *$1; %}
- %typemap(out) const unsigned long long & %{ $result = *$1; %}
- %typemap(out) const float & %{ $result = *$1; %}
- %typemap(out) const double & %{ $result = *$1; %}
- /* Default handling. Object passed by value. Convert to a pointer */
- %typemap(in) SWIGTYPE ($&1_type argp)
- %{ argp = *($&1_ltype*)&$input;
- if (!argp) {
- // SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null $1_type");
- RETURN $null;
- }
- $1 = *argp; %}
- %typemap(out) SWIGTYPE
- #ifdef __cplusplus
- %{*($&1_ltype*)&$result = new $1_ltype((const $1_ltype &)$1); %}
- #else
- {
- $&1_ltype $1ptr = ($&1_ltype) malloc(sizeof($1_ltype));
- memmove($1ptr, &$1, sizeof($1_type));
- *($&1_ltype*)&$result = $1ptr;
- }
- #endif
- /* Generic pointers and references */
- %typemap(in) SWIGTYPE *, SWIGTYPE (CLASS::*) %{ $1 = *($&1_ltype)&$input; %}
- %typemap(in) SWIGTYPE & %{ $1 = *($&1_ltype)&$input;
- if(!$1) {
- //SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "$1_type reference is null");
- RETURN $null;
- } %}
- %typemap(in) SWIGTYPE && %{ $1 = *($&1_ltype)&$input;
- if(!$1) {
- //SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "$1_type reference is null");
- RETURN $null;
- } %}
- %typemap(out) SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE (CLASS::*) %{ *($&1_ltype)&$result = $1; %}
- /* Default array handling */
- %typemap(in) SWIGTYPE [] %{ $1 = *($&1_ltype)&$input; %}
- %typemap(out) SWIGTYPE [] %{ *($&1_ltype)&$result = $1; %}
- /* char[ANY] - treat as String */
- %typemap(in) char[ANY] {
- $1 = $input;
- }
- %typemap(argout) char[ANY] ""
- %typemap(freearg) char[ANY] ""//{ if ($1) JCALL2(ReleaseStringUTFChars, jenv, $input, $1); }
- %typemap(out) char[ANY] { if($1) $result = $1; }
- /* Typecheck typemaps - The purpose of these is merely to issue a warning for overloaded C++ functions
- * that cannot be overloaded in C# as more than one C++ type maps to a single C# type */
- %typecheck(SWIG_TYPECHECK_BOOL) /* Java boolean */
- bool,
- const bool &
- ""
- %typecheck(SWIG_TYPECHECK_CHAR) /* Java char */
- char,
- const char &
- ""
- %typecheck(SWIG_TYPECHECK_INT8) /* Java byte */
- signed char,
- const signed char &
- ""
- %typecheck(SWIG_TYPECHECK_INT16) /* Java short */
- unsigned char,
- short,
- const unsigned char &,
- const short &
- ""
- %typecheck(SWIG_TYPECHECK_INT32) /* Java int */
- unsigned short,
- int,
- long,
- const unsigned short &,
- const int &,
- const long &,
- enum SWIGTYPE
- ""
- %typecheck(SWIG_TYPECHECK_INT64) /* Java long */
- unsigned int,
- unsigned long,
- long long,
- const unsigned int &,
- const unsigned long &,
- const long long &
- ""
- %typecheck(SWIG_TYPECHECK_INT128) /* Java BigInteger */
- unsigned long long
- ""
- %typecheck(SWIG_TYPECHECK_FLOAT) /* Java float */
- float,
- const float &
- ""
- %typecheck(SWIG_TYPECHECK_DOUBLE) /* Java double */
- double,
- const double &
- ""
- %typecheck(SWIG_TYPECHECK_STRING) /* Java String */
- char *,
- char[ANY]
- ""
- %typecheck(SWIG_TYPECHECK_POINTER) /* Default */
- SWIGTYPE,
- SWIGTYPE *,
- SWIGTYPE &,
- SWIGTYPE &&,
- SWIGTYPE [],
- SWIGTYPE (CLASS::*)
- ""
- /* Exception handling */
- %typemap(throws) int,
- long,
- short,
- unsigned int,
- unsigned long,
- unsigned short {
- char error_msg[256];
- sprintf(error_msg, "C++ $1_type exception thrown, value: %d", $1);
- SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, error_msg);
- RETURN $null;
- }
- %typemap(throws) SWIGTYPE {
- (void)$1;
- SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "C++ $1_type exception thrown");
- RETURN $null;
- }
- %typemap(throws) char * {
- SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, $1);
- RETURN $null;
- }
- /* Typemaps for code generation in proxy classes and C# type wrapper classes */
- /* The in typemap is used for converting function parameter types from the type
- * used in the proxy, module or type wrapper class to the type used in the PInvoke class. */
- %typemap(m3in) bool, const bool &,
- char, const char &,
- signed char, const signed char &,
- unsigned char, const unsigned char &,
- short, const short &,
- unsigned short, const unsigned short &,
- int, const int &,
- unsigned int, const unsigned int &,
- long, const long &,
- unsigned long, const unsigned long &,
- long long, const long long &,
- unsigned long long, const unsigned long long &,
- float, const float &,
- double, const double &,
- char *,
- char[ANY],
- enum SWIGTYPE
- "$input"
- %typemap(m3in) SWIGTYPE "$&*1_type.getCPtr($input)"
- %typemap(m3in) SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [], SWIGTYPE (CLASS::*) "$1_basetype.getCPtr($input)"
- /* The m3out typemap is used for converting function return types from the return type
- * used in the PInvoke class to the type returned by the proxy, module or type wrapper class. */
- %typemap(m3out) bool, const bool &,
- char, const char &,
- signed char, const signed char &,
- unsigned char, const unsigned char &,
- short, const short &,
- unsigned short, const unsigned short &,
- int, const int &,
- unsigned int, const unsigned int &,
- long, const long &,
- unsigned long, const unsigned long &,
- long long, const long long &,
- unsigned long long, const unsigned long long &,
- float, const float &,
- double, const double &,
- char *,
- char[ANY],
- enum SWIGTYPE
- %{$imcall%}
- %typemap(m3out) void %{$imcall%}
- %typemap(m3out) SWIGTYPE %{
- RETURN NEW(REF $1_basetype, $imcall);
- %}
- %typemap(m3out) SWIGTYPE & %{
- RETURN NEW($1_basetype, $imcall, $owner);
- %}
- %typemap(m3out) SWIGTYPE && %{
- RETURN NEW($1_basetype, $imcall, $owner);
- %}
- %typemap(m3out) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) %{
- cPtr := $imcall;
- RETURN (cPtr = IntPtr.Zero) ? null : NEW($1_basetype, cPtr, $owner);
- %}
- /* Properties */
- %typemap(m3varin) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [], SWIGTYPE (CLASS::*) %{
- PROCEDURE Set$var (value: $vartype) =
- BEGIN
- $imcall;
- END Set$var;
- %}
- %typemap(m3varout) bool, const bool &,
- char, const char &,
- signed char, const signed char &,
- unsigned char, const unsigned char &,
- short, const short &,
- unsigned short, const unsigned short &,
- int, const int &,
- unsigned int, const unsigned int &,
- long, const long &,
- unsigned long, const unsigned long &,
- long long, const long long &,
- unsigned long long, const unsigned long long &,
- float, const float &,
- double, const double &,
- char *,
- char[ANY],
- enum SWIGTYPE %{
- PROCEDURE Get$var (): $vartype =
- BEGIN
- RETURN $imcall;
- END Get$var;
- %}
- %typemap(m3varout) void %{
- get {
- $imcall;
- } %}
- %typemap(m3varout) SWIGTYPE %{
- get {
- RETURN new $&*1_mangle($imcall, true);
- } %}
- %typemap(m3varout) SWIGTYPE & %{
- get {
- RETURN new $1_basetype($imcall, $owner);
- } %}
- %typemap(m3varout) SWIGTYPE && %{
- get {
- RETURN new $1_basetype($imcall, $owner);
- } %}
- %typemap(m3varout) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) %{
- get {
- IntPtr cPtr = $imcall;
- RETURN (cPtr == IntPtr.Zero) ? null : new $1_basetype(cPtr, $owner);
- } %}
- /* Typemaps used for the generation of proxy and type wrapper class code */
- %typemap(m3base) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [], SWIGTYPE (CLASS::*) ""
- %typemap(m3classmodifiers) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [], SWIGTYPE (CLASS::*) "public"
- %typemap(m3code) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [], SWIGTYPE (CLASS::*) ""
- %typemap(m3imports) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [], SWIGTYPE (CLASS::*) "using System;"
- %typemap(m3interfaces) SWIGTYPE "IDisposable"
- %typemap(m3interfaces_derived) SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [], SWIGTYPE (CLASS::*) ""
- %typemap(m3ptrconstructormodifiers) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [], SWIGTYPE (CLASS::*) "internal"
- %typemap(m3finalize) SWIGTYPE %{
- ~$1_basetype() {
- Dispose();
- }
- %}
- %typemap(m3destruct, methodname="Dispose") SWIGTYPE {
- if(swigCPtr != IntPtr.Zero && swigCMemOwn) {
- $imcall;
- swigCMemOwn = false;
- }
- swigCPtr = IntPtr.Zero;
- GC.SuppressFinalize(this);
- }
- %typemap(m3destruct_derived, methodname="Dispose") SWIGTYPE {
- if(swigCPtr != IntPtr.Zero && swigCMemOwn) {
- $imcall;
- swigCMemOwn = false;
- }
- swigCPtr = IntPtr.Zero;
- GC.SuppressFinalize(this);
- base.Dispose();
- }
- %typemap(m3getcptr) SWIGTYPE, SWIGTYPE *, SWIGTYPE &, SWIGTYPE &&, SWIGTYPE [], SWIGTYPE (CLASS::*) %{
- internal static IntPtr getCPtr($1_basetype obj) {
- RETURN (obj == null) ? IntPtr.Zero : obj.swigCPtr;
- }
- %}
- /* M3 specific directives */
- #define %m3multiretval %feature("modula3:multiretval")
- #define %constnumeric(num) %feature("constnumeric","num")
- %pragma(modula3) moduleimports=%{
- IMPORT BlaBla;
- %}
- %pragma(modula3) imclassimports=%{
- FROM BlaBla IMPORT Bla;
- %}
- /* Some ANSI C typemaps */
- %apply unsigned long { size_t };
- /* Array reference typemaps */
- %apply SWIGTYPE & { SWIGTYPE ((&)[ANY]) }
- %apply SWIGTYPE && { SWIGTYPE ((&&)[ANY]) }
- /* const pointers */
- %apply SWIGTYPE * { SWIGTYPE *const }
|