source: mediastreamer2/p2pproxy/launcher/src/p2pproxy.c @ 39:18f3dffa6606

Last change on this file since 39:18f3dffa6606 was 35:f867f568387e, checked in by jehan <jehan@…>, 5 years ago

add c interface

git-svn-id: svn+ssh://svn.savannah.nongnu.org/linphone/trunk@38 3f6dc0c8-ddfe-455d-9043-3cd528dc4637

File size: 2.2 KB
Line 
1#include <stdio.h>
2#include <jni.h>
3#include "p2pproxy.c"
4
5#ifndef P2PPROXY_CLASSPATH
6        #define P2PPROXY_INSTALL_PREFIX "/usr/"
7#endif
8#ifndef P2PPROXY_JMX_PORT
9        #define P2PPROXY_JMX_PORT "5678"
10#endif
11JNIEnv* p2pproxy_application_jnienv = 0;
12
13int p2pproxy_application_start(int argc, char **argv) {
14        JavaVM* jvm;
15        JNIEnv* env;
16        JavaVMInitArgs args;
17        JavaVMOption options[5];
18       
19        if (p2pproxy_application_jnienv != 0) {
20                fprintf(stderr,"p2pproxy already started");
21                return P2PPROXY_ERROR_APPLICATION_ALREADY_STARTED;
22        }
23        args.version = JNI_VERSION_1_6;
24        args.nOptions = sizeof (options);
25        options[0].optionString = "-Dcom.sun.management.jmxremote";
26        options[1].optionString = "-Dcom.sun.management.jmxremote.port="P2PPROXY_JMX_POR";
27        options[2].optionString = "-Dcom.sun.management.jmxremote.authenticate=false";
28        options[3].optionString = "-Dcom.sun.management.jmxremote.ssl=false";
29        options[4].optionString = "-Djava.class.path="P2PPROXY_INSTALL_PREFIX"/share/java/p2pproxy.jar";
30               
31        args.options = options;
32        args.ignoreUnrecognized = JNI_FALSE;
33
34        JNI_CreateJavaVM(&jvm, (void **)&env, &args);
35        return env;
36        return P2PPROXY_ERROR;
37}
38
39
40const char* p2pproxy_status_string(int status_code) {
41        return P2PPROXY_ERROR;
42}
43
44
45int p2pproxy_accountmgt_createAccount(const char* user_name) {
46        return P2PPROXY_ERROR;
47}
48
49int p2pproxy_accountmgt_isValidAccount(const char* user_name) {
50        return P2PPROXY_ERROR;
51}
52
53int p2pproxy_accountmgt_deleteAccount(const char* user_name) {
54        return P2PPROXY_ERROR;
55}
56
57
58
59JNIEnv* create_vm() {
60
61}
62
63void invoke_class(JNIEnv* env) {
64        jclass helloWorldClass;
65        jmethodID mainMethod;
66        jobjectArray applicationArgs;
67        jstring applicationArg0;
68
69        helloWorldClass = (*env)->FindClass(env, "example/jni/InvocationHelloWorld");
70
71        mainMethod = (*env)->GetStaticMethodID(env, helloWorldClass, "main", "([Ljava/lang/String;)V");
72
73        applicationArgs = (*env)->NewObjectArray(env, 1, (*env)->FindClass(env, "java/lang/String"), NULL);
74        applicationArg0 = (*env)->NewStringUTF(env, "From-C-program");
75        (*env)->SetObjectArrayElement(env, applicationArgs, 0, applicationArg0);
76
77        (*env)->CallStaticVoidMethod(env, helloWorldClass, mainMethod, applicationArgs);
78}
79
80
81int main(int argc, char **argv) {
82        JNIEnv* env = create_vm();
83        invoke_class( env );
84}
Note: See TracBrowser for help on using the repository browser.