cinvoke-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cinvoke-svn] r62 - in trunk/cinvoke/bindings/java: . org/cinvoke


From: will
Subject: [cinvoke-svn] r62 - in trunk/cinvoke/bindings/java: . org/cinvoke
Date: 30 Jun 2006 23:04:41 -0400

Author: will
Date: 2006-06-30 23:04:41 -0400 (Fri, 30 Jun 2006)
New Revision: 62

Added:
   trunk/cinvoke/bindings/java/Test.java
   trunk/cinvoke/bindings/java/org/cinvoke/NativeInt.java
   trunk/cinvoke/bindings/java/org/cinvoke/NativeLong.java
   trunk/cinvoke/bindings/java/org/cinvoke/NativeLongLong.java
   trunk/cinvoke/bindings/java/org/cinvoke/NativeShort.java
Modified:
   trunk/cinvoke/bindings/java/Makefile
   trunk/cinvoke/bindings/java/org/cinvoke/CInvoke.java
   trunk/cinvoke/bindings/java/org_cinvoke_CInvoke.cpp
   trunk/cinvoke/bindings/java/org_cinvoke_CInvoke.h
Log:
native method skeletons


Modified: trunk/cinvoke/bindings/java/Makefile
===================================================================
--- trunk/cinvoke/bindings/java/Makefile        2006-06-30 23:36:55 UTC (rev 61)
+++ trunk/cinvoke/bindings/java/Makefile        2006-07-01 03:04:41 UTC (rev 62)
@@ -17,3 +17,7 @@
 
 clean:
        rm -f org/cinvoke/*.class *.o *.so
+
+test:
+       javac Test.java
+       LD_LIBRARY_PATH=. java Test

Added: trunk/cinvoke/bindings/java/Test.java
===================================================================
--- trunk/cinvoke/bindings/java/Test.java                               (rev 0)
+++ trunk/cinvoke/bindings/java/Test.java       2006-07-01 03:04:41 UTC (rev 62)
@@ -0,0 +1,13 @@
+import org.cinvoke.*;
+
+class Test {
+       interface libc {
+               String getpass(String prompt);
+       }
+       
+       public static void main(String[] args) {
+               libc c = (libc)CInvoke.load("/lib/libc.so.6", libc.class);
+
+               System.out.println("You entered: " + c.getpass("Enter password: 
"));
+       }
+}

Modified: trunk/cinvoke/bindings/java/org/cinvoke/CInvoke.java
===================================================================
--- trunk/cinvoke/bindings/java/org/cinvoke/CInvoke.java        2006-06-30 
23:36:55 UTC (rev 61)
+++ trunk/cinvoke/bindings/java/org/cinvoke/CInvoke.java        2006-07-01 
03:04:41 UTC (rev 62)
@@ -1,6 +1,53 @@
 package org.cinvoke;
 
 public final class CInvoke {
+       static {
+               System.loadLibrary("cinvoke_java");
+       }
+
+       private static native long createContext();
+       private static native void deleteContext(long ctx);
+       private static native long createLibrary(long ctx, String path);
+       private static native long loadEPLibrary(long ctx, long lib,
+               String path);
+       private static native void deleteLibrary(long ctx, long lib);
+       private static native long createFunction(long ctx, int cc, String 
retfmt,
+               String paramfmt);
+       private static native Object invokeFunction(long ctx, long func, long 
ep,
+               Object[] params);
+       private static native void deleteFunction(long ctx, long func);
+       private static native long createStruct(long ctx);
+       private static native void addValueMemberStruct(long ctx, long strct,
+               String name, int type);
+       private static native void addStructMemberStruct(long ctx, long strct,
+               String name, long type);
+       private static native long alloc(int sz);
+       private static native void free(long m);
+       private static native void writeValue(long m, Object val);
+       private static native Object readValue(long m, int type);
+       private static native void setMemberValueStruct(long ctx, long strct,
+               long m, String name, Object val);
+       private static native Object getMemberValueStruct(long ctx, long strct,
+               long m, String name);
+       private static native void finishStruct(long ctx, long strct);
+       private static native int sizeStruct(long ctx, long strct);
+       private static native void deleteStruct(long ctx, long strct);
+       private static native long createCallback(long ctx, long func,
+               CBThunk cbcls);
+       private static native long getEPCallback(long ctx, long cb);
+       private static native void deleteCallback(long ctx, long cb); 
+
+       private class CBThunk {
+               public CBThunk() {
+                       // XXX
+               }
+
+               public Object cbfunc(long f, Object[] params) {
+                       // XXX
+                       return null;
+               }
+       }
+
        public class CC {
                public static final int DEFAULT = 0;
                public static final int CDECL = 1;
@@ -8,18 +55,17 @@
                public static final int FASTCALL = 3;
        }
 
-       static {
-               System.loadLibrary("cinvoke_java");
+       public static Object load(String libname, Class iface) {
+               return load(libname, iface, CC.DEFAULT);
        }
-
-       public static Object loadLibrary(String libname, Class iface) {
-               return loadLibrary(libname, iface, CC.DEFAULT);
-       }
-       public static Object loadLibrary(String libname, Class iface,
+       public static Object load(String libname, Class iface,
                int callconv) {
                // XXX
                return null;
        }
+       public static void dispose(Object library) {
+               // XXX
+       }
        public static String ptrToStringUTF8(Ptr ptr) {
                // XXX
                return null;

Added: trunk/cinvoke/bindings/java/org/cinvoke/NativeInt.java
===================================================================
--- trunk/cinvoke/bindings/java/org/cinvoke/NativeInt.java                      
        (rev 0)
+++ trunk/cinvoke/bindings/java/org/cinvoke/NativeInt.java      2006-07-01 
03:04:41 UTC (rev 62)
@@ -0,0 +1,13 @@
+package org.cinvoke;
+
+public final class NativeInt {
+       public NativeInt(long val) {
+               _val = val;
+       }
+       public long toLong() {
+               return _val;
+       }
+
+       private long _val;
+}
+       

Added: trunk/cinvoke/bindings/java/org/cinvoke/NativeLong.java
===================================================================
--- trunk/cinvoke/bindings/java/org/cinvoke/NativeLong.java                     
        (rev 0)
+++ trunk/cinvoke/bindings/java/org/cinvoke/NativeLong.java     2006-07-01 
03:04:41 UTC (rev 62)
@@ -0,0 +1,13 @@
+package org.cinvoke;
+
+public final class NativeLong {
+       public NativeLong(long val) {
+               _val = val;
+       }
+       public long toLong() {
+               return _val;
+       }
+
+       private long _val;
+}
+       

Added: trunk/cinvoke/bindings/java/org/cinvoke/NativeLongLong.java
===================================================================
--- trunk/cinvoke/bindings/java/org/cinvoke/NativeLongLong.java                 
        (rev 0)
+++ trunk/cinvoke/bindings/java/org/cinvoke/NativeLongLong.java 2006-07-01 
03:04:41 UTC (rev 62)
@@ -0,0 +1,13 @@
+package org.cinvoke;
+
+public final class NativeLongLong {
+       public NativeLongLong(long val) {
+               _val = val;
+       }
+       public long toLong() {
+               return _val;
+       }
+
+       private long _val;
+}
+       

Added: trunk/cinvoke/bindings/java/org/cinvoke/NativeShort.java
===================================================================
--- trunk/cinvoke/bindings/java/org/cinvoke/NativeShort.java                    
        (rev 0)
+++ trunk/cinvoke/bindings/java/org/cinvoke/NativeShort.java    2006-07-01 
03:04:41 UTC (rev 62)
@@ -0,0 +1,13 @@
+package org.cinvoke;
+
+public final class NativeShort {
+       public NativeShort(int val) {
+               _val = val;
+       }
+       public int toLong() {
+               return _val;
+       }
+
+       private int _val;
+}
+       

Modified: trunk/cinvoke/bindings/java/org_cinvoke_CInvoke.cpp
===================================================================
--- trunk/cinvoke/bindings/java/org_cinvoke_CInvoke.cpp 2006-06-30 23:36:55 UTC 
(rev 61)
+++ trunk/cinvoke/bindings/java/org_cinvoke_CInvoke.cpp 2006-07-01 03:04:41 UTC 
(rev 62)
@@ -1,6 +1,107 @@
 #include <stdio.h>
 #include "org_cinvoke_CInvoke.h"
 
-JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_sayHello (JNIEnv *env, 
jobject) {
-       printf("Helu!\n");
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_createContext(
+       JNIEnv *env, jclass) {
+       // XXX
+       return 0;
 }
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_deleteContext(
+       JNIEnv *env, jclass, jlong) {
+       // XXX
+}
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_createLibrary(
+       JNIEnv *env, jclass, jlong, jstring) {
+       // XXX
+       return 0;
+}
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_loadEPLibrary(
+       JNIEnv *env, jclass, jlong, jlong, jstring) {
+       // XXX
+       return 0;
+}
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_deleteLibrary(
+       JNIEnv *env, jclass, jlong, jlong) {
+       // XXX
+}
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_createFunction(
+       JNIEnv *env, jclass, jlong, jint, jstring, jstring) {
+       // XXX
+       return 0;
+}
+JNIEXPORT jobject JNICALL Java_org_cinvoke_CInvoke_invokeFunction(
+       JNIEnv *env, jclass, jlong, jlong, jlong, jobjectArray) {
+       // XXX
+       return NULL;
+}
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_deleteFunction(
+       JNIEnv *env, jclass, jlong, jlong) {
+       // XXX
+}
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_createStruct(
+       JNIEnv *env, jclass, jlong) {
+       // XXX
+       return 0;
+}
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_addValueMemberStruct(
+       JNIEnv *env, jclass, jlong, jlong, jstring, jint) {
+       // XXX
+}
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_addStructMemberStruct(
+       JNIEnv *env, jclass, jlong, jlong, jstring, jlong) {
+       // XXX
+}
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_alloc(
+       JNIEnv *env, jclass, jint) {
+       // XXX
+       return 0;
+}
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_free(
+       JNIEnv *env, jclass, jlong) {
+       // XXX
+}
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_writeValue(
+       JNIEnv *env, jclass, jlong, jobject) {
+       // XXX
+}
+JNIEXPORT jobject JNICALL Java_org_cinvoke_CInvoke_readValue(
+       JNIEnv *env, jclass, jlong, jint) {
+       // XXX
+       return NULL;
+}
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_setMemberValueStruct(
+       JNIEnv *env, jclass, jlong, jlong, jlong, jstring, jobject) {
+       // XXX
+}
+JNIEXPORT jobject JNICALL Java_org_cinvoke_CInvoke_getMemberValueStruct(
+       JNIEnv *env, jclass, jlong, jlong, jlong, jstring) {
+       // XXX
+       return NULL;
+}
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_finishStruct(
+       JNIEnv *env, jclass, jlong, jlong) {
+       // XXX
+}
+JNIEXPORT jint JNICALL Java_org_cinvoke_CInvoke_sizeStruct(
+       JNIEnv *env, jclass, jlong, jlong) {
+       // XXX
+       return 0;
+}
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_deleteStruct(
+       JNIEnv *env, jclass, jlong, jlong) {
+       // XXX
+}
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_createCallback(
+       JNIEnv *env, jclass, jlong, jlong, jobject) {
+       // XXX
+       return 0;
+}
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_getEPCallback(
+       JNIEnv *env, jclass, jlong, jlong) {
+       // XXX
+       return 0;
+}
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_deleteCallback(
+       JNIEnv *env, jclass, jlong, jlong) {
+       // XXX
+}

Modified: trunk/cinvoke/bindings/java/org_cinvoke_CInvoke.h
===================================================================
--- trunk/cinvoke/bindings/java/org_cinvoke_CInvoke.h   2006-06-30 23:36:55 UTC 
(rev 61)
+++ trunk/cinvoke/bindings/java/org_cinvoke_CInvoke.h   2006-07-01 03:04:41 UTC 
(rev 62)
@@ -10,7 +10,29 @@
 {
 #endif
 
-JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_sayHello (JNIEnv *env, 
jobject);
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_createContext (JNIEnv *env, 
jclass);
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_deleteContext (JNIEnv *env, 
jclass, jlong);
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_createLibrary (JNIEnv *env, 
jclass, jlong, jstring);
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_loadEPLibrary (JNIEnv *env, 
jclass, jlong, jlong, jstring);
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_deleteLibrary (JNIEnv *env, 
jclass, jlong, jlong);
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_createFunction (JNIEnv *env, 
jclass, jlong, jint, jstring, jstring);
+JNIEXPORT jobject JNICALL Java_org_cinvoke_CInvoke_invokeFunction (JNIEnv 
*env, jclass, jlong, jlong, jlong, jobjectArray);
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_deleteFunction (JNIEnv *env, 
jclass, jlong, jlong);
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_createStruct (JNIEnv *env, 
jclass, jlong);
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_addValueMemberStruct (JNIEnv 
*env, jclass, jlong, jlong, jstring, jint);
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_addStructMemberStruct (JNIEnv 
*env, jclass, jlong, jlong, jstring, jlong);
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_alloc (JNIEnv *env, jclass, 
jint);
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_free (JNIEnv *env, jclass, 
jlong);
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_writeValue (JNIEnv *env, 
jclass, jlong, jobject);
+JNIEXPORT jobject JNICALL Java_org_cinvoke_CInvoke_readValue (JNIEnv *env, 
jclass, jlong, jint);
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_setMemberValueStruct (JNIEnv 
*env, jclass, jlong, jlong, jlong, jstring, jobject);
+JNIEXPORT jobject JNICALL Java_org_cinvoke_CInvoke_getMemberValueStruct 
(JNIEnv *env, jclass, jlong, jlong, jlong, jstring);
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_finishStruct (JNIEnv *env, 
jclass, jlong, jlong);
+JNIEXPORT jint JNICALL Java_org_cinvoke_CInvoke_sizeStruct (JNIEnv *env, 
jclass, jlong, jlong);
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_deleteStruct (JNIEnv *env, 
jclass, jlong, jlong);
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_createCallback (JNIEnv *env, 
jclass, jlong, jlong, jobject);
+JNIEXPORT jlong JNICALL Java_org_cinvoke_CInvoke_getEPCallback (JNIEnv *env, 
jclass, jlong, jlong);
+JNIEXPORT void JNICALL Java_org_cinvoke_CInvoke_deleteCallback (JNIEnv *env, 
jclass, jlong, jlong);
 
 #ifdef __cplusplus
 }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]