File: javasci_SciStringArray.c

package info (click to toggle)
scilab 4.1.2-6
  • links: PTS, VCS
  • area: non-free
  • in suites: lenny
  • size: 113,992 kB
  • ctags: 65,732
  • sloc: ansic: 406,468; fortran: 242,412; xml: 223,812; tcl: 46,703; sh: 10,945; ml: 9,441; makefile: 4,697; cpp: 1,354; java: 926; csh: 260; yacc: 247; perl: 130; lex: 126; asm: 72; lisp: 30
file content (130 lines) | stat: -rw-r--r-- 4,694 bytes parent folder | download
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);
}
/********************************************************************************************************/