| %module proxycode |
| |
| %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Proxy4::Proxy4Nested; |
| |
| #if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGD) |
| |
| %{ |
| struct Proxy1 {}; |
| %} |
| struct Proxy1 { |
| %proxycode %{ |
| public int proxycode1(int i) { |
| return i+1; |
| } |
| %} |
| }; |
| |
| %proxycode %{ |
| this should be ignored as it is not in scope of a class |
| %} |
| |
| %extend Proxy2 { |
| %proxycode %{ |
| public int proxycode2a(int i) { |
| return i+2; |
| } |
| %} |
| } |
| |
| %extend Proxy2 { |
| %proxycode %{ |
| public int proxycode2b(int i) { |
| return i+2; |
| } |
| %} |
| } |
| |
| %inline %{ |
| struct Proxy2 {}; |
| struct Proxy3 {}; |
| struct Proxy4 { |
| struct Proxy4Nested {}; |
| }; |
| %} |
| |
| %extend Proxy3 { |
| %proxycode %{ |
| public int proxycode3(int i) { |
| return i+3; |
| } |
| %} |
| } |
| |
| %extend Proxy4 { |
| %proxycode %{ |
| public int proxycode4(int i) { |
| return i+4; |
| } |
| %} |
| } |
| %extend Proxy4::Proxy4Nested { |
| %proxycode %{ |
| public int proxycode4nested(int i) { |
| return i+44; |
| } |
| %} |
| } |
| |
| %extend TemplateProxy { |
| %proxycode %{ |
| public T proxycode5(T i) { |
| return i; |
| } |
| %} |
| } |
| |
| %extend TemplateProxy<int> { |
| %proxycode %{ |
| public int proxycode5(int i, int j) { |
| return i+j+55; |
| } |
| %} |
| } |
| |
| %inline %{ |
| template <typename T> struct TemplateProxy {}; |
| %} |
| |
| %template(Proxy5a) TemplateProxy<short>; |
| %template(Proxy5b) TemplateProxy<int>; |
| |
| %inline %{ |
| template <typename T> struct TypemapProxy { |
| T useT(T t1, T const& t2) { |
| return t1+t2; |
| } |
| }; |
| %} |
| |
| %extend TypemapProxy { |
| #if defined(SWIGJAVA) |
| %proxycode %{ |
| public $javaclassname proxyUseT(long t1, long t2) { |
| $typemap(jstype, unsigned int) tt1 = t1; |
| $typemap(jstype, unsigned int const&) tt2 = t2; |
| long ret = useT(tt1, tt2); |
| if (ret != t1+t2) |
| throw new RuntimeException("wrong sum"); |
| return this; |
| } |
| %} |
| #elif defined(SWIGCSHARP) |
| %proxycode %{ |
| public $csclassname proxyUseT(uint t1, uint t2) { |
| $typemap(cstype, unsigned int) tt1 = t1; |
| $typemap(cstype, unsigned int const&) tt2 = t2; |
| uint ret = useT(tt1, tt2); |
| if (ret != t1+t2) |
| throw new System.Exception("wrong sum"); |
| return this; |
| } |
| %} |
| #elif defined(SWIGD) |
| %proxycode %{ |
| public $dclassname proxyUseT(uint t1, uint t2) { |
| $typemap(dtype, unsigned int) tt1 = t1; |
| $typemap(dtype, unsigned int const&) tt2 = t2; |
| uint ret = useT(tt1, tt2); |
| if (ret != t1+t2) |
| throw new Exception("wrong sum"); |
| return this; |
| } |
| %} |
| #else |
| #error "missing test" |
| #endif |
| } |
| |
| %template(Proxy6) TypemapProxy<unsigned int>; |
| |
| #endif |