/trunk/Examples/test-suite/director_detect.i
Swig | 72 lines | 52 code | 20 blank | 0 comment | 0 complexity | 28391540629dcf09f6a83fd22995313a MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %module(directors="1") director_detect
- #pragma SWIG nowarn=SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR
- %warnfilter(SWIGWARN_JAVA_COVARIANT_RET,
- SWIGWARN_CSHARP_COVARIANT_RET) cloner; /* Java, C# covariant return types */
- %{
- #include <string>
- #include <iostream>
- %}
- %include <std_string.i>
- %feature("director") Bar;
- %feature("director") Foo;
- %newobject Foo::cloner();
- %newobject Foo::get_class();
- %newobject Bar::cloner();
- %newobject Bar::get_class();
- %inline {
- namespace foo { typedef int Int; }
-
- struct A
- {
- };
-
- typedef A B;
-
- struct Foo {
- virtual ~Foo() {}
- virtual Foo* cloner() = 0;
- virtual int get_value() = 0;
- virtual A* get_class() = 0;
- virtual void just_do_it() = 0;
- };
-
- class Bar : public Foo
- {
- public:
- Foo* baseclass()
- {
- return this;
- }
-
- Bar* cloner()
- {
- return new Bar();
- }
-
-
- foo::Int get_value()
- {
- return 1;
- }
- B* get_class()
- {
- return new B();
- }
- void just_do_it()
- {
- }
- };
- }