1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
#include "javasci_SciStringArray.h"
/********************************************************************************************************/
/* Allan CORNET */
/* INRIA 2006 */
/********************************************************************************************************/
#define DefaultMaxlenString 1024
/********************************************************************************************************/
/* private static native void Initialize(); */
JNIEXPORT void JNICALL Java_javasci_SciStringArray_Initialize (JNIEnv *env, jclass cl)
{
if ( GetInterfState() == 0) { EnableInterf(); Initialize();}
}
/********************************************************************************************************/
/* public native void Job(String job); */
JNIEXPORT void JNICALL Java_javasci_SciStringArray_Job(JNIEnv *env , jobject obj_this, jstring job)
/********************************************************************************************************/
{
const char *cjob;
/* get the class */
jclass class_Mine = (*env)->GetObjectClass(env, obj_this);
/* get the field value */
cjob = (*env)->GetStringUTFChars(env, job, NULL);
if (send_scilab_job((char*)cjob))
{
fprintf(stderr,"Error in Java_javasci_SciStringArray_Job routine.\n");
}
(*env)->ReleaseStringUTFChars(env, job , cjob);
}
/********************************************************************************************************/
/*! public native String GetElement(int indr, int indc); */
JNIEXPORT jstring JNICALL Java_javasci_SciStringArray_GetElement(JNIEnv *env , jobject obj_this,jint indrarg, jint indcarg)
/********************************************************************************************************/
{
int cm,cn;
const char *cname;
int indx, indy, nlr;
char *tmpStr=MALLOC(sizeof(char)*DefaultMaxlenString);
/* get the class */
jclass class_Mine = (*env)->GetObjectClass(env, obj_this);
/* get the fields i.e x,m,n,name */
jfieldID id_name = (*env)->GetFieldID(env, class_Mine, "name","Ljava/lang/String;");
jfieldID id_m = (*env)->GetFieldID(env, class_Mine, "m", "I");
jfieldID id_n = (*env)->GetFieldID(env, class_Mine, "n", "I");
/* get the field value */
jstring jname = (jstring) (*env)->GetObjectField(env, obj_this, id_name);
jint jm = (*env)->GetIntField(env, obj_this, id_m);
jint jn = (*env)->GetIntField(env, obj_this, id_n);
jstring StrReturn;
cname = (*env)->GetStringUTFChars(env, jname, NULL);
cm=jm;
cn=jn;
indx= indrarg;
indy = indcarg;
nlr = DefaultMaxlenString;
if (!C2F(creadchains)((char *)cname, &indx, &indy, &nlr, tmpStr, (unsigned long)strlen(cname), (unsigned long)strlen(tmpStr)) )
{
fprintf(stderr,"Error in Java_javasci_SciStringArray_GetElement routine.\n");
}
(*env)->ReleaseStringUTFChars(env, jname , cname);
StrReturn=(*env)->NewStringUTF(env, tmpStr);
FREE(tmpStr);
return StrReturn;
}
/********************************************************************************************************/
/*! private native void SendString(String str,int indx, int indy); */
JNIEXPORT void JNICALL Java_javasci_SciStringArray_SendString(JNIEnv *env , jobject obj_this,jstring strarg,jint indxarg, jint indyarg)
/********************************************************************************************************/
{
const char *cname;
const char *cstr;
char Job[DefaultMaxlenString];
int lencstr=0;
/* get the class */
jclass class_Mine = (*env)->GetObjectClass(env, obj_this);
/* get the fields i.e x,name */
jfieldID id_name = (*env)->GetFieldID(env, class_Mine, "name","Ljava/lang/String;");
/* get the field value */
jstring jname = (jstring) (*env)->GetObjectField(env, obj_this, id_name);
cname = (*env)->GetStringUTFChars(env, jname, NULL);
cstr = (*env)->GetStringUTFChars(env, strarg, NULL);
lencstr=(int)strlen(cstr);
if (!C2F(cwritechain)("TMP_SendString",&lencstr,(char*)cstr,(int)strlen("TMP_SendString"),(int)strlen(cstr)) )
{
fprintf(stderr,"Error in Java_javasci_SciStringArray_SendString routine (1).\n");
}
else
{
sprintf(Job,"%s(%d,%d)=TMP_SendString;",cname,indyarg+1,indxarg+1);
if (send_scilab_job(Job))
{
fprintf(stderr,"Error in Java_javasci_SciStringArray_SendString routine (2).\n");
}
else
{
sprintf(Job,"clear TMP_SendString;");
if (send_scilab_job(Job))
{
fprintf(stderr,"Error in Java_javasci_SciStringArray_SendString routine (3).\n");
}
}
}
(*env)->ReleaseStringUTFChars(env, jname , cname);
(*env)->ReleaseStringUTFChars(env, strarg , cstr);
}
/********************************************************************************************************/
|