/trunk/Examples/test-suite/argout.i
Swig | 37 lines | 27 code | 7 blank | 3 comment | 0 complexity | b278978afa081ce59be238691fb089ef MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- /* 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;
- }
- %}