PageRenderTime 37ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 1ms

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

#
Swig | 46 lines | 38 code | 8 blank | 0 comment | 0 complexity | d1ba3d024d0162a66991858bb55d4f19 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. %module li_typemaps_apply
  2. // Test %apply to global primitive type references/pointers to make sure the return types are still okay... mainly for the strongly typed languages.
  3. %include "typemaps.i"
  4. #if !defined(SWIGJAVA) // Needs asymmetric type marshalling support for this testcase to work
  5. %define TMAPS(PRIMTYPE, NAME)
  6. %apply PRIMTYPE *INPUT { PRIMTYPE * }
  7. %apply PRIMTYPE &INPUT { PRIMTYPE & }
  8. %inline %{
  9. PRIMTYPE *input_ptr_##NAME(PRIMTYPE *v) { static PRIMTYPE stat; stat = *v; return &stat; }
  10. PRIMTYPE &input_ref_##NAME(PRIMTYPE &v) { static PRIMTYPE stat; stat = v; return stat; }
  11. %}
  12. %apply PRIMTYPE *OUTPUT { PRIMTYPE * }
  13. %apply PRIMTYPE &OUTPUT { PRIMTYPE & }
  14. %inline %{
  15. PRIMTYPE *output_ptr_##NAME(PRIMTYPE x, PRIMTYPE *v) { static PRIMTYPE stat; stat = x; *v = x; return &stat; }
  16. PRIMTYPE &output_ref_##NAME(PRIMTYPE x, PRIMTYPE &v) { static PRIMTYPE stat; stat = x; v = x; return stat; }
  17. %}
  18. %apply PRIMTYPE *INOUT { PRIMTYPE * }
  19. %apply PRIMTYPE &INOUT { PRIMTYPE & }
  20. %inline %{
  21. PRIMTYPE *inout_ptr_##NAME(PRIMTYPE *v) { static PRIMTYPE stat; stat = *v; *v = *v; return &stat; }
  22. PRIMTYPE &inout_ref_##NAME(PRIMTYPE &v) { static PRIMTYPE stat; stat = v; v = v; return stat; }
  23. %}
  24. %enddef
  25. TMAPS(bool, bool)
  26. TMAPS(int, int)
  27. TMAPS(short, short)
  28. TMAPS(long, long)
  29. TMAPS(unsigned int, uint)
  30. TMAPS(unsigned short, ushort)
  31. TMAPS(unsigned long, ulong)
  32. TMAPS(unsigned char, uchar)
  33. TMAPS(signed char, schar)
  34. TMAPS(float, float)
  35. TMAPS(double, double)
  36. TMAPS(long long, longlong)
  37. TMAPS(unsigned long long, ulonglong)
  38. #endif