/trunk/Examples/test-suite/director_extend.i
Swig | 57 lines | 47 code | 10 blank | 0 comment | 0 complexity | 697ecede26d4d2b376a14b9c61360bdb MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %module(directors="1") director_extend
- %extend SpObject
- {
- virtual int dummy() // Had to remove virtual to work
- {
- return $self->getFooBar();
- }
- };
- %inline %{
- #ifndef SWIG_DIRECTORS
- // dummy definition for non-director languages
- namespace Swig {
- typedef int Director;
- }
- #endif
- %}
- // Some director implementations do not have Swig::director
- #if !defined(SWIGGO)
- %extend SpObject
- {
- size_t ExceptionMethod()
- {
- // Check positioning of director code in wrapper file
- // Below is what we really want to test, but director exceptions vary too much across across all languages
- // throw Swig::DirectorException("DirectorException was not in scope!!");
- // Instead check definition of Director class as that is defined in the same place as DirectorException (director.swg)
- size_t size = sizeof(Swig::Director);
- return size;
- }
- }
- #endif
- %inline %{
- class SpObject
- {
- public:
- SpObject() {}
- virtual ~SpObject() {}
- int getFooBar() const {
- return 666;
- }
- private:
- // Do NOT define the assignment operator
- SpObject& operator=(const SpObject& rhs);
- // This class can not be copied. Do NOT define the copy Constructor.
- SpObject (const SpObject& rhs);
- };
- %}