OLD | NEW |
| (Empty) |
1 /* ***** BEGIN LICENSE BLOCK ***** | |
2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | |
3 * | |
4 * The contents of this file are subject to the Mozilla Public License Version | |
5 * 1.1 (the "License"); you may not use this file except in compliance with | |
6 * the License. You may obtain a copy of the License at | |
7 * http://www.mozilla.org/MPL/ | |
8 * | |
9 * Software distributed under the License is distributed on an "AS IS" basis, | |
10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License | |
11 * for the specific language governing rights and limitations under the | |
12 * License. | |
13 * | |
14 * The Original Code is the Java Runtime Interface. | |
15 * | |
16 * The Initial Developer of the Original Code is | |
17 * Netscape Communications Corporation and Sun Microsystems, Inc. | |
18 * Portions created by the Initial Developer are Copyright (C) 1993-1996 | |
19 * the Initial Developer. All Rights Reserved. | |
20 * | |
21 * Contributor(s): | |
22 * | |
23 * Alternatively, the contents of this file may be used under the terms of | |
24 * either the GNU General Public License Version 2 or later (the "GPL"), or | |
25 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), | |
26 * in which case the provisions of the GPL or the LGPL are applicable instead | |
27 * of those above. If you wish to allow use of your version of this file only | |
28 * under the terms of either the GPL or the LGPL, and not to allow others to | |
29 * use your version of this file under the terms of the MPL, indicate your | |
30 * decision by deleting the provisions above and replace them with the notice | |
31 * and other provisions required by the GPL or the LGPL. If you do not delete | |
32 * the provisions above, a recipient may use your version of this file under | |
33 * the terms of any one of the MPL, the GPL or the LGPL. | |
34 * | |
35 * ***** END LICENSE BLOCK ***** */ | |
36 | |
37 #ifndef JNI_H | |
38 #define JNI_H | |
39 | |
40 #include <stdio.h> | |
41 #include <stdarg.h> | |
42 | |
43 /* jni_md.h contains the machine-dependent typedefs for jbyte, jint | |
44 and jlong */ | |
45 | |
46 #include "jni_md.h" | |
47 | |
48 #ifdef __cplusplus | |
49 extern "C" { | |
50 #endif | |
51 | |
52 /* | |
53 * JNI Types | |
54 */ | |
55 | |
56 typedef unsigned char jboolean; | |
57 typedef unsigned short jchar; | |
58 typedef short jshort; | |
59 typedef float jfloat; | |
60 typedef double jdouble; | |
61 | |
62 typedef jint jsize; | |
63 | |
64 #ifdef __cplusplus | |
65 | |
66 class _jobject {}; | |
67 class _jclass : public _jobject {}; | |
68 class _jthrowable : public _jobject {}; | |
69 class _jstring : public _jobject {}; | |
70 class _jarray : public _jobject {}; | |
71 class _jbooleanArray : public _jarray {}; | |
72 class _jbyteArray : public _jarray {}; | |
73 class _jcharArray : public _jarray {}; | |
74 class _jshortArray : public _jarray {}; | |
75 class _jintArray : public _jarray {}; | |
76 class _jlongArray : public _jarray {}; | |
77 class _jfloatArray : public _jarray {}; | |
78 class _jdoubleArray : public _jarray {}; | |
79 class _jobjectArray : public _jarray {}; | |
80 | |
81 typedef _jobject *jobject; | |
82 typedef _jclass *jclass; | |
83 typedef _jthrowable *jthrowable; | |
84 typedef _jstring *jstring; | |
85 typedef _jarray *jarray; | |
86 typedef _jbooleanArray *jbooleanArray; | |
87 typedef _jbyteArray *jbyteArray; | |
88 typedef _jcharArray *jcharArray; | |
89 typedef _jshortArray *jshortArray; | |
90 typedef _jintArray *jintArray; | |
91 typedef _jlongArray *jlongArray; | |
92 typedef _jfloatArray *jfloatArray; | |
93 typedef _jdoubleArray *jdoubleArray; | |
94 typedef _jobjectArray *jobjectArray; | |
95 | |
96 #else | |
97 | |
98 struct _jobject; | |
99 | |
100 typedef struct _jobject *jobject; | |
101 typedef jobject jclass; | |
102 typedef jobject jthrowable; | |
103 typedef jobject jstring; | |
104 typedef jobject jarray; | |
105 typedef jarray jbooleanArray; | |
106 typedef jarray jbyteArray; | |
107 typedef jarray jcharArray; | |
108 typedef jarray jshortArray; | |
109 typedef jarray jintArray; | |
110 typedef jarray jlongArray; | |
111 typedef jarray jfloatArray; | |
112 typedef jarray jdoubleArray; | |
113 typedef jarray jobjectArray; | |
114 | |
115 #endif | |
116 | |
117 #if 0 /* moved to jri_md.h */ | |
118 typedef jobject jref; /* For transition---not meant to be part of public | |
119 API anymore.*/ | |
120 #endif | |
121 | |
122 typedef union jvalue { | |
123 jboolean z; | |
124 jbyte b; | |
125 jchar c; | |
126 jshort s; | |
127 jint i; | |
128 jlong j; | |
129 jfloat f; | |
130 jdouble d; | |
131 jobject l; | |
132 } jvalue; | |
133 | |
134 struct _jfieldID; | |
135 typedef struct _jfieldID *jfieldID; | |
136 | |
137 struct _jmethodID; | |
138 typedef struct _jmethodID *jmethodID; | |
139 | |
140 /* | |
141 * jboolean constants | |
142 */ | |
143 | |
144 #define JNI_FALSE 0 | |
145 #define JNI_TRUE 1 | |
146 | |
147 /* | |
148 * possible return values for JNI functions. | |
149 */ | |
150 | |
151 #define JNI_OK 0 | |
152 #define JNI_ERR (-1) | |
153 | |
154 /* | |
155 * used in ReleaseScalarArrayElements | |
156 */ | |
157 | |
158 #define JNI_COMMIT 1 | |
159 #define JNI_ABORT 2 | |
160 | |
161 /* | |
162 * used in RegisterNatives to describe native method name, signature, | |
163 * and function pointer. | |
164 */ | |
165 | |
166 typedef struct { | |
167 char *name; | |
168 char *signature; | |
169 void *fnPtr; | |
170 } JNINativeMethod; | |
171 | |
172 /* | |
173 * JNI Native Method Interface. | |
174 */ | |
175 | |
176 struct JNINativeInterface_; | |
177 | |
178 struct JNIEnv_; | |
179 | |
180 #ifdef __cplusplus | |
181 typedef JNIEnv_ JNIEnv; | |
182 #else | |
183 typedef const struct JNINativeInterface_ *JNIEnv; | |
184 #endif | |
185 | |
186 /* | |
187 * JNI Invocation Interface. | |
188 */ | |
189 | |
190 struct JNIInvokeInterface_; | |
191 | |
192 struct JavaVM_; | |
193 | |
194 #ifdef __cplusplus | |
195 typedef JavaVM_ JavaVM; | |
196 #else | |
197 typedef const struct JNIInvokeInterface_ *JavaVM; | |
198 #endif | |
199 | |
200 struct JNINativeInterface_ { | |
201 void *reserved0; | |
202 void *reserved1; | |
203 void *reserved2; | |
204 | |
205 void *reserved3; | |
206 jint (JNICALL *GetVersion)(JNIEnv *env); | |
207 | |
208 jclass (JNICALL *DefineClass) | |
209 (JNIEnv *env, const char *name, jobject loader, const jbyte *buf, | |
210 jsize len); | |
211 jclass (JNICALL *FindClass) | |
212 (JNIEnv *env, const char *name); | |
213 | |
214 void *reserved4; | |
215 void *reserved5; | |
216 void *reserved6; | |
217 | |
218 jclass (JNICALL *GetSuperclass) | |
219 (JNIEnv *env, jclass sub); | |
220 jboolean (JNICALL *IsAssignableFrom) | |
221 (JNIEnv *env, jclass sub, jclass sup); | |
222 void *reserved7; | |
223 | |
224 | |
225 jint (JNICALL *Throw) | |
226 (JNIEnv *env, jthrowable obj); | |
227 jint (JNICALL *ThrowNew) | |
228 (JNIEnv *env, jclass clazz, const char *msg); | |
229 jthrowable (JNICALL *ExceptionOccurred) | |
230 (JNIEnv *env); | |
231 void (JNICALL *ExceptionDescribe) | |
232 (JNIEnv *env); | |
233 void (JNICALL *ExceptionClear) | |
234 (JNIEnv *env); | |
235 void (JNICALL *FatalError) | |
236 (JNIEnv *env, const char *msg); | |
237 void *reserved8; | |
238 void *reserved9; | |
239 | |
240 jobject (JNICALL *NewGlobalRef) | |
241 (JNIEnv *env, jobject lobj); | |
242 void (JNICALL *DeleteGlobalRef) | |
243 (JNIEnv *env, jobject gref); | |
244 void (JNICALL *DeleteLocalRef) | |
245 (JNIEnv *env, jobject obj); | |
246 jboolean (JNICALL *IsSameObject) | |
247 (JNIEnv *env, jobject obj1, jobject obj2); | |
248 void *reserved10; | |
249 void *reserved11; | |
250 | |
251 jobject (JNICALL *AllocObject) | |
252 (JNIEnv *env, jclass clazz); | |
253 jobject (JNICALL *NewObject) | |
254 (JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
255 jobject (JNICALL *NewObjectV) | |
256 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
257 jobject (JNICALL *NewObjectA) | |
258 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args); | |
259 | |
260 jclass (JNICALL *GetObjectClass) | |
261 (JNIEnv *env, jobject obj); | |
262 jboolean (JNICALL *IsInstanceOf) | |
263 (JNIEnv *env, jobject obj, jclass clazz); | |
264 | |
265 jmethodID (JNICALL *GetMethodID) | |
266 (JNIEnv *env, jclass clazz, const char *name, const char *sig); | |
267 | |
268 jobject (JNICALL *CallObjectMethod) | |
269 (JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
270 jobject (JNICALL *CallObjectMethodV) | |
271 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
272 jobject (JNICALL *CallObjectMethodA) | |
273 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args); | |
274 | |
275 jboolean (JNICALL *CallBooleanMethod) | |
276 (JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
277 jboolean (JNICALL *CallBooleanMethodV) | |
278 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
279 jboolean (JNICALL *CallBooleanMethodA) | |
280 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args); | |
281 | |
282 jbyte (JNICALL *CallByteMethod) | |
283 (JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
284 jbyte (JNICALL *CallByteMethodV) | |
285 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
286 jbyte (JNICALL *CallByteMethodA) | |
287 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args); | |
288 | |
289 jchar (JNICALL *CallCharMethod) | |
290 (JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
291 jchar (JNICALL *CallCharMethodV) | |
292 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
293 jchar (JNICALL *CallCharMethodA) | |
294 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args); | |
295 | |
296 jshort (JNICALL *CallShortMethod) | |
297 (JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
298 jshort (JNICALL *CallShortMethodV) | |
299 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
300 jshort (JNICALL *CallShortMethodA) | |
301 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args); | |
302 | |
303 jint (JNICALL *CallIntMethod) | |
304 (JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
305 jint (JNICALL *CallIntMethodV) | |
306 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
307 jint (JNICALL *CallIntMethodA) | |
308 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args); | |
309 | |
310 jlong (JNICALL *CallLongMethod) | |
311 (JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
312 jlong (JNICALL *CallLongMethodV) | |
313 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
314 jlong (JNICALL *CallLongMethodA) | |
315 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args); | |
316 | |
317 jfloat (JNICALL *CallFloatMethod) | |
318 (JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
319 jfloat (JNICALL *CallFloatMethodV) | |
320 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
321 jfloat (JNICALL *CallFloatMethodA) | |
322 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args); | |
323 | |
324 jdouble (JNICALL *CallDoubleMethod) | |
325 (JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
326 jdouble (JNICALL *CallDoubleMethodV) | |
327 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
328 jdouble (JNICALL *CallDoubleMethodA) | |
329 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args); | |
330 | |
331 void (JNICALL *CallVoidMethod) | |
332 (JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
333 void (JNICALL *CallVoidMethodV) | |
334 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
335 void (JNICALL *CallVoidMethodA) | |
336 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args); | |
337 | |
338 jobject (JNICALL *CallNonvirtualObjectMethod) | |
339 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
340 jobject (JNICALL *CallNonvirtualObjectMethodV) | |
341 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
342 va_list args); | |
343 jobject (JNICALL *CallNonvirtualObjectMethodA) | |
344 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
345 jvalue * args); | |
346 | |
347 jboolean (JNICALL *CallNonvirtualBooleanMethod) | |
348 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
349 jboolean (JNICALL *CallNonvirtualBooleanMethodV) | |
350 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
351 va_list args); | |
352 jboolean (JNICALL *CallNonvirtualBooleanMethodA) | |
353 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
354 jvalue * args); | |
355 | |
356 jbyte (JNICALL *CallNonvirtualByteMethod) | |
357 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
358 jbyte (JNICALL *CallNonvirtualByteMethodV) | |
359 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
360 va_list args); | |
361 jbyte (JNICALL *CallNonvirtualByteMethodA) | |
362 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
363 jvalue *args); | |
364 | |
365 jchar (JNICALL *CallNonvirtualCharMethod) | |
366 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
367 jchar (JNICALL *CallNonvirtualCharMethodV) | |
368 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
369 va_list args); | |
370 jchar (JNICALL *CallNonvirtualCharMethodA) | |
371 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
372 jvalue *args); | |
373 | |
374 jshort (JNICALL *CallNonvirtualShortMethod) | |
375 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
376 jshort (JNICALL *CallNonvirtualShortMethodV) | |
377 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
378 va_list args); | |
379 jshort (JNICALL *CallNonvirtualShortMethodA) | |
380 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
381 jvalue *args); | |
382 | |
383 jint (JNICALL *CallNonvirtualIntMethod) | |
384 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
385 jint (JNICALL *CallNonvirtualIntMethodV) | |
386 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
387 va_list args); | |
388 jint (JNICALL *CallNonvirtualIntMethodA) | |
389 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
390 jvalue *args); | |
391 | |
392 jlong (JNICALL *CallNonvirtualLongMethod) | |
393 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
394 jlong (JNICALL *CallNonvirtualLongMethodV) | |
395 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
396 va_list args); | |
397 jlong (JNICALL *CallNonvirtualLongMethodA) | |
398 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
399 jvalue *args); | |
400 | |
401 jfloat (JNICALL *CallNonvirtualFloatMethod) | |
402 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
403 jfloat (JNICALL *CallNonvirtualFloatMethodV) | |
404 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
405 va_list args); | |
406 jfloat (JNICALL *CallNonvirtualFloatMethodA) | |
407 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
408 jvalue *args); | |
409 | |
410 jdouble (JNICALL *CallNonvirtualDoubleMethod) | |
411 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
412 jdouble (JNICALL *CallNonvirtualDoubleMethodV) | |
413 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
414 va_list args); | |
415 jdouble (JNICALL *CallNonvirtualDoubleMethodA) | |
416 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
417 jvalue *args); | |
418 | |
419 void (JNICALL *CallNonvirtualVoidMethod) | |
420 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
421 void (JNICALL *CallNonvirtualVoidMethodV) | |
422 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
423 va_list args); | |
424 void (JNICALL *CallNonvirtualVoidMethodA) | |
425 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, | |
426 jvalue * args); | |
427 | |
428 jfieldID (JNICALL *GetFieldID) | |
429 (JNIEnv *env, jclass clazz, const char *name, const char *sig); | |
430 | |
431 jobject (JNICALL *GetObjectField) | |
432 (JNIEnv *env, jobject obj, jfieldID fieldID); | |
433 jboolean (JNICALL *GetBooleanField) | |
434 (JNIEnv *env, jobject obj, jfieldID fieldID); | |
435 jbyte (JNICALL *GetByteField) | |
436 (JNIEnv *env, jobject obj, jfieldID fieldID); | |
437 jchar (JNICALL *GetCharField) | |
438 (JNIEnv *env, jobject obj, jfieldID fieldID); | |
439 jshort (JNICALL *GetShortField) | |
440 (JNIEnv *env, jobject obj, jfieldID fieldID); | |
441 jint (JNICALL *GetIntField) | |
442 (JNIEnv *env, jobject obj, jfieldID fieldID); | |
443 jlong (JNICALL *GetLongField) | |
444 (JNIEnv *env, jobject obj, jfieldID fieldID); | |
445 jfloat (JNICALL *GetFloatField) | |
446 (JNIEnv *env, jobject obj, jfieldID fieldID); | |
447 jdouble (JNICALL *GetDoubleField) | |
448 (JNIEnv *env, jobject obj, jfieldID fieldID); | |
449 | |
450 void (JNICALL *SetObjectField) | |
451 (JNIEnv *env, jobject obj, jfieldID fieldID, jobject val); | |
452 void (JNICALL *SetBooleanField) | |
453 (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val); | |
454 void (JNICALL *SetByteField) | |
455 (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val); | |
456 void (JNICALL *SetCharField) | |
457 (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val); | |
458 void (JNICALL *SetShortField) | |
459 (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val); | |
460 void (JNICALL *SetIntField) | |
461 (JNIEnv *env, jobject obj, jfieldID fieldID, jint val); | |
462 void (JNICALL *SetLongField) | |
463 (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val); | |
464 void (JNICALL *SetFloatField) | |
465 (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val); | |
466 void (JNICALL *SetDoubleField) | |
467 (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val); | |
468 | |
469 jmethodID (JNICALL *GetStaticMethodID) | |
470 (JNIEnv *env, jclass clazz, const char *name, const char *sig); | |
471 | |
472 jobject (JNICALL *CallStaticObjectMethod) | |
473 (JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
474 jobject (JNICALL *CallStaticObjectMethodV) | |
475 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
476 jobject (JNICALL *CallStaticObjectMethodA) | |
477 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args); | |
478 | |
479 jboolean (JNICALL *CallStaticBooleanMethod) | |
480 (JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
481 jboolean (JNICALL *CallStaticBooleanMethodV) | |
482 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
483 jboolean (JNICALL *CallStaticBooleanMethodA) | |
484 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args); | |
485 | |
486 jbyte (JNICALL *CallStaticByteMethod) | |
487 (JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
488 jbyte (JNICALL *CallStaticByteMethodV) | |
489 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
490 jbyte (JNICALL *CallStaticByteMethodA) | |
491 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args); | |
492 | |
493 jchar (JNICALL *CallStaticCharMethod) | |
494 (JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
495 jchar (JNICALL *CallStaticCharMethodV) | |
496 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
497 jchar (JNICALL *CallStaticCharMethodA) | |
498 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args); | |
499 | |
500 jshort (JNICALL *CallStaticShortMethod) | |
501 (JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
502 jshort (JNICALL *CallStaticShortMethodV) | |
503 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
504 jshort (JNICALL *CallStaticShortMethodA) | |
505 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args); | |
506 | |
507 jint (JNICALL *CallStaticIntMethod) | |
508 (JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
509 jint (JNICALL *CallStaticIntMethodV) | |
510 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
511 jint (JNICALL *CallStaticIntMethodA) | |
512 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args); | |
513 | |
514 jlong (JNICALL *CallStaticLongMethod) | |
515 (JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
516 jlong (JNICALL *CallStaticLongMethodV) | |
517 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
518 jlong (JNICALL *CallStaticLongMethodA) | |
519 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args); | |
520 | |
521 jfloat (JNICALL *CallStaticFloatMethod) | |
522 (JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
523 jfloat (JNICALL *CallStaticFloatMethodV) | |
524 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
525 jfloat (JNICALL *CallStaticFloatMethodA) | |
526 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args); | |
527 | |
528 jdouble (JNICALL *CallStaticDoubleMethod) | |
529 (JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
530 jdouble (JNICALL *CallStaticDoubleMethodV) | |
531 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
532 jdouble (JNICALL *CallStaticDoubleMethodA) | |
533 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args); | |
534 | |
535 void (JNICALL *CallStaticVoidMethod) | |
536 (JNIEnv *env, jclass cls, jmethodID methodID, ...); | |
537 void (JNICALL *CallStaticVoidMethodV) | |
538 (JNIEnv *env, jclass cls, jmethodID methodID, va_list args); | |
539 void (JNICALL *CallStaticVoidMethodA) | |
540 (JNIEnv *env, jclass cls, jmethodID methodID, jvalue * args); | |
541 | |
542 jfieldID (JNICALL *GetStaticFieldID) | |
543 (JNIEnv *env, jclass clazz, const char *name, const char *sig); | |
544 jobject (JNICALL *GetStaticObjectField) | |
545 (JNIEnv *env, jclass clazz, jfieldID fieldID); | |
546 jboolean (JNICALL *GetStaticBooleanField) | |
547 (JNIEnv *env, jclass clazz, jfieldID fieldID); | |
548 jbyte (JNICALL *GetStaticByteField) | |
549 (JNIEnv *env, jclass clazz, jfieldID fieldID); | |
550 jchar (JNICALL *GetStaticCharField) | |
551 (JNIEnv *env, jclass clazz, jfieldID fieldID); | |
552 jshort (JNICALL *GetStaticShortField) | |
553 (JNIEnv *env, jclass clazz, jfieldID fieldID); | |
554 jint (JNICALL *GetStaticIntField) | |
555 (JNIEnv *env, jclass clazz, jfieldID fieldID); | |
556 jlong (JNICALL *GetStaticLongField) | |
557 (JNIEnv *env, jclass clazz, jfieldID fieldID); | |
558 jfloat (JNICALL *GetStaticFloatField) | |
559 (JNIEnv *env, jclass clazz, jfieldID fieldID); | |
560 jdouble (JNICALL *GetStaticDoubleField) | |
561 (JNIEnv *env, jclass clazz, jfieldID fieldID); | |
562 | |
563 void (JNICALL *SetStaticObjectField) | |
564 (JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value); | |
565 void (JNICALL *SetStaticBooleanField) | |
566 (JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value); | |
567 void (JNICALL *SetStaticByteField) | |
568 (JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value); | |
569 void (JNICALL *SetStaticCharField) | |
570 (JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value); | |
571 void (JNICALL *SetStaticShortField) | |
572 (JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value); | |
573 void (JNICALL *SetStaticIntField) | |
574 (JNIEnv *env, jclass clazz, jfieldID fieldID, jint value); | |
575 void (JNICALL *SetStaticLongField) | |
576 (JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value); | |
577 void (JNICALL *SetStaticFloatField) | |
578 (JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value); | |
579 void (JNICALL *SetStaticDoubleField) | |
580 (JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value); | |
581 | |
582 jstring (JNICALL *NewString) | |
583 (JNIEnv *env, const jchar *unicode, jsize len); | |
584 jsize (JNICALL *GetStringLength) | |
585 (JNIEnv *env, jstring str); | |
586 const jchar *(JNICALL *GetStringChars) | |
587 (JNIEnv *env, jstring str, jboolean *isCopy); | |
588 void (JNICALL *ReleaseStringChars) | |
589 (JNIEnv *env, jstring str, const jchar *chars); | |
590 | |
591 jstring (JNICALL *NewStringUTF) | |
592 (JNIEnv *env, const char *utf); | |
593 jsize (JNICALL *GetStringUTFLength) | |
594 (JNIEnv *env, jstring str); | |
595 const char* (JNICALL *GetStringUTFChars) | |
596 (JNIEnv *env, jstring str, jboolean *isCopy); | |
597 void (JNICALL *ReleaseStringUTFChars) | |
598 (JNIEnv *env, jstring str, const char* chars); | |
599 | |
600 | |
601 jsize (JNICALL *GetArrayLength) | |
602 (JNIEnv *env, jarray array); | |
603 | |
604 jobjectArray (JNICALL *NewObjectArray) | |
605 (JNIEnv *env, jsize len, jclass clazz, jobject init); | |
606 jobject (JNICALL *GetObjectArrayElement) | |
607 (JNIEnv *env, jobjectArray array, jsize index); | |
608 void (JNICALL *SetObjectArrayElement) | |
609 (JNIEnv *env, jobjectArray array, jsize index, jobject val); | |
610 | |
611 jbooleanArray (JNICALL *NewBooleanArray) | |
612 (JNIEnv *env, jsize len); | |
613 jbyteArray (JNICALL *NewByteArray) | |
614 (JNIEnv *env, jsize len); | |
615 jcharArray (JNICALL *NewCharArray) | |
616 (JNIEnv *env, jsize len); | |
617 jshortArray (JNICALL *NewShortArray) | |
618 (JNIEnv *env, jsize len); | |
619 jintArray (JNICALL *NewIntArray) | |
620 (JNIEnv *env, jsize len); | |
621 jlongArray (JNICALL *NewLongArray) | |
622 (JNIEnv *env, jsize len); | |
623 jfloatArray (JNICALL *NewFloatArray) | |
624 (JNIEnv *env, jsize len); | |
625 jdoubleArray (JNICALL *NewDoubleArray) | |
626 (JNIEnv *env, jsize len); | |
627 | |
628 jboolean * (JNICALL *GetBooleanArrayElements) | |
629 (JNIEnv *env, jbooleanArray array, jboolean *isCopy); | |
630 jbyte * (JNICALL *GetByteArrayElements) | |
631 (JNIEnv *env, jbyteArray array, jboolean *isCopy); | |
632 jchar * (JNICALL *GetCharArrayElements) | |
633 (JNIEnv *env, jcharArray array, jboolean *isCopy); | |
634 jshort * (JNICALL *GetShortArrayElements) | |
635 (JNIEnv *env, jshortArray array, jboolean *isCopy); | |
636 jint * (JNICALL *GetIntArrayElements) | |
637 (JNIEnv *env, jintArray array, jboolean *isCopy); | |
638 jlong * (JNICALL *GetLongArrayElements) | |
639 (JNIEnv *env, jlongArray array, jboolean *isCopy); | |
640 jfloat * (JNICALL *GetFloatArrayElements) | |
641 (JNIEnv *env, jfloatArray array, jboolean *isCopy); | |
642 jdouble * (JNICALL *GetDoubleArrayElements) | |
643 (JNIEnv *env, jdoubleArray array, jboolean *isCopy); | |
644 | |
645 void (JNICALL *ReleaseBooleanArrayElements) | |
646 (JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode); | |
647 void (JNICALL *ReleaseByteArrayElements) | |
648 (JNIEnv *env, jbyteArray array, jbyte *elems, jint mode); | |
649 void (JNICALL *ReleaseCharArrayElements) | |
650 (JNIEnv *env, jcharArray array, jchar *elems, jint mode); | |
651 void (JNICALL *ReleaseShortArrayElements) | |
652 (JNIEnv *env, jshortArray array, jshort *elems, jint mode); | |
653 void (JNICALL *ReleaseIntArrayElements) | |
654 (JNIEnv *env, jintArray array, jint *elems, jint mode); | |
655 void (JNICALL *ReleaseLongArrayElements) | |
656 (JNIEnv *env, jlongArray array, jlong *elems, jint mode); | |
657 void (JNICALL *ReleaseFloatArrayElements) | |
658 (JNIEnv *env, jfloatArray array, jfloat *elems, jint mode); | |
659 void (JNICALL *ReleaseDoubleArrayElements) | |
660 (JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode); | |
661 | |
662 void (JNICALL *GetBooleanArrayRegion) | |
663 (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf); | |
664 void (JNICALL *GetByteArrayRegion) | |
665 (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf); | |
666 void (JNICALL *GetCharArrayRegion) | |
667 (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf); | |
668 void (JNICALL *GetShortArrayRegion) | |
669 (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf); | |
670 void (JNICALL *GetIntArrayRegion) | |
671 (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf); | |
672 void (JNICALL *GetLongArrayRegion) | |
673 (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf); | |
674 void (JNICALL *GetFloatArrayRegion) | |
675 (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf); | |
676 void (JNICALL *GetDoubleArrayRegion) | |
677 (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf); | |
678 | |
679 void (JNICALL *SetBooleanArrayRegion) | |
680 (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf); | |
681 void (JNICALL *SetByteArrayRegion) | |
682 (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf); | |
683 void (JNICALL *SetCharArrayRegion) | |
684 (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf); | |
685 void (JNICALL *SetShortArrayRegion) | |
686 (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf); | |
687 void (JNICALL *SetIntArrayRegion) | |
688 (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf); | |
689 void (JNICALL *SetLongArrayRegion) | |
690 (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf); | |
691 void (JNICALL *SetFloatArrayRegion) | |
692 (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf); | |
693 void (JNICALL *SetDoubleArrayRegion) | |
694 (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf); | |
695 | |
696 jint (JNICALL *RegisterNatives) | |
697 (JNIEnv *env, jclass clazz, const JNINativeMethod *methods, | |
698 jint nMethods); | |
699 jint (JNICALL *UnregisterNatives) | |
700 (JNIEnv *env, jclass clazz); | |
701 | |
702 jint (JNICALL *MonitorEnter) | |
703 (JNIEnv *env, jobject obj); | |
704 jint (JNICALL *MonitorExit) | |
705 (JNIEnv *env, jobject obj); | |
706 | |
707 jint (JNICALL *GetJavaVM) | |
708 (JNIEnv *env, JavaVM **vm); | |
709 }; | |
710 | |
711 /* | |
712 * We use inlined functions for C++ so that programmers can write: | |
713 * | |
714 * env->FindClass("java/lang/String") | |
715 * | |
716 * in C++ rather than: | |
717 * | |
718 * (*env)->FindClass(env, "java/lang/String") | |
719 * | |
720 * in C. | |
721 */ | |
722 | |
723 struct JNIEnv_ { | |
724 const struct JNINativeInterface_ *functions; | |
725 void *reserved0; | |
726 void *reserved1[6]; | |
727 #ifdef __cplusplus | |
728 | |
729 jint GetVersion() { | |
730 return functions->GetVersion(this); | |
731 } | |
732 jclass DefineClass(const char *name, jobject loader, const jbyte *buf, | |
733 jsize len) { | |
734 return functions->DefineClass(this, name, loader, buf, len); | |
735 } | |
736 jclass FindClass(const char *name) { | |
737 return functions->FindClass(this, name); | |
738 } | |
739 jclass GetSuperclass(jclass sub) { | |
740 return functions->GetSuperclass(this, sub); | |
741 } | |
742 jboolean IsAssignableFrom(jclass sub, jclass sup) { | |
743 return functions->IsAssignableFrom(this, sub, sup); | |
744 } | |
745 | |
746 jint Throw(jthrowable obj) { | |
747 return functions->Throw(this, obj); | |
748 } | |
749 jint ThrowNew(jclass clazz, const char *msg) { | |
750 return functions->ThrowNew(this, clazz, msg); | |
751 } | |
752 jthrowable ExceptionOccurred() { | |
753 return functions->ExceptionOccurred(this); | |
754 } | |
755 void ExceptionDescribe() { | |
756 functions->ExceptionDescribe(this); | |
757 } | |
758 void ExceptionClear() { | |
759 functions->ExceptionClear(this); | |
760 } | |
761 void FatalError(const char *msg) { | |
762 functions->FatalError(this, msg); | |
763 } | |
764 | |
765 jobject NewGlobalRef(jobject lobj) { | |
766 return functions->NewGlobalRef(this,lobj); | |
767 } | |
768 void DeleteGlobalRef(jobject gref) { | |
769 functions->DeleteGlobalRef(this,gref); | |
770 } | |
771 void DeleteLocalRef(jobject obj) { | |
772 functions->DeleteLocalRef(this, obj); | |
773 } | |
774 | |
775 jboolean IsSameObject(jobject obj1, jobject obj2) { | |
776 return functions->IsSameObject(this,obj1,obj2); | |
777 } | |
778 | |
779 jobject AllocObject(jclass clazz) { | |
780 return functions->AllocObject(this,clazz); | |
781 } | |
782 jobject NewObject(jclass clazz, jmethodID methodID, ...) { | |
783 va_list args; | |
784 jobject result; | |
785 va_start(args, methodID); | |
786 result = functions->NewObjectV(this,clazz,methodID,args); | |
787 va_end(args); | |
788 return result; | |
789 } | |
790 jobject NewObjectV(jclass clazz, jmethodID methodID, | |
791 va_list args) { | |
792 return functions->NewObjectV(this,clazz,methodID,args); | |
793 } | |
794 jobject NewObjectA(jclass clazz, jmethodID methodID, | |
795 jvalue *args) { | |
796 return functions->NewObjectA(this,clazz,methodID,args); | |
797 } | |
798 | |
799 jclass GetObjectClass(jobject obj) { | |
800 return functions->GetObjectClass(this,obj); | |
801 } | |
802 jboolean IsInstanceOf(jobject obj, jclass clazz) { | |
803 return functions->IsInstanceOf(this,obj,clazz); | |
804 } | |
805 | |
806 jmethodID GetMethodID(jclass clazz, const char *name, | |
807 const char *sig) { | |
808 return functions->GetMethodID(this,clazz,name,sig); | |
809 } | |
810 | |
811 jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) { | |
812 va_list args; | |
813 jobject result; | |
814 va_start(args,methodID); | |
815 result = functions->CallObjectMethodV(this,obj,methodID,args); | |
816 va_end(args); | |
817 return result; | |
818 } | |
819 jobject CallObjectMethodV(jobject obj, jmethodID methodID, | |
820 va_list args) { | |
821 return functions->CallObjectMethodV(this,obj,methodID,args); | |
822 } | |
823 jobject CallObjectMethodA(jobject obj, jmethodID methodID, | |
824 jvalue * args) { | |
825 return functions->CallObjectMethodA(this,obj,methodID,args); | |
826 } | |
827 | |
828 jboolean CallBooleanMethod(jobject obj, | |
829 jmethodID methodID, ...) { | |
830 va_list args; | |
831 jboolean result; | |
832 va_start(args,methodID); | |
833 result = functions->CallBooleanMethodV(this,obj,methodID,args); | |
834 va_end(args); | |
835 return result; | |
836 } | |
837 jboolean CallBooleanMethodV(jobject obj, jmethodID methodID, | |
838 va_list args) { | |
839 return functions->CallBooleanMethodV(this,obj,methodID,args); | |
840 } | |
841 jboolean CallBooleanMethodA(jobject obj, jmethodID methodID, | |
842 jvalue * args) { | |
843 return functions->CallBooleanMethodA(this,obj,methodID, args); | |
844 } | |
845 | |
846 jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) { | |
847 va_list args; | |
848 jbyte result; | |
849 va_start(args,methodID); | |
850 result = functions->CallByteMethodV(this,obj,methodID,args); | |
851 va_end(args); | |
852 return result; | |
853 } | |
854 jbyte CallByteMethodV(jobject obj, jmethodID methodID, | |
855 va_list args) { | |
856 return functions->CallByteMethodV(this,obj,methodID,args); | |
857 } | |
858 jbyte CallByteMethodA(jobject obj, jmethodID methodID, | |
859 jvalue * args) { | |
860 return functions->CallByteMethodA(this,obj,methodID,args); | |
861 } | |
862 | |
863 jchar CallCharMethod(jobject obj, jmethodID methodID, ...) { | |
864 va_list args; | |
865 jchar result; | |
866 va_start(args,methodID); | |
867 result = functions->CallCharMethodV(this,obj,methodID,args); | |
868 va_end(args); | |
869 return result; | |
870 } | |
871 jchar CallCharMethodV(jobject obj, jmethodID methodID, | |
872 va_list args) { | |
873 return functions->CallCharMethodV(this,obj,methodID,args); | |
874 } | |
875 jchar CallCharMethodA(jobject obj, jmethodID methodID, | |
876 jvalue * args) { | |
877 return functions->CallCharMethodA(this,obj,methodID,args); | |
878 } | |
879 | |
880 jshort CallShortMethod(jobject obj, jmethodID methodID, ...) { | |
881 va_list args; | |
882 jshort result; | |
883 va_start(args,methodID); | |
884 result = functions->CallShortMethodV(this,obj,methodID,args); | |
885 va_end(args); | |
886 return result; | |
887 } | |
888 jshort CallShortMethodV(jobject obj, jmethodID methodID, | |
889 va_list args) { | |
890 return functions->CallShortMethodV(this,obj,methodID,args); | |
891 } | |
892 jshort CallShortMethodA(jobject obj, jmethodID methodID, | |
893 jvalue * args) { | |
894 return functions->CallShortMethodA(this,obj,methodID,args); | |
895 } | |
896 | |
897 jint CallIntMethod(jobject obj, jmethodID methodID, ...) { | |
898 va_list args; | |
899 jint result; | |
900 va_start(args,methodID); | |
901 result = functions->CallIntMethodV(this,obj,methodID,args); | |
902 va_end(args); | |
903 return result; | |
904 } | |
905 jint CallIntMethodV(jobject obj, jmethodID methodID, | |
906 va_list args) { | |
907 return functions->CallIntMethodV(this,obj,methodID,args); | |
908 } | |
909 jint CallIntMethodA(jobject obj, jmethodID methodID, | |
910 jvalue * args) { | |
911 return functions->CallIntMethodA(this,obj,methodID,args); | |
912 } | |
913 | |
914 jlong CallLongMethod(jobject obj, jmethodID methodID, ...) { | |
915 va_list args; | |
916 jlong result; | |
917 va_start(args,methodID); | |
918 result = functions->CallLongMethodV(this,obj,methodID,args); | |
919 va_end(args); | |
920 return result; | |
921 } | |
922 jlong CallLongMethodV(jobject obj, jmethodID methodID, | |
923 va_list args) { | |
924 return functions->CallLongMethodV(this,obj,methodID,args); | |
925 } | |
926 jlong CallLongMethodA(jobject obj, jmethodID methodID, | |
927 jvalue * args) { | |
928 return functions->CallLongMethodA(this,obj,methodID,args); | |
929 } | |
930 | |
931 jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) { | |
932 va_list args; | |
933 jfloat result; | |
934 va_start(args,methodID); | |
935 result = functions->CallFloatMethodV(this,obj,methodID,args); | |
936 va_end(args); | |
937 return result; | |
938 } | |
939 jfloat CallFloatMethodV(jobject obj, jmethodID methodID, | |
940 va_list args) { | |
941 return functions->CallFloatMethodV(this,obj,methodID,args); | |
942 } | |
943 jfloat CallFloatMethodA(jobject obj, jmethodID methodID, | |
944 jvalue * args) { | |
945 return functions->CallFloatMethodA(this,obj,methodID,args); | |
946 } | |
947 | |
948 jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) { | |
949 va_list args; | |
950 jdouble result; | |
951 va_start(args,methodID); | |
952 result = functions->CallDoubleMethodV(this,obj,methodID,args); | |
953 va_end(args); | |
954 return result; | |
955 } | |
956 jdouble CallDoubleMethodV(jobject obj, jmethodID methodID, | |
957 va_list args) { | |
958 return functions->CallDoubleMethodV(this,obj,methodID,args); | |
959 } | |
960 jdouble CallDoubleMethodA(jobject obj, jmethodID methodID, | |
961 jvalue * args) { | |
962 return functions->CallDoubleMethodA(this,obj,methodID,args); | |
963 } | |
964 | |
965 void CallVoidMethod(jobject obj, jmethodID methodID, ...) { | |
966 va_list args; | |
967 va_start(args,methodID); | |
968 functions->CallVoidMethodV(this,obj,methodID,args); | |
969 va_end(args); | |
970 } | |
971 void CallVoidMethodV(jobject obj, jmethodID methodID, | |
972 va_list args) { | |
973 functions->CallVoidMethodV(this,obj,methodID,args); | |
974 } | |
975 void CallVoidMethodA(jobject obj, jmethodID methodID, | |
976 jvalue * args) { | |
977 functions->CallVoidMethodA(this,obj,methodID,args); | |
978 } | |
979 | |
980 jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz, | |
981 jmethodID methodID, ...) { | |
982 va_list args; | |
983 jobject result; | |
984 va_start(args,methodID); | |
985 result = functions->CallNonvirtualObjectMethodV(this,obj,clazz, | |
986 methodID,args); | |
987 va_end(args); | |
988 return result; | |
989 } | |
990 jobject CallNonvirtualObjectMethodV(jobject obj, jclass clazz, | |
991 jmethodID methodID, va_list args) { | |
992 return functions->CallNonvirtualObjectMethodV(this,obj,clazz, | |
993 methodID,args); | |
994 } | |
995 jobject CallNonvirtualObjectMethodA(jobject obj, jclass clazz, | |
996 jmethodID methodID, jvalue * args) { | |
997 return functions->CallNonvirtualObjectMethodA(this,obj,clazz, | |
998 methodID,args); | |
999 } | |
1000 | |
1001 jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz, | |
1002 jmethodID methodID, ...) { | |
1003 va_list args; | |
1004 jboolean result; | |
1005 va_start(args,methodID); | |
1006 result = functions->CallNonvirtualBooleanMethodV(this,obj,clazz, | |
1007 methodID,args); | |
1008 va_end(args); | |
1009 return result; | |
1010 } | |
1011 jboolean CallNonvirtualBooleanMethodV(jobject obj, jclass clazz, | |
1012 jmethodID methodID, va_list args) { | |
1013 return functions->CallNonvirtualBooleanMethodV(this,obj,clazz, | |
1014 methodID,args); | |
1015 } | |
1016 jboolean CallNonvirtualBooleanMethodA(jobject obj, jclass clazz, | |
1017 jmethodID methodID, jvalue * args) { | |
1018 return functions->CallNonvirtualBooleanMethodA(this,obj,clazz, | |
1019 methodID, args); | |
1020 } | |
1021 | |
1022 jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz, | |
1023 jmethodID methodID, ...) { | |
1024 va_list args; | |
1025 jbyte result; | |
1026 va_start(args,methodID); | |
1027 result = functions->CallNonvirtualByteMethodV(this,obj,clazz, | |
1028 methodID,args); | |
1029 va_end(args); | |
1030 return result; | |
1031 } | |
1032 jbyte CallNonvirtualByteMethodV(jobject obj, jclass clazz, | |
1033 jmethodID methodID, va_list args) { | |
1034 return functions->CallNonvirtualByteMethodV(this,obj,clazz, | |
1035 methodID,args); | |
1036 } | |
1037 jbyte CallNonvirtualByteMethodA(jobject obj, jclass clazz, | |
1038 jmethodID methodID, jvalue * args) { | |
1039 return functions->CallNonvirtualByteMethodA(this,obj,clazz, | |
1040 methodID,args); | |
1041 } | |
1042 | |
1043 jchar CallNonvirtualCharMethod(jobject obj, jclass clazz, | |
1044 jmethodID methodID, ...) { | |
1045 va_list args; | |
1046 jchar result; | |
1047 va_start(args,methodID); | |
1048 result = functions->CallNonvirtualCharMethodV(this,obj,clazz, | |
1049 methodID,args); | |
1050 va_end(args); | |
1051 return result; | |
1052 } | |
1053 jchar CallNonvirtualCharMethodV(jobject obj, jclass clazz, | |
1054 jmethodID methodID, va_list args) { | |
1055 return functions->CallNonvirtualCharMethodV(this,obj,clazz, | |
1056 methodID,args); | |
1057 } | |
1058 jchar CallNonvirtualCharMethodA(jobject obj, jclass clazz, | |
1059 jmethodID methodID, jvalue * args) { | |
1060 return functions->CallNonvirtualCharMethodA(this,obj,clazz, | |
1061 methodID,args); | |
1062 } | |
1063 | |
1064 jshort CallNonvirtualShortMethod(jobject obj, jclass clazz, | |
1065 jmethodID methodID, ...) { | |
1066 va_list args; | |
1067 jshort result; | |
1068 va_start(args,methodID); | |
1069 result = functions->CallNonvirtualShortMethodV(this,obj,clazz, | |
1070 methodID,args); | |
1071 va_end(args); | |
1072 return result; | |
1073 } | |
1074 jshort CallNonvirtualShortMethodV(jobject obj, jclass clazz, | |
1075 jmethodID methodID, va_list args) { | |
1076 return functions->CallNonvirtualShortMethodV(this,obj,clazz, | |
1077 methodID,args); | |
1078 } | |
1079 jshort CallNonvirtualShortMethodA(jobject obj, jclass clazz, | |
1080 jmethodID methodID, jvalue * args) { | |
1081 return functions->CallNonvirtualShortMethodA(this,obj,clazz, | |
1082 methodID,args); | |
1083 } | |
1084 | |
1085 jint CallNonvirtualIntMethod(jobject obj, jclass clazz, | |
1086 jmethodID methodID, ...) { | |
1087 va_list args; | |
1088 jint result; | |
1089 va_start(args,methodID); | |
1090 result = functions->CallNonvirtualIntMethodV(this,obj,clazz, | |
1091 methodID,args); | |
1092 va_end(args); | |
1093 return result; | |
1094 } | |
1095 jint CallNonvirtualIntMethodV(jobject obj, jclass clazz, | |
1096 jmethodID methodID, va_list args) { | |
1097 return functions->CallNonvirtualIntMethodV(this,obj,clazz, | |
1098 methodID,args); | |
1099 } | |
1100 jint CallNonvirtualIntMethodA(jobject obj, jclass clazz, | |
1101 jmethodID methodID, jvalue * args) { | |
1102 return functions->CallNonvirtualIntMethodA(this,obj,clazz, | |
1103 methodID,args); | |
1104 } | |
1105 | |
1106 jlong CallNonvirtualLongMethod(jobject obj, jclass clazz, | |
1107 jmethodID methodID, ...) { | |
1108 va_list args; | |
1109 jlong result; | |
1110 va_start(args,methodID); | |
1111 result = functions->CallNonvirtualLongMethodV(this,obj,clazz, | |
1112 methodID,args); | |
1113 va_end(args); | |
1114 return result; | |
1115 } | |
1116 jlong CallNonvirtualLongMethodV(jobject obj, jclass clazz, | |
1117 jmethodID methodID, va_list args) { | |
1118 return functions->CallNonvirtualLongMethodV(this,obj,clazz, | |
1119 methodID,args); | |
1120 } | |
1121 jlong CallNonvirtualLongMethodA(jobject obj, jclass clazz, | |
1122 jmethodID methodID, jvalue * args) { | |
1123 return functions->CallNonvirtualLongMethodA(this,obj,clazz, | |
1124 methodID,args); | |
1125 } | |
1126 | |
1127 jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz, | |
1128 jmethodID methodID, ...) { | |
1129 va_list args; | |
1130 jfloat result; | |
1131 va_start(args,methodID); | |
1132 result = functions->CallNonvirtualFloatMethodV(this,obj,clazz, | |
1133 methodID,args); | |
1134 va_end(args); | |
1135 return result; | |
1136 } | |
1137 jfloat CallNonvirtualFloatMethodV(jobject obj, jclass clazz, | |
1138 jmethodID methodID, | |
1139 va_list args) { | |
1140 return functions->CallNonvirtualFloatMethodV(this,obj,clazz, | |
1141 methodID,args); | |
1142 } | |
1143 jfloat CallNonvirtualFloatMethodA(jobject obj, jclass clazz, | |
1144 jmethodID methodID, | |
1145 jvalue * args) { | |
1146 return functions->CallNonvirtualFloatMethodA(this,obj,clazz, | |
1147 methodID,args); | |
1148 } | |
1149 | |
1150 jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz, | |
1151 jmethodID methodID, ...) { | |
1152 va_list args; | |
1153 jdouble result; | |
1154 va_start(args,methodID); | |
1155 result = functions->CallNonvirtualDoubleMethodV(this,obj,clazz, | |
1156 methodID,args); | |
1157 va_end(args); | |
1158 return result; | |
1159 } | |
1160 jdouble CallNonvirtualDoubleMethodV(jobject obj, jclass clazz, | |
1161 jmethodID methodID, | |
1162 va_list args) { | |
1163 return functions->CallNonvirtualDoubleMethodV(this,obj,clazz, | |
1164 methodID,args); | |
1165 } | |
1166 jdouble CallNonvirtualDoubleMethodA(jobject obj, jclass clazz, | |
1167 jmethodID methodID, | |
1168 jvalue * args) { | |
1169 return functions->CallNonvirtualDoubleMethodA(this,obj,clazz, | |
1170 methodID,args); | |
1171 } | |
1172 | |
1173 void CallNonvirtualVoidMethod(jobject obj, jclass clazz, | |
1174 jmethodID methodID, ...) { | |
1175 va_list args; | |
1176 va_start(args,methodID); | |
1177 functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args); | |
1178 va_end(args); | |
1179 } | |
1180 void CallNonvirtualVoidMethodV(jobject obj, jclass clazz, | |
1181 jmethodID methodID, | |
1182 va_list args) { | |
1183 functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args); | |
1184 } | |
1185 void CallNonvirtualVoidMethodA(jobject obj, jclass clazz, | |
1186 jmethodID methodID, | |
1187 jvalue * args) { | |
1188 functions->CallNonvirtualVoidMethodA(this,obj,clazz,methodID,args); | |
1189 } | |
1190 | |
1191 jfieldID GetFieldID(jclass clazz, const char *name, | |
1192 const char *sig) { | |
1193 return functions->GetFieldID(this,clazz,name,sig); | |
1194 } | |
1195 | |
1196 jobject GetObjectField(jobject obj, jfieldID fieldID) { | |
1197 return functions->GetObjectField(this,obj,fieldID); | |
1198 } | |
1199 jboolean GetBooleanField(jobject obj, jfieldID fieldID) { | |
1200 return functions->GetBooleanField(this,obj,fieldID); | |
1201 } | |
1202 jbyte GetByteField(jobject obj, jfieldID fieldID) { | |
1203 return functions->GetByteField(this,obj,fieldID); | |
1204 } | |
1205 jchar GetCharField(jobject obj, jfieldID fieldID) { | |
1206 return functions->GetCharField(this,obj,fieldID); | |
1207 } | |
1208 jshort GetShortField(jobject obj, jfieldID fieldID) { | |
1209 return functions->GetShortField(this,obj,fieldID); | |
1210 } | |
1211 jint GetIntField(jobject obj, jfieldID fieldID) { | |
1212 return functions->GetIntField(this,obj,fieldID); | |
1213 } | |
1214 jlong GetLongField(jobject obj, jfieldID fieldID) { | |
1215 return functions->GetLongField(this,obj,fieldID); | |
1216 } | |
1217 jfloat GetFloatField(jobject obj, jfieldID fieldID) { | |
1218 return functions->GetFloatField(this,obj,fieldID); | |
1219 } | |
1220 jdouble GetDoubleField(jobject obj, jfieldID fieldID) { | |
1221 return functions->GetDoubleField(this,obj,fieldID); | |
1222 } | |
1223 | |
1224 void SetObjectField(jobject obj, jfieldID fieldID, jobject val) { | |
1225 functions->SetObjectField(this,obj,fieldID,val); | |
1226 } | |
1227 void SetBooleanField(jobject obj, jfieldID fieldID, | |
1228 jboolean val) { | |
1229 functions->SetBooleanField(this,obj,fieldID,val); | |
1230 } | |
1231 void SetByteField(jobject obj, jfieldID fieldID, | |
1232 jbyte val) { | |
1233 functions->SetByteField(this,obj,fieldID,val); | |
1234 } | |
1235 void SetCharField(jobject obj, jfieldID fieldID, | |
1236 jchar val) { | |
1237 functions->SetCharField(this,obj,fieldID,val); | |
1238 } | |
1239 void SetShortField(jobject obj, jfieldID fieldID, | |
1240 jshort val) { | |
1241 functions->SetShortField(this,obj,fieldID,val); | |
1242 } | |
1243 void SetIntField(jobject obj, jfieldID fieldID, | |
1244 jint val) { | |
1245 functions->SetIntField(this,obj,fieldID,val); | |
1246 } | |
1247 void SetLongField(jobject obj, jfieldID fieldID, | |
1248 jlong val) { | |
1249 functions->SetLongField(this,obj,fieldID,val); | |
1250 } | |
1251 void SetFloatField(jobject obj, jfieldID fieldID, | |
1252 jfloat val) { | |
1253 functions->SetFloatField(this,obj,fieldID,val); | |
1254 } | |
1255 void SetDoubleField(jobject obj, jfieldID fieldID, | |
1256 jdouble val) { | |
1257 functions->SetDoubleField(this,obj,fieldID,val); | |
1258 } | |
1259 | |
1260 jmethodID GetStaticMethodID(jclass clazz, const char *name, | |
1261 const char *sig) { | |
1262 return functions->GetStaticMethodID(this,clazz,name,sig); | |
1263 } | |
1264 | |
1265 jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID, | |
1266 ...) { | |
1267 va_list args; | |
1268 jobject result; | |
1269 va_start(args,methodID); | |
1270 result = functions->CallStaticObjectMethodV(this,clazz,methodID,args); | |
1271 va_end(args); | |
1272 return result; | |
1273 } | |
1274 jobject CallStaticObjectMethodV(jclass clazz, jmethodID methodID, | |
1275 va_list args) { | |
1276 return functions->CallStaticObjectMethodV(this,clazz,methodID,args); | |
1277 } | |
1278 jobject CallStaticObjectMethodA(jclass clazz, jmethodID methodID, | |
1279 jvalue *args) { | |
1280 return functions->CallStaticObjectMethodA(this,clazz,methodID,args); | |
1281 } | |
1282 | |
1283 jboolean CallStaticBooleanMethod(jclass clazz, | |
1284 jmethodID methodID, ...) { | |
1285 va_list args; | |
1286 jboolean result; | |
1287 va_start(args,methodID); | |
1288 result = functions->CallStaticBooleanMethodV(this,clazz,methodID,args); | |
1289 va_end(args); | |
1290 return result; | |
1291 } | |
1292 jboolean CallStaticBooleanMethodV(jclass clazz, | |
1293 jmethodID methodID, va_list args) { | |
1294 return functions->CallStaticBooleanMethodV(this,clazz,methodID,args); | |
1295 } | |
1296 jboolean CallStaticBooleanMethodA(jclass clazz, | |
1297 jmethodID methodID, jvalue *args) { | |
1298 return functions->CallStaticBooleanMethodA(this,clazz,methodID,args); | |
1299 } | |
1300 | |
1301 jbyte CallStaticByteMethod(jclass clazz, | |
1302 jmethodID methodID, ...) { | |
1303 va_list args; | |
1304 jbyte result; | |
1305 va_start(args,methodID); | |
1306 result = functions->CallStaticByteMethodV(this,clazz,methodID,args); | |
1307 va_end(args); | |
1308 return result; | |
1309 } | |
1310 jbyte CallStaticByteMethodV(jclass clazz, | |
1311 jmethodID methodID, va_list args) { | |
1312 return functions->CallStaticByteMethodV(this,clazz,methodID,args); | |
1313 } | |
1314 jbyte CallStaticByteMethodA(jclass clazz, | |
1315 jmethodID methodID, jvalue *args) { | |
1316 return functions->CallStaticByteMethodA(this,clazz,methodID,args); | |
1317 } | |
1318 | |
1319 jchar CallStaticCharMethod(jclass clazz, | |
1320 jmethodID methodID, ...) { | |
1321 va_list args; | |
1322 jchar result; | |
1323 va_start(args,methodID); | |
1324 result = functions->CallStaticCharMethodV(this,clazz,methodID,args); | |
1325 va_end(args); | |
1326 return result; | |
1327 } | |
1328 jchar CallStaticCharMethodV(jclass clazz, | |
1329 jmethodID methodID, va_list args) { | |
1330 return functions->CallStaticCharMethodV(this,clazz,methodID,args); | |
1331 } | |
1332 jchar CallStaticCharMethodA(jclass clazz, | |
1333 jmethodID methodID, jvalue *args) { | |
1334 return functions->CallStaticCharMethodA(this,clazz,methodID,args); | |
1335 } | |
1336 | |
1337 jshort CallStaticShortMethod(jclass clazz, | |
1338 jmethodID methodID, ...) { | |
1339 va_list args; | |
1340 jshort result; | |
1341 va_start(args,methodID); | |
1342 result = functions->CallStaticShortMethodV(this,clazz,methodID,args); | |
1343 va_end(args); | |
1344 return result; | |
1345 } | |
1346 jshort CallStaticShortMethodV(jclass clazz, | |
1347 jmethodID methodID, va_list args) { | |
1348 return functions->CallStaticShortMethodV(this,clazz,methodID,args); | |
1349 } | |
1350 jshort CallStaticShortMethodA(jclass clazz, | |
1351 jmethodID methodID, jvalue *args) { | |
1352 return functions->CallStaticShortMethodA(this,clazz,methodID,args); | |
1353 } | |
1354 | |
1355 jint CallStaticIntMethod(jclass clazz, | |
1356 jmethodID methodID, ...) { | |
1357 va_list args; | |
1358 jint result; | |
1359 va_start(args,methodID); | |
1360 result = functions->CallStaticIntMethodV(this,clazz,methodID,args); | |
1361 va_end(args); | |
1362 return result; | |
1363 } | |
1364 jint CallStaticIntMethodV(jclass clazz, | |
1365 jmethodID methodID, va_list args) { | |
1366 return functions->CallStaticIntMethodV(this,clazz,methodID,args); | |
1367 } | |
1368 jint CallStaticIntMethodA(jclass clazz, | |
1369 jmethodID methodID, jvalue *args) { | |
1370 return functions->CallStaticIntMethodA(this,clazz,methodID,args); | |
1371 } | |
1372 | |
1373 jlong CallStaticLongMethod(jclass clazz, | |
1374 jmethodID methodID, ...) { | |
1375 va_list args; | |
1376 jlong result; | |
1377 va_start(args,methodID); | |
1378 result = functions->CallStaticLongMethodV(this,clazz,methodID,args); | |
1379 va_end(args); | |
1380 return result; | |
1381 } | |
1382 jlong CallStaticLongMethodV(jclass clazz, | |
1383 jmethodID methodID, va_list args) { | |
1384 return functions->CallStaticLongMethodV(this,clazz,methodID,args); | |
1385 } | |
1386 jlong CallStaticLongMethodA(jclass clazz, | |
1387 jmethodID methodID, jvalue *args) { | |
1388 return functions->CallStaticLongMethodA(this,clazz,methodID,args); | |
1389 } | |
1390 | |
1391 jfloat CallStaticFloatMethod(jclass clazz, | |
1392 jmethodID methodID, ...) { | |
1393 va_list args; | |
1394 jfloat result; | |
1395 va_start(args,methodID); | |
1396 result = functions->CallStaticFloatMethodV(this,clazz,methodID,args); | |
1397 va_end(args); | |
1398 return result; | |
1399 } | |
1400 jfloat CallStaticFloatMethodV(jclass clazz, | |
1401 jmethodID methodID, va_list args) { | |
1402 return functions->CallStaticFloatMethodV(this,clazz,methodID,args); | |
1403 } | |
1404 jfloat CallStaticFloatMethodA(jclass clazz, | |
1405 jmethodID methodID, jvalue *args) { | |
1406 return functions->CallStaticFloatMethodA(this,clazz,methodID,args); | |
1407 } | |
1408 | |
1409 jdouble CallStaticDoubleMethod(jclass clazz, | |
1410 jmethodID methodID, ...) { | |
1411 va_list args; | |
1412 jdouble result; | |
1413 va_start(args,methodID); | |
1414 result = functions->CallStaticDoubleMethodV(this,clazz,methodID,args); | |
1415 va_end(args); | |
1416 return result; | |
1417 } | |
1418 jdouble CallStaticDoubleMethodV(jclass clazz, | |
1419 jmethodID methodID, va_list args) { | |
1420 return functions->CallStaticDoubleMethodV(this,clazz,methodID,args); | |
1421 } | |
1422 jdouble CallStaticDoubleMethodA(jclass clazz, | |
1423 jmethodID methodID, jvalue *args) { | |
1424 return functions->CallStaticDoubleMethodA(this,clazz,methodID,args); | |
1425 } | |
1426 | |
1427 void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) { | |
1428 va_list args; | |
1429 va_start(args,methodID); | |
1430 functions->CallStaticVoidMethodV(this,cls,methodID,args); | |
1431 va_end(args); | |
1432 } | |
1433 void CallStaticVoidMethodV(jclass cls, jmethodID methodID, | |
1434 va_list args) { | |
1435 functions->CallStaticVoidMethodV(this,cls,methodID,args); | |
1436 } | |
1437 void CallStaticVoidMethodA(jclass cls, jmethodID methodID, | |
1438 jvalue * args) { | |
1439 functions->CallStaticVoidMethodA(this,cls,methodID,args); | |
1440 } | |
1441 | |
1442 jfieldID GetStaticFieldID(jclass clazz, const char *name, | |
1443 const char *sig) { | |
1444 return functions->GetStaticFieldID(this,clazz,name,sig); | |
1445 } | |
1446 jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) { | |
1447 return functions->GetStaticObjectField(this,clazz,fieldID); | |
1448 } | |
1449 jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) { | |
1450 return functions->GetStaticBooleanField(this,clazz,fieldID); | |
1451 } | |
1452 jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) { | |
1453 return functions->GetStaticByteField(this,clazz,fieldID); | |
1454 } | |
1455 jchar GetStaticCharField(jclass clazz, jfieldID fieldID) { | |
1456 return functions->GetStaticCharField(this,clazz,fieldID); | |
1457 } | |
1458 jshort GetStaticShortField(jclass clazz, jfieldID fieldID) { | |
1459 return functions->GetStaticShortField(this,clazz,fieldID); | |
1460 } | |
1461 jint GetStaticIntField(jclass clazz, jfieldID fieldID) { | |
1462 return functions->GetStaticIntField(this,clazz,fieldID); | |
1463 } | |
1464 jlong GetStaticLongField(jclass clazz, jfieldID fieldID) { | |
1465 return functions->GetStaticLongField(this,clazz,fieldID); | |
1466 } | |
1467 jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) { | |
1468 return functions->GetStaticFloatField(this,clazz,fieldID); | |
1469 } | |
1470 jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) { | |
1471 return functions->GetStaticDoubleField(this,clazz,fieldID); | |
1472 } | |
1473 | |
1474 void SetStaticObjectField(jclass clazz, jfieldID fieldID, | |
1475 jobject value) { | |
1476 functions->SetStaticObjectField(this,clazz,fieldID,value); | |
1477 } | |
1478 void SetStaticBooleanField(jclass clazz, jfieldID fieldID, | |
1479 jboolean value) { | |
1480 functions->SetStaticBooleanField(this,clazz,fieldID,value); | |
1481 } | |
1482 void SetStaticByteField(jclass clazz, jfieldID fieldID, | |
1483 jbyte value) { | |
1484 functions->SetStaticByteField(this,clazz,fieldID,value); | |
1485 } | |
1486 void SetStaticCharField(jclass clazz, jfieldID fieldID, | |
1487 jchar value) { | |
1488 functions->SetStaticCharField(this,clazz,fieldID,value); | |
1489 } | |
1490 void SetStaticShortField(jclass clazz, jfieldID fieldID, | |
1491 jshort value) { | |
1492 functions->SetStaticShortField(this,clazz,fieldID,value); | |
1493 } | |
1494 void SetStaticIntField(jclass clazz, jfieldID fieldID, | |
1495 jint value) { | |
1496 functions->SetStaticIntField(this,clazz,fieldID,value); | |
1497 } | |
1498 void SetStaticLongField(jclass clazz, jfieldID fieldID, | |
1499 jlong value) { | |
1500 functions->SetStaticLongField(this,clazz,fieldID,value); | |
1501 } | |
1502 void SetStaticFloatField(jclass clazz, jfieldID fieldID, | |
1503 jfloat value) { | |
1504 functions->SetStaticFloatField(this,clazz,fieldID,value); | |
1505 } | |
1506 void SetStaticDoubleField(jclass clazz, jfieldID fieldID, | |
1507 jdouble value) { | |
1508 functions->SetStaticDoubleField(this,clazz,fieldID,value); | |
1509 } | |
1510 | |
1511 jstring NewString(const jchar *unicode, jsize len) { | |
1512 return functions->NewString(this,unicode,len); | |
1513 } | |
1514 jsize GetStringLength(jstring str) { | |
1515 return functions->GetStringLength(this,str); | |
1516 } | |
1517 const jchar *GetStringChars(jstring str, jboolean *isCopy) { | |
1518 return functions->GetStringChars(this,str,isCopy); | |
1519 } | |
1520 void ReleaseStringChars(jstring str, const jchar *chars) { | |
1521 functions->ReleaseStringChars(this,str,chars); | |
1522 } | |
1523 | |
1524 jstring NewStringUTF(const char *utf) { | |
1525 return functions->NewStringUTF(this,utf); | |
1526 } | |
1527 jsize GetStringUTFLength(jstring str) { | |
1528 return functions->GetStringUTFLength(this,str); | |
1529 } | |
1530 const char* GetStringUTFChars(jstring str, jboolean *isCopy) { | |
1531 return functions->GetStringUTFChars(this,str,isCopy); | |
1532 } | |
1533 void ReleaseStringUTFChars(jstring str, const char* chars) { | |
1534 functions->ReleaseStringUTFChars(this,str,chars); | |
1535 } | |
1536 | |
1537 jsize GetArrayLength(jarray array) { | |
1538 return functions->GetArrayLength(this,array); | |
1539 } | |
1540 | |
1541 jobjectArray NewObjectArray(jsize len, jclass clazz, | |
1542 jobject init) { | |
1543 return functions->NewObjectArray(this,len,clazz,init); | |
1544 } | |
1545 jobject GetObjectArrayElement(jobjectArray array, jsize index) { | |
1546 return functions->GetObjectArrayElement(this,array,index); | |
1547 } | |
1548 void SetObjectArrayElement(jobjectArray array, jsize index, | |
1549 jobject val) { | |
1550 functions->SetObjectArrayElement(this,array,index,val); | |
1551 } | |
1552 | |
1553 jbooleanArray NewBooleanArray(jsize len) { | |
1554 return functions->NewBooleanArray(this,len); | |
1555 } | |
1556 jbyteArray NewByteArray(jsize len) { | |
1557 return functions->NewByteArray(this,len); | |
1558 } | |
1559 jcharArray NewCharArray(jsize len) { | |
1560 return functions->NewCharArray(this,len); | |
1561 } | |
1562 jshortArray NewShortArray(jsize len) { | |
1563 return functions->NewShortArray(this,len); | |
1564 } | |
1565 jintArray NewIntArray(jsize len) { | |
1566 return functions->NewIntArray(this,len); | |
1567 } | |
1568 jlongArray NewLongArray(jsize len) { | |
1569 return functions->NewLongArray(this,len); | |
1570 } | |
1571 jfloatArray NewFloatArray(jsize len) { | |
1572 return functions->NewFloatArray(this,len); | |
1573 } | |
1574 jdoubleArray NewDoubleArray(jsize len) { | |
1575 return functions->NewDoubleArray(this,len); | |
1576 } | |
1577 | |
1578 jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) { | |
1579 return functions->GetBooleanArrayElements(this,array,isCopy); | |
1580 } | |
1581 jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) { | |
1582 return functions->GetByteArrayElements(this,array,isCopy); | |
1583 } | |
1584 jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) { | |
1585 return functions->GetCharArrayElements(this,array,isCopy); | |
1586 } | |
1587 jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) { | |
1588 return functions->GetShortArrayElements(this,array,isCopy); | |
1589 } | |
1590 jint * GetIntArrayElements(jintArray array, jboolean *isCopy) { | |
1591 return functions->GetIntArrayElements(this,array,isCopy); | |
1592 } | |
1593 jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) { | |
1594 return functions->GetLongArrayElements(this,array,isCopy); | |
1595 } | |
1596 jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) { | |
1597 return functions->GetFloatArrayElements(this,array,isCopy); | |
1598 } | |
1599 jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) { | |
1600 return functions->GetDoubleArrayElements(this,array,isCopy); | |
1601 } | |
1602 | |
1603 void ReleaseBooleanArrayElements(jbooleanArray array, | |
1604 jboolean *elems, | |
1605 jint mode) { | |
1606 functions->ReleaseBooleanArrayElements(this,array,elems,mode); | |
1607 } | |
1608 void ReleaseByteArrayElements(jbyteArray array, | |
1609 jbyte *elems, | |
1610 jint mode) { | |
1611 functions->ReleaseByteArrayElements(this,array,elems,mode); | |
1612 } | |
1613 void ReleaseCharArrayElements(jcharArray array, | |
1614 jchar *elems, | |
1615 jint mode) { | |
1616 functions->ReleaseCharArrayElements(this,array,elems,mode); | |
1617 } | |
1618 void ReleaseShortArrayElements(jshortArray array, | |
1619 jshort *elems, | |
1620 jint mode) { | |
1621 functions->ReleaseShortArrayElements(this,array,elems,mode); | |
1622 } | |
1623 void ReleaseIntArrayElements(jintArray array, | |
1624 jint *elems, | |
1625 jint mode) { | |
1626 functions->ReleaseIntArrayElements(this,array,elems,mode); | |
1627 } | |
1628 void ReleaseLongArrayElements(jlongArray array, | |
1629 jlong *elems, | |
1630 jint mode) { | |
1631 functions->ReleaseLongArrayElements(this,array,elems,mode); | |
1632 } | |
1633 void ReleaseFloatArrayElements(jfloatArray array, | |
1634 jfloat *elems, | |
1635 jint mode) { | |
1636 functions->ReleaseFloatArrayElements(this,array,elems,mode); | |
1637 } | |
1638 void ReleaseDoubleArrayElements(jdoubleArray array, | |
1639 jdouble *elems, | |
1640 jint mode) { | |
1641 functions->ReleaseDoubleArrayElements(this,array,elems,mode); | |
1642 } | |
1643 | |
1644 void GetBooleanArrayRegion(jbooleanArray array, | |
1645 jsize start, jsize len, jboolean *buf) { | |
1646 functions->GetBooleanArrayRegion(this,array,start,len,buf); | |
1647 } | |
1648 void GetByteArrayRegion(jbyteArray array, | |
1649 jsize start, jsize len, jbyte *buf) { | |
1650 functions->GetByteArrayRegion(this,array,start,len,buf); | |
1651 } | |
1652 void GetCharArrayRegion(jcharArray array, | |
1653 jsize start, jsize len, jchar *buf) { | |
1654 functions->GetCharArrayRegion(this,array,start,len,buf); | |
1655 } | |
1656 void GetShortArrayRegion(jshortArray array, | |
1657 jsize start, jsize len, jshort *buf) { | |
1658 functions->GetShortArrayRegion(this,array,start,len,buf); | |
1659 } | |
1660 void GetIntArrayRegion(jintArray array, | |
1661 jsize start, jsize len, jint *buf) { | |
1662 functions->GetIntArrayRegion(this,array,start,len,buf); | |
1663 } | |
1664 void GetLongArrayRegion(jlongArray array, | |
1665 jsize start, jsize len, jlong *buf) { | |
1666 functions->GetLongArrayRegion(this,array,start,len,buf); | |
1667 } | |
1668 void GetFloatArrayRegion(jfloatArray array, | |
1669 jsize start, jsize len, jfloat *buf) { | |
1670 functions->GetFloatArrayRegion(this,array,start,len,buf); | |
1671 } | |
1672 void GetDoubleArrayRegion(jdoubleArray array, | |
1673 jsize start, jsize len, jdouble *buf) { | |
1674 functions->GetDoubleArrayRegion(this,array,start,len,buf); | |
1675 } | |
1676 | |
1677 void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, | |
1678 jboolean *buf) { | |
1679 functions->SetBooleanArrayRegion(this,array,start,len,buf); | |
1680 } | |
1681 void SetByteArrayRegion(jbyteArray array, jsize start, jsize len, | |
1682 jbyte *buf) { | |
1683 functions->SetByteArrayRegion(this,array,start,len,buf); | |
1684 } | |
1685 void SetCharArrayRegion(jcharArray array, jsize start, jsize len, | |
1686 jchar *buf) { | |
1687 functions->SetCharArrayRegion(this,array,start,len,buf); | |
1688 } | |
1689 void SetShortArrayRegion(jshortArray array, jsize start, jsize len, | |
1690 jshort *buf) { | |
1691 functions->SetShortArrayRegion(this,array,start,len,buf); | |
1692 } | |
1693 void SetIntArrayRegion(jintArray array, jsize start, jsize len, | |
1694 jint *buf) { | |
1695 functions->SetIntArrayRegion(this,array,start,len,buf); | |
1696 } | |
1697 void SetLongArrayRegion(jlongArray array, jsize start, jsize len, | |
1698 jlong *buf) { | |
1699 functions->SetLongArrayRegion(this,array,start,len,buf); | |
1700 } | |
1701 void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len, | |
1702 jfloat *buf) { | |
1703 functions->SetFloatArrayRegion(this,array,start,len,buf); | |
1704 } | |
1705 void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, | |
1706 jdouble *buf) { | |
1707 functions->SetDoubleArrayRegion(this,array,start,len,buf); | |
1708 } | |
1709 | |
1710 jint RegisterNatives(jclass clazz, const JNINativeMethod *methods, | |
1711 jint nMethods) { | |
1712 return functions->RegisterNatives(this,clazz,methods,nMethods); | |
1713 } | |
1714 jint UnregisterNatives(jclass clazz) { | |
1715 return functions->UnregisterNatives(this,clazz); | |
1716 } | |
1717 | |
1718 jint MonitorEnter(jobject obj) { | |
1719 return functions->MonitorEnter(this,obj); | |
1720 } | |
1721 jint MonitorExit(jobject obj) { | |
1722 return functions->MonitorExit(this,obj); | |
1723 } | |
1724 | |
1725 jint GetJavaVM(JavaVM **vm) { | |
1726 return functions->GetJavaVM(this,vm); | |
1727 } | |
1728 | |
1729 #endif /* __cplusplus */ | |
1730 }; | |
1731 | |
1732 /* These structures will be VM-specific. */ | |
1733 | |
1734 typedef struct JDK1_1InitArgs { | |
1735 jint version; | |
1736 | |
1737 char **properties; | |
1738 jint checkSource; | |
1739 jint nativeStackSize; | |
1740 jint javaStackSize; | |
1741 jint minHeapSize; | |
1742 jint maxHeapSize; | |
1743 jint verifyMode; | |
1744 char *classpath; | |
1745 | |
1746 jint (JNICALL *vfprintf)(FILE *fp, const char *format, va_list args); | |
1747 void (JNICALL *exit)(jint code); | |
1748 void (JNICALL *abort)(); | |
1749 | |
1750 jint enableClassGC; | |
1751 jint enableVerboseGC; | |
1752 jint disableAsyncGC; | |
1753 jint verbose; | |
1754 jboolean debugging; | |
1755 jint debugPort; | |
1756 } JDK1_1InitArgs; | |
1757 | |
1758 typedef struct JDK1_1AttachArgs { | |
1759 void * __padding; /* C compilers don't allow empty structures. */ | |
1760 } JDK1_1AttachArgs; | |
1761 | |
1762 /* End VM-specific. */ | |
1763 | |
1764 struct JNIInvokeInterface_ { | |
1765 void *reserved0; | |
1766 void *reserved1; | |
1767 void *reserved2; | |
1768 | |
1769 jint (JNICALL *DestroyJavaVM)(JavaVM *vm); | |
1770 | |
1771 jint (JNICALL *AttachCurrentThread) | |
1772 (JavaVM *vm, JNIEnv **penv, void *args); | |
1773 | |
1774 jint (JNICALL *DetachCurrentThread)(JavaVM *vm); | |
1775 }; | |
1776 | |
1777 struct JavaVM_ { | |
1778 const struct JNIInvokeInterface_ *functions; | |
1779 void *reserved0; | |
1780 void *reserved1; | |
1781 void *reserved2; | |
1782 #ifdef __cplusplus | |
1783 | |
1784 jint DestroyJavaVM() { | |
1785 return functions->DestroyJavaVM(this); | |
1786 } | |
1787 jint AttachCurrentThread(JNIEnv **penv, void *args) { | |
1788 return functions->AttachCurrentThread(this, penv, args); | |
1789 } | |
1790 jint DetachCurrentThread() { | |
1791 return functions->DetachCurrentThread(this); | |
1792 } | |
1793 | |
1794 #endif | |
1795 }; | |
1796 | |
1797 JNI_PUBLIC_API(void) JNI_GetDefaultJavaVMInitArgs(void *); | |
1798 | |
1799 JNI_PUBLIC_API(jint) JNI_CreateJavaVM(JavaVM **, JNIEnv **, void *); | |
1800 | |
1801 JNI_PUBLIC_API(jint) JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *); | |
1802 JNI_PUBLIC_API(jref) JNI_MakeLocalRef(JNIEnv *pJNIEnv, void *pHObject); | |
1803 | |
1804 #ifdef __cplusplus | |
1805 } /* extern "C" */ | |
1806 #endif /* __cplusplus */ | |
1807 | |
1808 #endif /* JNI_H */ | |
1809 | |
1810 | |
OLD | NEW |