diff options
Diffstat (limited to 'Examples/test-suite/argout.i')
-rw-r--r-- | Examples/test-suite/argout.i | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Examples/test-suite/argout.i b/Examples/test-suite/argout.i new file mode 100644 index 000000000..1584a9728 --- /dev/null +++ b/Examples/test-suite/argout.i @@ -0,0 +1,37 @@ +/* This interface file checks how well SWIG handles passing data back + through arguments WITHOUT returning it seperatly; for the cases where + maybe multiple values are passed by refernce 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; +} + +%} |