diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2009-08-18 20:56:02 +0000 |
---|---|---|
committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-09-25 16:59:08 +0000 |
commit | 9f8a09ed743cedd9547bf0661d518647966ab114 (patch) | |
tree | 9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/java/native/example.i | |
download | swig-tarball-master.tar.gz |
Imported from /srv/lorry/lorry-area/swig-tarball/swig-1.3.40.tar.gz.HEADswig-1.3.40master
Diffstat (limited to 'Examples/java/native/example.i')
-rw-r--r-- | Examples/java/native/example.i | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Examples/java/native/example.i b/Examples/java/native/example.i new file mode 100644 index 0000000..851b6fd --- /dev/null +++ b/Examples/java/native/example.i @@ -0,0 +1,56 @@ +/* File : example.i */ +%module example + +%{ +#include <string.h> + +typedef struct point { + int x; + int y; +} Point; + + +Point *point_create(int x, int y) { + Point *p = (Point *) malloc(sizeof(Point)); + p->x = x; + p->y = y; + + return p; +} + +static char *point_toString(char *format, Point *p) { + static char buf[80]; + + sprintf(buf, format, p->x, p->y); + + return buf; +} + +/* this function will be wrapped by SWIG */ +char *point_toString1(Point *p) { + return point_toString("(%d,%d)", p); +} + +/* this one we wrapped manually*/ +JNIEXPORT jstring JNICALL Java_exampleJNI_point_1toString2(JNIEnv *jenv, jclass jcls, jlong jpoint) { + Point * p; + jstring result; + + (void)jcls; + + p = *(Point **)&jpoint; + + result = (*jenv)->NewStringUTF(jenv, point_toString("[%d,%d]", p)); + + return result; +} +%} + + +Point *point_create(int x, int y); +char *point_toString1(Point *p); + +/* give access to free() for memory cleanup of the malloc'd Point */ +extern void free(void *memblock); + +%native(point_toString2) char *point_toString2(Point *p); |