/trunk/Examples/java/native/example.i
Swig | 56 lines | 34 code | 18 blank | 4 comment | 0 complexity | 30e5da679acdd3b56302bb80ccd27e36 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- /* 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);