Improved interface registration mechanism.
Author = sdv@sparc.spb.su r = idk@eng.sun.com git-svn-id: svn://10.0.0.236/trunk@79398 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -6,9 +6,9 @@
|
||||
|
||||
import org.mozilla.xpcom.*;
|
||||
|
||||
public interface bcIJavaSample
|
||||
public interface bcIJavaSample extends nsISupports
|
||||
{
|
||||
public static final String BC_IJAVASAMPLE_IID_STRING =
|
||||
public static final String IID =
|
||||
"ca1e2656-1dd1-11b2-9c4e-f49ea557abde";
|
||||
void queryInterface(IID iid, Object[] result);
|
||||
void test0();
|
||||
|
||||
@@ -106,9 +106,12 @@ void test() {
|
||||
nsnull,
|
||||
NS_GET_IID(bcIJavaSample),
|
||||
(void**)&test);
|
||||
if (NS_FAILED(r)) {
|
||||
printf("--[debug] can not load bcJavaSample\n");
|
||||
return;
|
||||
}
|
||||
//sigsend(P_PID, getpid(),SIGINT);
|
||||
//test->Test1(2000);
|
||||
#if 0
|
||||
test->Test1(1000);
|
||||
bcIJavaSample *test1;
|
||||
if (NS_FAILED(r)) {
|
||||
@@ -119,7 +122,6 @@ void test() {
|
||||
test->QueryInterface(NS_GET_IID(bcIJavaSample),(void**)&test1);
|
||||
int intArray[] = {1,2,3};
|
||||
test->Test3(3, intArray);
|
||||
#endif
|
||||
{
|
||||
char ** valueArray = (char **)malloc(sizeof(char*)*4);
|
||||
valueArray[0] = "hi";
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
*/
|
||||
import org.mozilla.xpcom.*;
|
||||
import java.lang.reflect.*;
|
||||
|
||||
public class bcJavaSample implements bcIJavaSample {
|
||||
public bcJavaSample() {
|
||||
System.out.println("--[java]bcJavaSample constructor");
|
||||
@@ -71,32 +72,8 @@ public class bcJavaSample implements bcIJavaSample {
|
||||
String[] returnArray = {"4","3","2","1"};
|
||||
valueArray[0] = returnArray;
|
||||
}
|
||||
static IID bcIJavaSampleIID;
|
||||
static IID nsISupportsIID;
|
||||
static {
|
||||
try {
|
||||
Method[] methods = null;
|
||||
Class bcIJavaSampleClass = Class.forName("bcIJavaSample");
|
||||
Class IIDClass = Class.forName("org.mozilla.xpcom.IID");
|
||||
methods = new Method[100];
|
||||
Class ObjectArrayClass = (new Object[1]).getClass();
|
||||
Class IntArrayClass = (new int[1]).getClass();
|
||||
Class StringArrayArrayClass = (new String[1][1]).getClass();
|
||||
methods[0] = bcIJavaSampleClass.getDeclaredMethod("queryInterface",new Class[]{IIDClass,ObjectArrayClass});
|
||||
methods[3] = bcIJavaSampleClass.getDeclaredMethod("test0",new Class[]{});
|
||||
methods[4] = bcIJavaSampleClass.getDeclaredMethod("test1",new Class[]{Integer.TYPE});
|
||||
methods[5] = bcIJavaSampleClass.getDeclaredMethod("test2",new Class[]{bcIJavaSampleClass});
|
||||
methods[6] = bcIJavaSampleClass.getDeclaredMethod("test3",new Class[]{Integer.TYPE,IntArrayClass});
|
||||
methods[7] = bcIJavaSampleClass.getDeclaredMethod("test4",new Class[]{Integer.TYPE,StringArrayArrayClass});
|
||||
System.out.println(methods[0]+" "+methods[3]+" "+methods[4]+" "+methods[5]+" "+methods[6]+" "+methods[7]);
|
||||
bcIJavaSampleIID = new IID(bcIJavaSample.BC_IJAVASAMPLE_IID_STRING);
|
||||
nsISupportsIID = new IID("00000000-0000-0000-c000-000000000046");
|
||||
ProxyFactory.registerInterfaceForIID(bcIJavaSampleClass,bcIJavaSampleIID);
|
||||
new ProxyClass(bcIJavaSampleIID, methods);
|
||||
//new ProxyClass(nsISupportsIID, methods);
|
||||
} catch (Exception e) {
|
||||
System.out.println(e);
|
||||
}
|
||||
}
|
||||
static IID bcIJavaSampleIID = new IID(bcIJavaSample.IID);
|
||||
static IID nsISupportsIID = new IID(nsISupports.IID);
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user