mirror of https://github.com/swig/swig
104 lines
1.3 KiB
OpenEdge ABL
104 lines
1.3 KiB
OpenEdge ABL
%module extend_variable
|
|
|
|
// Tests %extend for variables
|
|
|
|
%inline %{
|
|
class ExtendMe {
|
|
double var;
|
|
public:
|
|
ExtendMe() : var(0.0) {}
|
|
bool get(double &d) {
|
|
d = var;
|
|
return true;
|
|
}
|
|
bool set(const double &d) {
|
|
var = d;
|
|
return true;
|
|
}
|
|
};
|
|
%}
|
|
|
|
%extend ExtendMe {
|
|
double ExtendVar;
|
|
};
|
|
|
|
%{
|
|
// If possible, all language modules should use this naming format for consistency
|
|
void ExtendMe_ExtendVar_set(ExtendMe *thisptr, double value) {
|
|
thisptr->set(value);
|
|
}
|
|
double ExtendMe_ExtendVar_get(ExtendMe *thisptr) {
|
|
double value = 0;
|
|
thisptr->get(value);
|
|
return value;
|
|
}
|
|
%}
|
|
|
|
|
|
%{
|
|
class Foo
|
|
{
|
|
};
|
|
%}
|
|
|
|
#if SWIGJAVA
|
|
%javaconst(1) AllBarOne;
|
|
#elif SWIGCSHARP
|
|
%csconst(1) AllBarOne;
|
|
#endif
|
|
|
|
|
|
class Foo {
|
|
public:
|
|
%extend {
|
|
static const int Bar = 42;
|
|
static const int AllBarOne = 4422;
|
|
static const int StaticConstInt;
|
|
static int StaticInt;
|
|
}
|
|
};
|
|
|
|
%{
|
|
int globalVariable = 1111;
|
|
|
|
void Foo_StaticInt_set(int value) {
|
|
globalVariable = value;
|
|
}
|
|
|
|
int Foo_StaticInt_get() {
|
|
return globalVariable;
|
|
}
|
|
|
|
int Foo_StaticConstInt_get() {
|
|
static int var = 2222;
|
|
return var;
|
|
}
|
|
%}
|
|
|
|
%inline {
|
|
namespace ns1
|
|
{
|
|
struct Bar
|
|
{
|
|
}
|
|
;
|
|
}
|
|
}
|
|
|
|
%{
|
|
int ns1_Bar_x_get(ns1::Bar *self) {
|
|
return 1;
|
|
}
|
|
|
|
void ns1_Bar_x_set(ns1::Bar *self, int x) {
|
|
}
|
|
%}
|
|
|
|
%extend ns1::Bar
|
|
{
|
|
int x;
|
|
}
|
|
|
|
|
|
|