mirror of https://github.com/swig/swig
38 lines
806 B
OpenEdge ABL
38 lines
806 B
OpenEdge ABL
/* This interface file checks how well SWIG handles passing data back
|
|
through arguments WITHOUT returning it separately; for the cases where
|
|
maybe multiple values are passed by reference and all want changing */
|
|
|
|
%module argout
|
|
|
|
%include cpointer.i
|
|
%pointer_functions(int,intp);
|
|
|
|
%inline %{
|
|
// returns old value
|
|
int incp(int *value) {
|
|
return (*value)++;
|
|
}
|
|
|
|
// returns old value
|
|
int incr(int &value) {
|
|
return value++;
|
|
}
|
|
|
|
typedef int & IntRef;
|
|
// returns old value
|
|
int inctr(IntRef value) {
|
|
return value++;
|
|
}
|
|
|
|
// example of the old DB login type routines where you keep
|
|
// a void* which it points to its opaque struct when you login
|
|
// So login function takes a void**
|
|
void voidhandle(void** handle) {
|
|
*handle=(void*)"Here it is";
|
|
}
|
|
char * handle(void* handle) {
|
|
return (char *)handle;
|
|
}
|
|
|
|
%}
|