| /* File : example.i */ | |
| %module example | |
| %{ | |
| #include "example.h" | |
| %} | |
| // before we grab the header file, we must warn SWIG about some of these functions. | |
| // these functions create data, so must be managed | |
| %newobject createCircle; | |
| %newobject createSquare; | |
| // this method returns as pointer which must be managed | |
| %newobject ShapeOwner::remove; | |
| // you cannot use %delobject on ShapeOwner::add() | |
| // as this disowns the ShapeOwner, not the Shape (oops) | |
| //%delobject ShapeOwner::add(Shape*); DO NOT USE | |
| // either you can use a new function (such as this) | |
| /*%delobject add_Shape; | |
| %inline %{ | |
| void add_Shape(Shape* s,ShapeOwner* own){own->add(s);} | |
| %}*/ | |
| // or a better solution is a typemap | |
| %apply SWIGTYPE *DISOWN {Shape* ptr}; | |
| // now we can grab the header file | |
| %include "example.h" | |