swig/SWIG/Examples/test-suite/director_frob.i
William S Fulton 66e0877ead unsigned long long test added
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9433 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-10-11 22:36:15 +00:00

56 lines
1 KiB
OpenEdge ABL

%module(directors="1") director_frob;
#pragma SWIG nowarn=SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR
%header %{
#include <iostream>
%}
%feature("director");
%feature("nodirector") Bravo::abs_method(); // ok
%feature("director") Charlie::abs_method(); // ok
%feature("nodirector") Delta::abs_method(); // ok
%inline %{
struct Alpha
{
virtual ~Alpha() { };
virtual const char* abs_method() = 0;
};
struct Bravo : Alpha
{
const char* abs_method()
{
return "Bravo::abs_method()";
}
};
struct Charlie : Bravo
{
const char* abs_method()
{
return "Charlie::abs_method()";
}
};
struct Delta : Charlie
{
};
%}
%rename(OpInt) operator int;
%inline %{
class Ops {
public:
virtual ~Ops() {}
virtual operator int() { return 0; }
};
struct Prims {
virtual ~Prims() {}
virtual unsigned long long ull(unsigned long long i, unsigned long long j) { return i + j; }
unsigned long long callull(int i, int j) { return ull(i, j); }
};
%}