| /* 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" |
| |