various %extend with director tests
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@9363 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
35f01072f6
commit
0ff78074fa
1 changed files with 54 additions and 0 deletions
54
Examples/test-suite/director_extend.i
Normal file
54
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