1/* -----------------------------------------------------------------------------
2 * See the LICENSE file for information on copyright, usage and redistribution
3 * of SWIG, and the README file for authors - http://www.swig.org/release.html.
4 *
5 * typemaps.i
6 *
7 * Pointer and reference handling typemap library
8 *
9 * These mappings provide support for input/output arguments and common
10 * uses for C/C++ pointers and C++ references.
11 * ----------------------------------------------------------------------------- */
12
13/* These typemaps will eventually probably maybe make their way into named typemaps
14 * OUTPUT * and OUTPUT & as they currently break functions that return a pointer or
15 * reference. */
16
17%typemap(ctype) bool *,               bool &               "bool *"
18%typemap(ctype)                       char &               "char *"
19%typemap(ctype) signed char *,        signed char &        "signed char *"
20%typemap(ctype) unsigned char *,      unsigned char &      "unsigned short *"
21%typemap(ctype) short *,              short &              "short *"
22%typemap(ctype) unsigned short *,     unsigned short &     "unsigned short *"
23%typemap(ctype) int *,                int &                "int *"
24%typemap(ctype) unsigned int *,       unsigned int &       "unsigned int *"
25%typemap(ctype) long *,               long &               "long *"
26%typemap(ctype) unsigned long *,      unsigned long &      "unsigned long *"
27%typemap(ctype) long long *,          long long &          "long long *"
28%typemap(ctype) unsigned long long *, unsigned long long & "unsigned long long *"
29%typemap(ctype) float *,              float &              "float *"
30%typemap(ctype) double *,             double &             "double *"
31
32%typemap(imtype) bool *,               bool &               "ref bool"
33%typemap(imtype)                       char &               "ref char"
34%typemap(imtype) signed char *,        signed char &        "ref sbyte"
35%typemap(imtype) unsigned char *,      unsigned char &      "ref byte"
36%typemap(imtype) short *,              short &              "ref short"
37%typemap(imtype) unsigned short *,     unsigned short &     "ref ushort"
38%typemap(imtype) int *,                int &                "ref int"
39%typemap(imtype) unsigned int *,       unsigned int &       "ref uint"
40%typemap(imtype) long *,               long &               "ref int"
41%typemap(imtype) unsigned long *,      unsigned long &      "ref uint"
42%typemap(imtype) long long *,          long long &          "ref long"
43%typemap(imtype) unsigned long long *, unsigned long long & "ref ulong"
44%typemap(imtype) float *,              float &              "ref float"
45%typemap(imtype) double *,             double &             "ref double"
46
47%typemap(cstype) bool *,               bool &               "ref bool"
48%typemap(cstype)                       char &               "ref char"
49%typemap(cstype) signed char *,        signed char &        "ref sbyte"
50%typemap(cstype) unsigned char *,      unsigned char &      "ref byte"
51%typemap(cstype) short *,              short &              "ref short"
52%typemap(cstype) unsigned short *,     unsigned short &     "ref ushort"
53%typemap(cstype) int *,                int &                "ref int"
54%typemap(cstype) unsigned int *,       unsigned int &       "ref uint"
55%typemap(cstype) long *,               long &               "ref int"
56%typemap(cstype) unsigned long *,      unsigned long &      "ref uint"
57%typemap(cstype) long long *,          long long &          "ref long"
58%typemap(cstype) unsigned long long *, unsigned long long & "ref ulong"
59%typemap(cstype) float *,              float &              "ref float"
60%typemap(cstype) double *,             double &             "ref double"
61
62%typemap(csin)   bool *,               bool &,
63                                       char &,
64                 signed char *,        signed char &,
65                 unsigned char *,      unsigned char &,
66                 short *,              short &,
67                 unsigned short *,     unsigned short &,
68                 int *,                int &,
69                 unsigned int *,       unsigned int &,
70                 long *,               long &,
71                 unsigned long *,      unsigned long &,
72                 long long *,          long long &,
73                 unsigned long long *, unsigned long long &,
74                 float *,              float &,
75                 double *,             double &
76    "ref $csinput"
77
78