various %extend with director tests
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9363 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
9306989787
commit
85e6fbc84a
1 changed files with 54 additions and 0 deletions
54
SWIG/Examples/test-suite/director_extend.i
Normal file
54
SWIG/Examples/test-suite/director_extend.i
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
|
||||||
|
%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
|
||||||
|
%}
|
||||||
|
|
||||||
|
%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;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
%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);
|
||||||
|
};
|
||||||
|
%}
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue