/trunk/Examples/test-suite/disown.i
Swig | 47 lines | 37 code | 10 blank | 0 comment | 0 complexity | b231ee23be0ccfc017ef374f19a705e2 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %module disown
- %{
- #include <iostream>
- %}
- #pragma SWIG nowarn=SWIGWARN_TYPEMAP_APPLY_UNDEF
- %apply SWIGTYPE *DISOWN { A *disown };
- %inline {
- struct A
- {
- ~A()
- {
- // std::cout <<"delete A" << std::endl;
- }
-
-
- };
-
- class B
- {
- A *_a;
- public:
- B() : _a(0)
- {
- }
-
- ~B()
- {
- if (_a) {
- // std::cout <<"delete A from B" << std::endl;
- delete _a;
- }
- // std::cout <<"delete B" << std::endl;
- }
- int acquire(A *disown)
- {
- // std::cout <<"acquire A" << std::endl;
- _a = disown;
- return 5;
- }
-
- };
- }