[Top][All Lists]
[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
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cinvoke-svn] r62 - in trunk/cinvoke/bindings/java: . org/cinvoke,
will <=