/trunk/Examples/test-suite/nspace_extend.i
Swig | 53 lines | 42 code | 11 blank | 0 comment | 0 complexity | c4308a519f55358a130b6c676132df92 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- // Test the nspace feature and %extend
- %module nspace_extend
- // nspace feature only supported by these languages
- #if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGD)
- #if defined(SWIGJAVA)
- SWIG_JAVABODY_PROXY(public, public, SWIGTYPE)
- #endif
- %nspace;
- %extend Outer::Inner1::Color {
- Color() { return new Outer::Inner1::Color(); }
- virtual ~Color() { delete $self; }
- static Color* create() { return new Outer::Inner1::Color(); }
- Color(const Color& other) { return new Outer::Inner1::Color(other); }
- void colorInstanceMethod(double d) {}
- static void colorStaticMethod(double d) {}
- }
- %inline %{
- namespace Outer {
- namespace Inner1 {
- struct Color {
- };
- }
- namespace Inner2 {
- struct Color {
- };
- }
- }
- %}
- %extend Outer::Inner2::Color {
- Color() { return new Outer::Inner2::Color(); }
- ~Color() { delete $self; }
- static Color* create() { return new Outer::Inner2::Color(); }
- Color(const Color& other) { return new Outer::Inner2::Color(other); }
- void colorInstanceMethod(double d) {}
- static void colorStaticMethod(double d) {}
- void colors(const Inner1::Color& col1a,
- const Outer::Inner1::Color& col1b,
- const Color &col2a,
- const Inner2::Color& col2b,
- const Outer::Inner2::Color& col2c) {}
- }
- #endif