JNIEXPORT jint JNICALL Java_com_jsoftware_j_JInterface_callJNative (JNIEnv * env, jobject obj, jlong inst, jstring js) { LOGD("callJNative"); J jengine = (J)inst; const char *nativeString = (*env)->GetStringUTFChars(env, js, 0); int jc = JDo(jengine,(C*)nativeString); return (jint) jc; }
JNIEXPORT jint JNICALL Java_org_dykman_j_JInterface_callJNative (JNIEnv * env, jobject obj, jlong inst, jstring js) { J jengine = (J)inst; local_jnienv = env; local_baseobj = obj; local_class = (*env)->GetObjectClass(env,obj); const char *nativeString = (*env)->GetStringUTFChars(env, js, 0); int jc = JDo(jengine,(C*)nativeString); return (jint) jc; }
void run(void* jt) { I r,n,len;A a;SOCKBUF* pb;static C setname[nsz+1]=""; while(1) { pb=getdata(); if(!pb) errorm("run getdata failed"); len = pb->len; switch(pb->cmd) { case JCMDDO: if(pb->type==1) /* input and event data */ { seteventdata(); len=strlen(pb->d); } if(len<sizeof(input)-1) { memcpy(input, pb->d, len); input[len]=0; r=JDo(jt,input); } else r=EVLENGTH; putdata(JCMDDOZ,r,0,0,0,0); break; case JCMDSETN: n=len<nsz?len:nsz; memcpy(setname, pb->d, n); setname[n]=0; break; case JCMDSET: r=JSetA(jt,strlen(setname),setname,len,pb->d); putdata(JCMDSETZ,r,0,0,0,0); break; case JCMDGET: a=JGetA(jt,len,pb->d); if(a==0) putdata(JCMDGETZ,EVVALUE,0,0,0,0); else putdata(JCMDGETZ,0,AN(a),CAV(a),0,0); break; default: errorm("unknown command"); } } }