git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11957 626c5289-ae23-0410-ae9c-e8d60b6d4f22
50 lines
1.3 KiB
OpenEdge ABL
50 lines
1.3 KiB
OpenEdge ABL
// Test the nspace feature and %extend
|
|
%module nspace_extend
|
|
|
|
// nspace feature only supported by these languages
|
|
#if defined(SWIGJAVA) || defined(SWIGCSHARP)
|
|
|
|
%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
|
|
|