import source from 1.3.40
[external/swig.git] / Examples / test-suite / li_typemaps.i
1 %module li_typemaps
2
3 %include "typemaps.i"
4
5 %apply int &INOUT { int &INOUT2 };
6 %newobject out_foo;
7 %inline %{
8
9 struct Foo { int a; };
10
11 bool in_bool(bool *INPUT) { return *INPUT; }
12 int in_int(int *INPUT) { return *INPUT; }
13 long in_long(long *INPUT) { return *INPUT; }
14 short in_short(short *INPUT) { return *INPUT; }
15 unsigned int in_uint(unsigned int *INPUT) { return *INPUT; }
16 unsigned short in_ushort(unsigned short *INPUT) { return *INPUT; }
17 unsigned long in_ulong(unsigned long *INPUT) { return *INPUT; }
18 unsigned char in_uchar(unsigned char *INPUT) { return *INPUT; }
19 signed char in_schar(signed char *INPUT) { return *INPUT; }
20 float in_float(float *INPUT) { return *INPUT; }
21 double in_double(double *INPUT) { return *INPUT; }
22 long long in_longlong(long long *INPUT) { return *INPUT; }
23 unsigned long long in_ulonglong(unsigned long long *INPUT) { return *INPUT; }
24
25 bool inr_bool(bool &INPUT) { return INPUT; }
26 int inr_int(int &INPUT) { return INPUT; }
27 long inr_long(long &INPUT) { return INPUT; }
28 short inr_short(short &INPUT) { return INPUT; }
29 unsigned int inr_uint(unsigned int &INPUT) { return INPUT; }
30 unsigned short inr_ushort(unsigned short &INPUT) { return INPUT; }
31 unsigned long inr_ulong(unsigned long &INPUT) { return INPUT; }
32 unsigned char inr_uchar(unsigned char &INPUT) { return INPUT; }
33 signed char inr_schar(signed char &INPUT) { return INPUT; }
34 float inr_float(float &INPUT) { return INPUT; }
35 double inr_double(double &INPUT) { return INPUT; }
36 long long inr_longlong(long long &INPUT) { return INPUT; }
37 unsigned long long inr_ulonglong(unsigned long long &INPUT) { return INPUT; }
38
39 void out_bool(bool x, bool *OUTPUT) {  *OUTPUT = x; }
40 void out_int(int x, int *OUTPUT) {  *OUTPUT = x; }
41 void out_short(short x, short *OUTPUT) {  *OUTPUT = x; }
42 void out_long(long x, long *OUTPUT) {  *OUTPUT = x; }
43 void out_uint(unsigned int x, unsigned int *OUTPUT) {  *OUTPUT = x; }
44 void out_ushort(unsigned short x, unsigned short *OUTPUT) {  *OUTPUT = x; }
45 void out_ulong(unsigned long x, unsigned long *OUTPUT) {  *OUTPUT = x; }
46 void out_uchar(unsigned char x, unsigned char *OUTPUT) {  *OUTPUT = x; }
47 void out_schar(signed char x, signed char *OUTPUT) {  *OUTPUT = x; }
48 void out_float(float x, float *OUTPUT) {  *OUTPUT = x; }
49 void out_double(double x, double *OUTPUT) {  *OUTPUT = x; }
50 void out_longlong(long long x, long long *OUTPUT) {  *OUTPUT = x; }
51 void out_ulonglong(unsigned long long x, unsigned long long *OUTPUT) {  *OUTPUT = x; }
52
53 /* Tests a returning a wrapped pointer and an output argument */
54 struct Foo *out_foo(int a, int *OUTPUT) {
55   struct Foo *f = new struct Foo();
56   f->a = a;
57   *OUTPUT = a * 2;
58   return f;
59 }
60
61 void outr_bool(bool x, bool &OUTPUT) {  OUTPUT = x; }
62 void outr_int(int x, int &OUTPUT) {  OUTPUT = x; }
63 void outr_short(short x, short &OUTPUT) {  OUTPUT = x; }
64 void outr_long(long x, long &OUTPUT) {  OUTPUT = x; }
65 void outr_uint(unsigned int x, unsigned int &OUTPUT) {  OUTPUT = x; }
66 void outr_ushort(unsigned short x, unsigned short &OUTPUT) {  OUTPUT = x; }
67 void outr_ulong(unsigned long x, unsigned long &OUTPUT) {  OUTPUT = x; }
68 void outr_uchar(unsigned char x, unsigned char &OUTPUT) {  OUTPUT = x; }
69 void outr_schar(signed char x, signed char &OUTPUT) {  OUTPUT = x; }
70 void outr_float(float x, float &OUTPUT) {  OUTPUT = x; }
71 void outr_double(double x, double &OUTPUT) {  OUTPUT = x; }
72 void outr_longlong(long long x, long long &OUTPUT) {  OUTPUT = x; }
73 void outr_ulonglong(unsigned long long x, unsigned long long &OUTPUT) {  OUTPUT = x; }
74
75 void inout_bool(bool *INOUT) {  *INOUT = *INOUT; }
76 void inout_int(int *INOUT) {  *INOUT = *INOUT; }
77 void inout_short(short *INOUT) {  *INOUT = *INOUT; }
78 void inout_long(long *INOUT) {  *INOUT = *INOUT; }
79 void inout_uint(unsigned int *INOUT) {  *INOUT = *INOUT; }
80 void inout_ushort(unsigned short *INOUT) {  *INOUT = *INOUT; }
81 void inout_ulong(unsigned long *INOUT) {  *INOUT = *INOUT; }
82 void inout_uchar(unsigned char *INOUT) {  *INOUT = *INOUT; }
83 void inout_schar(signed char *INOUT) {  *INOUT = *INOUT; }
84 void inout_float(float *INOUT) {  *INOUT = *INOUT; }
85 void inout_double(double *INOUT) {  *INOUT = *INOUT; }
86 void inout_longlong(long long *INOUT) {  *INOUT = *INOUT; }
87 void inout_ulonglong(unsigned long long *INOUT) {  *INOUT = *INOUT; }
88
89 void inoutr_bool(bool &INOUT) {  INOUT = INOUT; }
90 void inoutr_int(int &INOUT) {  INOUT = INOUT; }
91 void inoutr_short(short &INOUT) {  INOUT = INOUT; }
92 void inoutr_long(long &INOUT) {  INOUT = INOUT; }
93 void inoutr_uint(unsigned int &INOUT) {  INOUT = INOUT; }
94 void inoutr_ushort(unsigned short &INOUT) {  INOUT = INOUT; }
95 void inoutr_ulong(unsigned long &INOUT) {  INOUT = INOUT; }
96 void inoutr_uchar(unsigned char &INOUT) {  INOUT = INOUT; }
97 void inoutr_schar(signed char &INOUT) {  INOUT = INOUT; }
98 void inoutr_float(float &INOUT) {  INOUT = INOUT; }
99 void inoutr_double(double &INOUT) {  INOUT = INOUT; }
100 void inoutr_longlong(long long &INOUT) {  INOUT = INOUT; }
101 void inoutr_ulonglong(unsigned long long &INOUT) {  INOUT = INOUT; }
102
103 void inoutr_int2(int &INOUT, int &INOUT2) {  INOUT = INOUT; INOUT2 = INOUT2;}
104
105 %}
106
107
108
109