PageRenderTime 45ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/test-suite/li_typemaps.i

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