From 1e9ff45c66bdf97deee8945a4e72063e68def11b Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Wed, 21 Dec 2005 22:48:32 +0000 Subject: [PATCH] add intermediary_classname.i for testing changing the intermediary classname from default (Java/C#) git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8025 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Examples/test-suite/common.mk | 1 + Examples/test-suite/intermediary_classname.i | 63 ++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 Examples/test-suite/intermediary_classname.i diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk index dbe5f49bf..15c2e2c50 100644 --- a/Examples/test-suite/common.mk +++ b/Examples/test-suite/common.mk @@ -155,6 +155,7 @@ CPP_TEST_CASES += \ inherit_same_name \ inherit_void_arg \ inline_initializer \ + intermediary_classname \ kind \ langobj \ li_attribute \ diff --git a/Examples/test-suite/intermediary_classname.i b/Examples/test-suite/intermediary_classname.i new file mode 100644 index 000000000..49b3ac63c --- /dev/null +++ b/Examples/test-suite/intermediary_classname.i @@ -0,0 +1,63 @@ + +// This test is to check the intermediary class name can be changed (C# and Java only use intermediary classes at time of writing) +%module(directors="1", jniclassname="intermediary_classname", imclassname="intermediary_classname") "intermediary_classname" + +// change the access to the intermediary class for testing purposes +%pragma(java) jniclassclassmodifiers="public class"; +%pragma(csharp) imclassclassmodifiers="public class"; + +%feature("director") Base; +%feature("director") Derived; + +%inline %{ + +template T maximum(const T a, const T b) { return a>b ? a : b; } + +template class vector { + T *v; + int sz; + public: + vector(int _sz) { + v = new T[_sz]; + sz = _sz; + } + T &get(int index) { + return v[index]; + } + void set(int index, T &val) { + v[index] = val; + } + void testconst(const T x) { } +}; + +class Base { +public: + Base() : mVectInt(0) {} + Base(Base *b) : mVectInt(0) {} + virtual ~Base() {} + virtual Base& m1(Base &b) { return b; } + virtual Base* m2(Base *b) { return b; } +// virtual Base m3(Base b) { return b; } + vector mVectInt; + int mInt; + enum en { en1, en2 }; + en enummethod(en e) { return e; } +}; +class Derived : public Base { +public: + Derived(Base *b) : Base(b) {} + virtual Base& m1(Base &b) { return b; } + virtual Base* m2(Base *b) { return b; } +// virtual Base m3(Base b) { return b; } + void throwspec() throw (int, Base) {} +}; +%} + +%template(maxint) maximum; +%template(maxdouble) maximum; +%template(vecint) vector; +%template(vecdouble) vector; +%template(maxintp) maximum; +%template(vecintp) vector; + +