libjava/ChangeLog:
[official-gcc.git] / libjava / classpath / include / jni.h
blob1c4e69716fdf42add629ee7f0d0e75b1a7b0efb5
1 /* jni.h
2 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008 Free Software Foundation
4 This file is part of GNU Classpath.
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING. If not, write to the
18 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301 USA.
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library. Thus, the terms and
23 conditions of the GNU General Public License cover the whole
24 combination.
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module. An independent module is a module which is not derived from
33 or based on this library. If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so. If you do not wish to do so, delete this
36 exception statement from your version. */
39 /* Note: this file must be compilable by the C compiler (for now,
40 assuming GNU C is ok). This means you must never use `//'
41 comments, and all C++-specific code must be conditional on
42 __cplusplus. */
44 #ifndef _CLASSPATH_JNI_H
45 #define _CLASSPATH_JNI_H
47 /* We include <stdio.h> for compatibility with Sun's <jni.h>. */
48 #include <stdio.h>
50 #include <stdarg.h>
52 #include "jni_md.h"
54 /* The VM might define jobject and friends. */
55 #ifndef _CLASSPATH_VM_JNI_TYPES_DEFINED
57 # ifdef __cplusplus
59 /* Define dummy classes and then define the JNI types as pointers. */
60 struct __jobject {};
61 struct __jclass : __jobject {};
62 struct __jstring : __jobject {};
63 struct __jthrowable : __jobject {};
64 struct __jweak : __jobject {};
65 struct __jarray : __jobject {};
66 struct __jobjectArray : __jarray {};
67 struct __jbyteArray : __jarray {};
68 struct __jshortArray : __jarray {};
69 struct __jintArray : __jarray {};
70 struct __jlongArray : __jarray {};
71 struct __jbooleanArray : __jarray {};
72 struct __jcharArray : __jarray {};
73 struct __jfloatArray : __jarray {};
74 struct __jdoubleArray : __jarray {};
76 typedef __jobject *jobject;
77 typedef __jclass *jclass;
78 typedef __jstring *jstring;
79 typedef __jthrowable *jthrowable;
80 typedef __jweak *jweak;
81 typedef __jarray *jarray;
82 typedef __jobjectArray *jobjectArray;
83 typedef __jbyteArray *jbyteArray;
84 typedef __jshortArray *jshortArray;
85 typedef __jintArray *jintArray;
86 typedef __jlongArray *jlongArray;
87 typedef __jbooleanArray *jbooleanArray;
88 typedef __jcharArray *jcharArray;
89 typedef __jfloatArray *jfloatArray;
90 typedef __jdoubleArray *jdoubleArray;
92 #define JNI_TRUE true
93 #define JNI_FALSE false
95 typedef struct _Jv_JNIEnv JNIEnv;
96 typedef struct _Jv_JavaVM JavaVM;
98 # else /* __cplusplus */
100 /* For C, simply define the class types as generic pointers. */
101 typedef void *jobject;
102 typedef jobject jclass;
103 typedef jobject jstring;
104 typedef jobject jthrowable;
105 typedef jobject jweak;
106 typedef jobject jarray;
107 typedef jobject jobjectArray;
108 typedef jobject jbyteArray;
109 typedef jobject jshortArray;
110 typedef jobject jintArray;
111 typedef jobject jlongArray;
112 typedef jobject jbooleanArray;
113 typedef jobject jcharArray;
114 typedef jobject jfloatArray;
115 typedef jobject jdoubleArray;
117 #define JNI_TRUE 1
118 #define JNI_FALSE 0
120 typedef const struct JNINativeInterface_ *JNIEnv;
121 typedef const struct JNIInvokeInterface_ *JavaVM;
123 # endif /* __cplusplus */
125 #endif /* _CLASSPATH_VM_JNI_TYPES_DEFINED */
128 * Before jni.h is #included within a typical JVM, the source code should
129 * #define _JNI_VM_INTERNAL_TYPES_DEFINED and provide the real declarations
130 * for 'jobject', 'jfieldID', 'jmethodID' and other implementation types.
131 * If _JNI_VM_INTERNAL_TYPES_DEFINED is not defined, the following
132 * declares the old versions of the types.
134 #ifndef _CLASSPATH_VM_INTERNAL_TYPES_DEFINED
135 struct _jfieldID;
136 struct _jmethodID;
137 typedef struct _jfieldID *jfieldID;
138 typedef struct _jmethodID *jmethodID;
139 #endif
141 /* Version numbers. */
142 #define JNI_VERSION_1_1 0x00010001
143 #define JNI_VERSION_1_2 0x00010002
144 #define JNI_VERSION_1_4 0x00010004
145 #define JNI_VERSION_1_6 0x00010006
147 /* Used when releasing array elements. */
148 #define JNI_COMMIT 1
149 #define JNI_ABORT 2
151 /* Error codes */
152 #define JNI_OK 0
153 #define JNI_ERR (-1)
154 #define JNI_EDETACHED (-2)
155 #define JNI_EVERSION (-3)
157 enum _jobjectRefType
159 JNIInvalidRefType = 0,
160 JNILocalRefType = 1,
161 JNIGlobalRefType = 2,
162 JNIWeakGlobalRefType = 3
165 typedef enum _jobjectRefType jobjectRefType;
167 #ifdef __cplusplus
168 extern "C"
170 #endif /* __cplusplus */
172 /* These functions might be defined in libraries which we load; the
173 JNI implementation calls them at the appropriate times. */
174 extern JNIEXPORT jint JNICALL JNI_OnLoad (JavaVM *, void *);
175 extern JNIEXPORT void JNICALL JNI_OnUnload (JavaVM *, void *);
177 /* This can be defined as JNIIMPORT or JNIEXPORT by the md file,
178 depending on whether this is the implementation or a user. */
179 #ifndef _CLASSPATH_JNIIMPEXP
180 #define _CLASSPATH_JNIIMPEXP JNIIMPORT
181 #endif
183 /* These functions are called by user code to start using the
184 invocation API. */
185 extern _CLASSPATH_JNIIMPEXP jint JNICALL
186 JNI_GetDefaultJavaVMInitArgs (void *);
188 extern _CLASSPATH_JNIIMPEXP jint JNICALL
189 JNI_CreateJavaVM (JavaVM **, void **, void *);
191 extern _CLASSPATH_JNIIMPEXP jint JNICALL
192 JNI_GetCreatedJavaVMs (JavaVM **, jsize, jsize *);
194 #ifdef __cplusplus
196 #endif /* __cplusplus */
198 typedef union jvalue
200 jboolean z;
201 jbyte b;
202 jchar c;
203 jshort s;
204 jint i;
205 jlong j;
206 jfloat f;
207 jdouble d;
208 jobject l;
209 } jvalue;
211 /* This structure is used when registering native methods. */
212 typedef struct
214 char *name;
215 char *signature;
216 void *fnPtr; /* Sigh. */
217 } JNINativeMethod;
219 struct JNINativeInterface_
221 void *reserved0;
222 void *reserved1;
223 void *reserved2;
224 void *reserved3;
226 jint (JNICALL *GetVersion) (JNIEnv *);
227 jclass (JNICALL *DefineClass) (JNIEnv *, const char *,
228 jobject, const jbyte *,
229 jsize);
230 jclass (JNICALL *FindClass) (JNIEnv *, const char *);
232 jmethodID (JNICALL *FromReflectedMethod) (JNIEnv *, jobject);
233 jfieldID (JNICALL *FromReflectedField) (JNIEnv *, jobject);
234 jobject (JNICALL *ToReflectedMethod) (JNIEnv *, jclass,
235 jmethodID, jboolean);
237 jclass (JNICALL *GetSuperclass) (JNIEnv *, jclass);
238 jboolean (JNICALL *IsAssignableFrom) (JNIEnv *, jclass, jclass);
240 jobject (JNICALL *ToReflectedField) (JNIEnv *, jclass, jfieldID,
241 jboolean);
243 jint (JNICALL *Throw) (JNIEnv *, jthrowable);
244 jint (JNICALL *ThrowNew) (JNIEnv *, jclass,
245 const char *);
246 jthrowable (JNICALL *ExceptionOccurred) (JNIEnv *);
247 void (JNICALL *ExceptionDescribe) (JNIEnv *);
248 void (JNICALL *ExceptionClear) (JNIEnv *);
249 void (JNICALL *FatalError) (JNIEnv *, const char *);
251 jint (JNICALL *PushLocalFrame) (JNIEnv *, jint);
252 jobject (JNICALL *PopLocalFrame) (JNIEnv *, jobject);
254 jobject (JNICALL *NewGlobalRef) (JNIEnv *, jobject);
255 void (JNICALL *DeleteGlobalRef) (JNIEnv *, jobject);
256 void (JNICALL *DeleteLocalRef) (JNIEnv *, jobject);
257 jboolean (JNICALL *IsSameObject) (JNIEnv *, jobject,
258 jobject);
260 jobject (JNICALL *NewLocalRef) (JNIEnv *, jobject);
261 jint (JNICALL *EnsureLocalCapacity) (JNIEnv *, jint);
263 jobject (JNICALL *AllocObject) (JNIEnv *, jclass);
264 jobject (JNICALL *NewObject) (JNIEnv *, jclass,
265 jmethodID, ...);
266 jobject (JNICALL *NewObjectV) (JNIEnv *, jclass,
267 jmethodID, va_list);
268 jobject (JNICALL *NewObjectA) (JNIEnv *, jclass,
269 jmethodID, const jvalue *);
271 jclass (JNICALL *GetObjectClass) (JNIEnv *, jobject);
272 jboolean (JNICALL *IsInstanceOf) (JNIEnv *, jobject, jclass);
273 jmethodID (JNICALL *GetMethodID) (JNIEnv *, jclass,
274 const char *, const char *);
276 jobject (JNICALL *CallObjectMethod) (JNIEnv *, jobject, jmethodID, ...);
277 jobject (JNICALL *CallObjectMethodV) (JNIEnv *, jobject, jmethodID,
278 va_list);
279 jobject (JNICALL *CallObjectMethodA) (JNIEnv *, jobject, jmethodID,
280 const jvalue *);
281 jboolean (JNICALL *CallBooleanMethod) (JNIEnv *, jobject, jmethodID,
282 ...);
283 jboolean (JNICALL *CallBooleanMethodV) (JNIEnv *, jobject, jmethodID,
284 va_list);
285 jboolean (JNICALL *CallBooleanMethodA) (JNIEnv *, jobject, jmethodID,
286 const jvalue *);
287 jbyte (JNICALL *CallByteMethod) (JNIEnv *, jobject, jmethodID, ...);
288 jbyte (JNICALL *CallByteMethodV) (JNIEnv *, jobject, jmethodID,
289 va_list);
290 jbyte (JNICALL *CallByteMethodA) (JNIEnv *, jobject, jmethodID,
291 const jvalue *);
292 jchar (JNICALL *CallCharMethod) (JNIEnv *, jobject, jmethodID, ...);
293 jchar (JNICALL *CallCharMethodV) (JNIEnv *, jobject, jmethodID,
294 va_list);
295 jchar (JNICALL *CallCharMethodA) (JNIEnv *, jobject, jmethodID,
296 const jvalue *);
297 jshort (JNICALL *CallShortMethod) (JNIEnv *, jobject, jmethodID, ...);
298 jshort (JNICALL *CallShortMethodV) (JNIEnv *, jobject, jmethodID,
299 va_list);
300 jshort (JNICALL *CallShortMethodA) (JNIEnv *, jobject, jmethodID,
301 const jvalue *);
302 jint (JNICALL *CallIntMethod) (JNIEnv *, jobject, jmethodID, ...);
303 jint (JNICALL *CallIntMethodV) (JNIEnv *, jobject, jmethodID,
304 va_list);
305 jint (JNICALL *CallIntMethodA) (JNIEnv *, jobject, jmethodID,
306 const jvalue *);
307 jlong (JNICALL *CallLongMethod) (JNIEnv *, jobject, jmethodID, ...);
308 jlong (JNICALL *CallLongMethodV) (JNIEnv *, jobject, jmethodID,
309 va_list);
310 jlong (JNICALL *CallLongMethodA) (JNIEnv *, jobject, jmethodID,
311 const jvalue *);
312 jfloat (JNICALL *CallFloatMethod) (JNIEnv *, jobject, jmethodID, ...);
313 jfloat (JNICALL *CallFloatMethodV) (JNIEnv *, jobject, jmethodID,
314 va_list);
315 jfloat (JNICALL *CallFloatMethodA) (JNIEnv *, jobject, jmethodID,
316 const jvalue *);
317 jdouble (JNICALL *CallDoubleMethod) (JNIEnv *, jobject, jmethodID, ...);
318 jdouble (JNICALL *CallDoubleMethodV) (JNIEnv *, jobject, jmethodID,
319 va_list);
320 jdouble (JNICALL *CallDoubleMethodA) (JNIEnv *, jobject, jmethodID,
321 const jvalue *);
322 void (JNICALL *CallVoidMethod) (JNIEnv *, jobject, jmethodID, ...);
323 void (JNICALL *CallVoidMethodV) (JNIEnv *, jobject, jmethodID,
324 va_list);
325 void (JNICALL *CallVoidMethodA) (JNIEnv *, jobject, jmethodID,
326 const jvalue *);
328 jobject (JNICALL *CallNonvirtualObjectMethod) (JNIEnv *, jobject, jclass,
329 jmethodID, ...);
330 jobject (JNICALL *CallNonvirtualObjectMethodV) (JNIEnv *, jobject, jclass,
331 jmethodID, va_list);
332 jobject (JNICALL *CallNonvirtualObjectMethodA) (JNIEnv *, jobject, jclass,
333 jmethodID, const jvalue *);
334 jboolean (JNICALL *CallNonvirtualBooleanMethod) (JNIEnv *, jobject, jclass,
335 jmethodID, ...);
336 jboolean (JNICALL *CallNonvirtualBooleanMethodV) (JNIEnv *, jobject, jclass,
337 jmethodID, va_list);
338 jboolean (JNICALL *CallNonvirtualBooleanMethodA) (JNIEnv *, jobject, jclass,
339 jmethodID, const jvalue *);
340 jbyte (JNICALL *CallNonvirtualByteMethod) (JNIEnv *, jobject, jclass,
341 jmethodID, ...);
342 jbyte (JNICALL *CallNonvirtualByteMethodV) (JNIEnv *, jobject, jclass,
343 jmethodID, va_list);
344 jbyte (JNICALL *CallNonvirtualByteMethodA) (JNIEnv *, jobject, jclass,
345 jmethodID, const jvalue *);
346 jchar (JNICALL *CallNonvirtualCharMethod) (JNIEnv *, jobject, jclass,
347 jmethodID, ...);
348 jchar (JNICALL *CallNonvirtualCharMethodV) (JNIEnv *, jobject, jclass,
349 jmethodID, va_list);
350 jchar (JNICALL *CallNonvirtualCharMethodA) (JNIEnv *, jobject, jclass,
351 jmethodID, const jvalue *);
352 jshort (JNICALL *CallNonvirtualShortMethod) (JNIEnv *, jobject, jclass,
353 jmethodID, ...);
354 jshort (JNICALL *CallNonvirtualShortMethodV) (JNIEnv *, jobject, jclass,
355 jmethodID, va_list);
356 jshort (JNICALL *CallNonvirtualShortMethodA) (JNIEnv *, jobject, jclass,
357 jmethodID, const jvalue *);
358 jint (JNICALL *CallNonvirtualIntMethod) (JNIEnv *, jobject, jclass,
359 jmethodID, ...);
360 jint (JNICALL *CallNonvirtualIntMethodV) (JNIEnv *, jobject, jclass,
361 jmethodID, va_list);
362 jint (JNICALL *CallNonvirtualIntMethodA) (JNIEnv *, jobject, jclass,
363 jmethodID, const jvalue *);
364 jlong (JNICALL *CallNonvirtualLongMethod) (JNIEnv *, jobject, jclass,
365 jmethodID, ...);
366 jlong (JNICALL *CallNonvirtualLongMethodV) (JNIEnv *, jobject, jclass,
367 jmethodID, va_list);
368 jlong (JNICALL *CallNonvirtualLongMethodA) (JNIEnv *, jobject, jclass,
369 jmethodID, const jvalue *);
370 jfloat (JNICALL *CallNonvirtualFloatMethod) (JNIEnv *, jobject, jclass,
371 jmethodID, ...);
372 jfloat (JNICALL *CallNonvirtualFloatMethodV) (JNIEnv *, jobject, jclass,
373 jmethodID, va_list);
374 jfloat (JNICALL *CallNonvirtualFloatMethodA) (JNIEnv *, jobject, jclass,
375 jmethodID, const jvalue *);
376 jdouble (JNICALL *CallNonvirtualDoubleMethod) (JNIEnv *, jobject, jclass,
377 jmethodID, ...);
378 jdouble (JNICALL *CallNonvirtualDoubleMethodV) (JNIEnv *, jobject, jclass,
379 jmethodID, va_list);
380 jdouble (JNICALL *CallNonvirtualDoubleMethodA) (JNIEnv *, jobject, jclass,
381 jmethodID, const jvalue *);
382 void (JNICALL *CallNonvirtualVoidMethod) (JNIEnv *, jobject, jclass,
383 jmethodID, ...);
384 void (JNICALL *CallNonvirtualVoidMethodV) (JNIEnv *, jobject, jclass,
385 jmethodID, va_list);
386 void (JNICALL *CallNonvirtualVoidMethodA) (JNIEnv *, jobject, jclass,
387 jmethodID, const jvalue *);
389 jfieldID (JNICALL *GetFieldID) (JNIEnv *, jclass, const char *,
390 const char *);
392 jobject (JNICALL *GetObjectField) (JNIEnv *, jobject, jfieldID);
393 jboolean (JNICALL *GetBooleanField) (JNIEnv *, jobject, jfieldID);
394 jbyte (JNICALL *GetByteField) (JNIEnv *, jobject, jfieldID);
395 jchar (JNICALL *GetCharField) (JNIEnv *, jobject, jfieldID);
396 jshort (JNICALL *GetShortField) (JNIEnv *, jobject, jfieldID);
397 jint (JNICALL *GetIntField) (JNIEnv *, jobject, jfieldID);
398 jlong (JNICALL *GetLongField) (JNIEnv *, jobject, jfieldID);
399 jfloat (JNICALL *GetFloatField) (JNIEnv *, jobject, jfieldID);
400 jdouble (JNICALL *GetDoubleField) (JNIEnv *, jobject, jfieldID);
402 void (JNICALL *SetObjectField) (JNIEnv *, jobject,
403 jfieldID, jobject);
404 void (JNICALL *SetBooleanField) (JNIEnv *, jobject,
405 jfieldID, jboolean);
406 void (JNICALL *SetByteField) (JNIEnv *, jobject,
407 jfieldID, jbyte);
408 void (JNICALL *SetCharField) (JNIEnv *, jobject,
409 jfieldID, jchar);
410 void (JNICALL *SetShortField) (JNIEnv *, jobject,
411 jfieldID, jshort);
412 void (JNICALL *SetIntField) (JNIEnv *, jobject,
413 jfieldID, jint);
414 void (JNICALL *SetLongField) (JNIEnv *, jobject,
415 jfieldID, jlong);
416 void (JNICALL *SetFloatField) (JNIEnv *, jobject,
417 jfieldID, jfloat);
418 void (JNICALL *SetDoubleField) (JNIEnv *, jobject,
419 jfieldID, jdouble);
421 jmethodID (JNICALL *GetStaticMethodID) (JNIEnv *, jclass, const char *,
422 const char *);
424 jobject (JNICALL *CallStaticObjectMethod) (JNIEnv *, jclass, jmethodID,
425 ...);
426 jobject (JNICALL *CallStaticObjectMethodV) (JNIEnv *, jclass, jmethodID,
427 va_list);
428 jobject (JNICALL *CallStaticObjectMethodA) (JNIEnv *, jclass, jmethodID,
429 const jvalue *);
430 jboolean (JNICALL *CallStaticBooleanMethod) (JNIEnv *, jclass, jmethodID,
431 ...);
432 jboolean (JNICALL *CallStaticBooleanMethodV) (JNIEnv *, jclass, jmethodID,
433 va_list);
434 jboolean (JNICALL *CallStaticBooleanMethodA) (JNIEnv *, jclass, jmethodID,
435 const jvalue *);
436 jbyte (JNICALL *CallStaticByteMethod) (JNIEnv *, jclass, jmethodID,
437 ...);
438 jbyte (JNICALL *CallStaticByteMethodV) (JNIEnv *, jclass, jmethodID,
439 va_list);
440 jbyte (JNICALL *CallStaticByteMethodA) (JNIEnv *, jclass, jmethodID,
441 const jvalue *);
442 jchar (JNICALL *CallStaticCharMethod) (JNIEnv *, jclass, jmethodID,
443 ...);
444 jchar (JNICALL *CallStaticCharMethodV) (JNIEnv *, jclass, jmethodID,
445 va_list);
446 jchar (JNICALL *CallStaticCharMethodA) (JNIEnv *, jclass, jmethodID,
447 const jvalue *);
448 jshort (JNICALL *CallStaticShortMethod) (JNIEnv *, jclass, jmethodID,
449 ...);
450 jshort (JNICALL *CallStaticShortMethodV) (JNIEnv *, jclass, jmethodID,
451 va_list);
452 jshort (JNICALL *CallStaticShortMethodA) (JNIEnv *, jclass, jmethodID,
453 const jvalue *);
454 jint (JNICALL *CallStaticIntMethod) (JNIEnv *, jclass, jmethodID,
455 ...);
456 jint (JNICALL *CallStaticIntMethodV) (JNIEnv *, jclass, jmethodID,
457 va_list);
458 jint (JNICALL *CallStaticIntMethodA) (JNIEnv *, jclass, jmethodID,
459 const jvalue *);
460 jlong (JNICALL *CallStaticLongMethod) (JNIEnv *, jclass, jmethodID,
461 ...);
462 jlong (JNICALL *CallStaticLongMethodV) (JNIEnv *, jclass, jmethodID,
463 va_list);
464 jlong (JNICALL *CallStaticLongMethodA) (JNIEnv *, jclass, jmethodID,
465 const jvalue *);
466 jfloat (JNICALL *CallStaticFloatMethod) (JNIEnv *, jclass, jmethodID,
467 ...);
468 jfloat (JNICALL *CallStaticFloatMethodV) (JNIEnv *, jclass, jmethodID,
469 va_list);
470 jfloat (JNICALL *CallStaticFloatMethodA) (JNIEnv *, jclass, jmethodID,
471 const jvalue *);
472 jdouble (JNICALL *CallStaticDoubleMethod) (JNIEnv *, jclass, jmethodID,
473 ...);
474 jdouble (JNICALL *CallStaticDoubleMethodV) (JNIEnv *, jclass, jmethodID,
475 va_list);
476 jdouble (JNICALL *CallStaticDoubleMethodA) (JNIEnv *, jclass, jmethodID,
477 const jvalue *);
478 void (JNICALL *CallStaticVoidMethod) (JNIEnv *, jclass, jmethodID,
479 ...);
480 void (JNICALL *CallStaticVoidMethodV) (JNIEnv *, jclass, jmethodID,
481 va_list);
482 void (JNICALL *CallStaticVoidMethodA) (JNIEnv *, jclass, jmethodID,
483 const jvalue *);
485 jfieldID (JNICALL *GetStaticFieldID) (JNIEnv *, jclass, const char *,
486 const char *);
488 jobject (JNICALL *GetStaticObjectField) (JNIEnv *, jclass, jfieldID);
489 jboolean (JNICALL *GetStaticBooleanField) (JNIEnv *, jclass, jfieldID);
490 jbyte (JNICALL *GetStaticByteField) (JNIEnv *, jclass, jfieldID);
491 jchar (JNICALL *GetStaticCharField) (JNIEnv *, jclass, jfieldID);
492 jshort (JNICALL *GetStaticShortField) (JNIEnv *, jclass, jfieldID);
493 jint (JNICALL *GetStaticIntField) (JNIEnv *, jclass, jfieldID);
494 jlong (JNICALL *GetStaticLongField) (JNIEnv *, jclass, jfieldID);
495 jfloat (JNICALL *GetStaticFloatField) (JNIEnv *, jclass, jfieldID);
496 jdouble (JNICALL *GetStaticDoubleField) (JNIEnv *, jclass, jfieldID);
498 void (JNICALL *SetStaticObjectField) (JNIEnv *, jclass,
499 jfieldID, jobject);
500 void (JNICALL *SetStaticBooleanField) (JNIEnv *, jclass,
501 jfieldID, jboolean);
502 void (JNICALL *SetStaticByteField) (JNIEnv *, jclass,
503 jfieldID, jbyte);
504 void (JNICALL *SetStaticCharField) (JNIEnv *, jclass,
505 jfieldID, jchar);
506 void (JNICALL *SetStaticShortField) (JNIEnv *, jclass,
507 jfieldID, jshort);
508 void (JNICALL *SetStaticIntField) (JNIEnv *, jclass,
509 jfieldID, jint);
510 void (JNICALL *SetStaticLongField) (JNIEnv *, jclass,
511 jfieldID, jlong);
512 void (JNICALL *SetStaticFloatField) (JNIEnv *, jclass,
513 jfieldID, jfloat);
514 void (JNICALL *SetStaticDoubleField) (JNIEnv *, jclass,
515 jfieldID, jdouble);
517 jstring (JNICALL *NewString) (JNIEnv *, const jchar *, jsize);
518 jsize (JNICALL *GetStringLength) (JNIEnv *, jstring);
519 const jchar * (JNICALL *GetStringChars) (JNIEnv *, jstring, jboolean *);
520 void (JNICALL *ReleaseStringChars) (JNIEnv *, jstring, const jchar *);
521 jstring (JNICALL *NewStringUTF) (JNIEnv *, const char *);
522 jsize (JNICALL *GetStringUTFLength) (JNIEnv *, jstring);
523 const char * (JNICALL *GetStringUTFChars) (JNIEnv *, jstring, jboolean *);
524 void (JNICALL *ReleaseStringUTFChars) (JNIEnv *, jstring, const char *);
525 jsize (JNICALL *GetArrayLength) (JNIEnv *, jarray);
526 jobjectArray (JNICALL *NewObjectArray) (JNIEnv *, jsize, jclass, jobject);
527 jobject (JNICALL *GetObjectArrayElement) (JNIEnv *, jobjectArray, jsize);
528 void (JNICALL *SetObjectArrayElement) (JNIEnv *, jobjectArray, jsize,
529 jobject);
531 jbooleanArray (JNICALL *NewBooleanArray) (JNIEnv *, jsize);
532 jbyteArray (JNICALL *NewByteArray) (JNIEnv *, jsize);
533 jcharArray (JNICALL *NewCharArray) (JNIEnv *, jsize);
534 jshortArray (JNICALL *NewShortArray) (JNIEnv *, jsize);
535 jintArray (JNICALL *NewIntArray) (JNIEnv *, jsize);
536 jlongArray (JNICALL *NewLongArray) (JNIEnv *, jsize);
537 jfloatArray (JNICALL *NewFloatArray) (JNIEnv *, jsize);
538 jdoubleArray (JNICALL *NewDoubleArray) (JNIEnv *, jsize);
540 jboolean * (JNICALL *GetBooleanArrayElements) (JNIEnv *, jbooleanArray,
541 jboolean *);
542 jbyte * (JNICALL *GetByteArrayElements) (JNIEnv *, jbyteArray,
543 jboolean *);
544 jchar * (JNICALL *GetCharArrayElements) (JNIEnv *, jcharArray,
545 jboolean *);
546 jshort * (JNICALL *GetShortArrayElements) (JNIEnv *, jshortArray,
547 jboolean *);
548 jint * (JNICALL *GetIntArrayElements) (JNIEnv *, jintArray,
549 jboolean *);
550 jlong * (JNICALL *GetLongArrayElements) (JNIEnv *, jlongArray,
551 jboolean *);
552 jfloat * (JNICALL *GetFloatArrayElements) (JNIEnv *, jfloatArray,
553 jboolean *);
554 jdouble * (JNICALL *GetDoubleArrayElements) (JNIEnv *, jdoubleArray,
555 jboolean *);
557 void (JNICALL *ReleaseBooleanArrayElements) (JNIEnv *, jbooleanArray,
558 jboolean *, jint);
559 void (JNICALL *ReleaseByteArrayElements) (JNIEnv *, jbyteArray,
560 jbyte *, jint);
561 void (JNICALL *ReleaseCharArrayElements) (JNIEnv *, jcharArray,
562 jchar *, jint);
563 void (JNICALL *ReleaseShortArrayElements) (JNIEnv *, jshortArray,
564 jshort *, jint);
565 void (JNICALL *ReleaseIntArrayElements) (JNIEnv *, jintArray,
566 jint *, jint);
567 void (JNICALL *ReleaseLongArrayElements) (JNIEnv *, jlongArray,
568 jlong *, jint);
569 void (JNICALL *ReleaseFloatArrayElements) (JNIEnv *, jfloatArray,
570 jfloat *, jint);
571 void (JNICALL *ReleaseDoubleArrayElements) (JNIEnv *, jdoubleArray,
572 jdouble *, jint);
574 void (JNICALL *GetBooleanArrayRegion) (JNIEnv *, jbooleanArray,
575 jsize, jsize, jboolean *);
576 void (JNICALL *GetByteArrayRegion) (JNIEnv *, jbyteArray,
577 jsize, jsize, jbyte *);
578 void (JNICALL *GetCharArrayRegion) (JNIEnv *, jcharArray,
579 jsize, jsize, jchar *);
580 void (JNICALL *GetShortArrayRegion) (JNIEnv *, jshortArray,
581 jsize, jsize, jshort *);
582 void (JNICALL *GetIntArrayRegion) (JNIEnv *, jintArray,
583 jsize, jsize, jint *);
584 void (JNICALL *GetLongArrayRegion) (JNIEnv *, jlongArray,
585 jsize, jsize, jlong *);
586 void (JNICALL *GetFloatArrayRegion) (JNIEnv *, jfloatArray,
587 jsize, jsize, jfloat *);
588 void (JNICALL *GetDoubleArrayRegion) (JNIEnv *, jdoubleArray,
589 jsize, jsize, jdouble *);
591 void (JNICALL *SetBooleanArrayRegion) (JNIEnv *, jbooleanArray,
592 jsize, jsize,
593 const jboolean *);
594 void (JNICALL *SetByteArrayRegion) (JNIEnv *, jbyteArray,
595 jsize, jsize,
596 const jbyte *);
597 void (JNICALL *SetCharArrayRegion) (JNIEnv *, jcharArray,
598 jsize, jsize,
599 const jchar *);
600 void (JNICALL *SetShortArrayRegion) (JNIEnv *, jshortArray,
601 jsize, jsize,
602 const jshort *);
603 void (JNICALL *SetIntArrayRegion) (JNIEnv *, jintArray,
604 jsize, jsize,
605 const jint *);
606 void (JNICALL *SetLongArrayRegion) (JNIEnv *, jlongArray,
607 jsize, jsize,
608 const jlong *);
609 void (JNICALL *SetFloatArrayRegion) (JNIEnv *, jfloatArray,
610 jsize, jsize,
611 const jfloat *);
612 void (JNICALL *SetDoubleArrayRegion) (JNIEnv *, jdoubleArray,
613 jsize, jsize,
614 const jdouble *);
616 jint (JNICALL *RegisterNatives) (JNIEnv *, jclass,
617 const JNINativeMethod *,
618 jint);
619 jint (JNICALL *UnregisterNatives) (JNIEnv *, jclass);
620 jint (JNICALL *MonitorEnter) (JNIEnv *, jobject);
621 jint (JNICALL *MonitorExit) (JNIEnv *, jobject);
622 jint (JNICALL *GetJavaVM) (JNIEnv *, JavaVM **);
624 /* ---- JNI 1.2 functions ---- */
626 void (JNICALL *GetStringRegion) (JNIEnv *, jstring, jsize,
627 jsize, jchar *);
628 void (JNICALL *GetStringUTFRegion) (JNIEnv *, jstring, jsize,
629 jsize, char *);
631 void * (JNICALL *GetPrimitiveArrayCritical) (JNIEnv *, jarray,
632 jboolean *);
633 void (JNICALL *ReleasePrimitiveArrayCritical) (JNIEnv *, jarray, void *,
634 jint);
636 const jchar * (JNICALL *GetStringCritical) (JNIEnv *, jstring,
637 jboolean *);
638 void (JNICALL *ReleaseStringCritical) (JNIEnv *, jstring,
639 const jchar *);
641 jweak (JNICALL *NewWeakGlobalRef) (JNIEnv *, jobject);
642 void (JNICALL *DeleteWeakGlobalRef) (JNIEnv *, jweak);
644 jboolean (JNICALL *ExceptionCheck) (JNIEnv *);
646 /* ---- JNI 1.4 functions ---- */
648 jobject (JNICALL *NewDirectByteBuffer) (JNIEnv *, void *, jlong);
649 void * (JNICALL *GetDirectBufferAddress) (JNIEnv *, jobject);
650 jlong (JNICALL *GetDirectBufferCapacity) (JNIEnv *, jobject);
652 /* ---- JNI 1.6 functions ---- */
654 jobjectRefType (JNICALL *GetObjectRefType) (JNIEnv *, jobject);
657 #ifdef __cplusplus
659 class _Jv_JNIEnv
661 public:
662 /* The method table. */
663 struct JNINativeInterface_ *functions;
665 #ifdef _CLASSPATH_JNIENV_CONTENTS
666 _CLASSPATH_JNIENV_CONTENTS
667 #endif
669 jint GetVersion ()
670 { return functions->GetVersion (this); }
672 jclass DefineClass (const char *name, jobject obj0, const jbyte * val1,
673 jsize val2)
674 { return functions->DefineClass (this, name, obj0, val1, val2); }
676 jclass FindClass (const char * val0)
677 { return functions->FindClass (this, val0); }
679 jmethodID FromReflectedMethod (jobject obj0)
680 { return functions->FromReflectedMethod (this, obj0); }
682 jfieldID FromReflectedField (jobject obj0)
683 { return functions->FromReflectedField (this, obj0); }
685 jobject ToReflectedMethod (jclass cl0, jmethodID meth1, jboolean val2)
686 { return functions->ToReflectedMethod (this, cl0, meth1, val2); }
688 jclass GetSuperclass (jclass cl0)
689 { return functions->GetSuperclass (this, cl0); }
691 jboolean IsAssignableFrom (jclass cl0, jclass cl1)
692 { return functions->IsAssignableFrom (this, cl0, cl1); }
694 jobject ToReflectedField (jclass cl0, jfieldID fld1, jboolean val2)
695 { return functions->ToReflectedField (this, cl0, fld1, val2); }
697 jint Throw (jthrowable val0)
698 { return functions->Throw (this, val0); }
700 jint ThrowNew (jclass cl0, const char * val1)
701 { return functions->ThrowNew (this, cl0, val1); }
703 jthrowable ExceptionOccurred ()
704 { return functions->ExceptionOccurred (this); }
706 void ExceptionDescribe ()
707 { functions->ExceptionDescribe (this); }
709 void ExceptionClear ()
710 { functions->ExceptionClear (this); }
712 void FatalError (const char * val0)
713 { functions->FatalError (this, val0); }
715 jint PushLocalFrame (jint val0)
716 { return functions->PushLocalFrame (this, val0); }
718 jobject PopLocalFrame (jobject obj0)
719 { return functions->PopLocalFrame (this, obj0); }
721 jobject NewGlobalRef (jobject obj0)
722 { return functions->NewGlobalRef (this, obj0); }
724 void DeleteGlobalRef (jobject obj0)
725 { functions->DeleteGlobalRef (this, obj0); }
727 void DeleteLocalRef (jobject obj0)
728 { functions->DeleteLocalRef (this, obj0); }
730 jboolean IsSameObject (jobject obj0, jobject obj1)
731 { return functions->IsSameObject (this, obj0, obj1); }
733 jobject NewLocalRef (jobject obj0)
734 { return functions->NewLocalRef (this, obj0); }
736 jint EnsureLocalCapacity (jint val0)
737 { return functions->EnsureLocalCapacity (this, val0); }
739 jobject AllocObject (jclass cl0)
740 { return functions->AllocObject (this, cl0); }
742 jobject NewObject (jclass cl0, jmethodID meth1, ...)
744 va_list args;
745 va_start (args, meth1);
746 jobject result = functions->NewObjectV (this, cl0, meth1, args);
747 va_end (args);
748 return result;
751 jobject NewObjectV (jclass cl0, jmethodID meth1, va_list val2)
752 { return functions->NewObjectV (this, cl0, meth1, val2); }
754 jobject NewObjectA (jclass cl0, jmethodID meth1, jvalue * val2)
755 { return functions->NewObjectA (this, cl0, meth1, val2); }
757 jclass GetObjectClass (jobject obj0)
758 { return functions->GetObjectClass (this, obj0); }
760 jboolean IsInstanceOf (jobject obj0, jclass cl1)
761 { return functions->IsInstanceOf (this, obj0, cl1); }
763 jmethodID GetMethodID (jclass cl0, const char * val1, const char * val2)
764 { return functions->GetMethodID (this, cl0, val1, val2); }
766 jobject CallObjectMethod (jobject obj0, jmethodID meth1, ...)
768 va_list args;
769 va_start (args, meth1);
770 jobject result = functions->CallObjectMethodV (this, obj0, meth1, args);
771 va_end (args);
772 return result;
775 jobject CallObjectMethodV (jobject obj0, jmethodID meth1, va_list val2)
776 { return functions->CallObjectMethodV (this, obj0, meth1, val2); }
778 jobject CallObjectMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
779 { return functions->CallObjectMethodA (this, obj0, meth1, val2); }
781 jboolean CallBooleanMethod (jobject obj0, jmethodID meth1, ...)
783 va_list args;
784 va_start (args, meth1);
785 jboolean result = functions->CallBooleanMethodV (this, obj0, meth1, args);
786 va_end (args);
787 return result;
790 jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, va_list val2)
791 { return functions->CallBooleanMethodV (this, obj0, meth1, val2); }
793 jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1,
794 const jvalue * val2)
795 { return functions->CallBooleanMethodA (this, obj0, meth1, val2); }
797 jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
799 va_list args;
800 va_start (args, meth1);
801 jbyte result = functions->CallByteMethodV (this, obj0, meth1, args);
802 va_end (args);
803 return result;
806 jbyte CallByteMethodV (jobject obj0, jmethodID meth1, va_list val2)
807 { return functions->CallByteMethodV (this, obj0, meth1, val2); }
809 jbyte CallByteMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
810 { return functions->CallByteMethodA (this, obj0, meth1, val2); }
812 jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
814 va_list args;
815 va_start (args, meth1);
816 jchar result = functions->CallCharMethodV (this, obj0, meth1, args);
817 va_end (args);
818 return result;
821 jchar CallCharMethodV (jobject obj0, jmethodID meth1, va_list val2)
822 { return functions->CallCharMethodV (this, obj0, meth1, val2); }
824 jchar CallCharMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
825 { return functions->CallCharMethodA (this, obj0, meth1, val2); }
827 jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
829 va_list args;
830 va_start (args, meth1);
831 jshort result = functions->CallShortMethodV (this, obj0, meth1, args);
832 va_end (args);
833 return result;
836 jshort CallShortMethodV (jobject obj0, jmethodID meth1, va_list val2)
837 { return functions->CallShortMethodV (this, obj0, meth1, val2); }
839 jshort CallShortMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
840 { return functions->CallShortMethodA (this, obj0, meth1, val2); }
842 jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
844 va_list args;
845 va_start (args, meth1);
846 jint result = functions->CallIntMethodV (this, obj0, meth1, args);
847 va_end (args);
848 return result;
851 jint CallIntMethodV (jobject obj0, jmethodID meth1, va_list val2)
852 { return functions->CallIntMethodV (this, obj0, meth1, val2); }
854 jint CallIntMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
855 { return functions->CallIntMethodA (this, obj0, meth1, val2); }
857 jlong CallLongMethod (jobject obj0, jmethodID meth1, ...)
859 va_list args;
860 va_start (args, meth1);
861 jlong result = functions->CallLongMethodV (this, obj0, meth1, args);
862 va_end (args);
863 return result;
866 jlong CallLongMethodV (jobject obj0, jmethodID meth1, va_list val2)
867 { return functions->CallLongMethodV (this, obj0, meth1, val2); }
869 jlong CallLongMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
870 { return functions->CallLongMethodA (this, obj0, meth1, val2); }
872 jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
874 va_list args;
875 va_start (args, meth1);
876 jfloat result = functions->CallFloatMethodV (this, obj0, meth1, args);
877 va_end (args);
878 return result;
881 jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, va_list val2)
882 { return functions->CallFloatMethodV (this, obj0, meth1, val2); }
884 jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
885 { return functions->CallFloatMethodA (this, obj0, meth1, val2); }
887 jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
889 va_list args;
890 va_start (args, meth1);
891 jdouble result = functions->CallDoubleMethodV (this, obj0, meth1, args);
892 va_end (args);
893 return result;
896 jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, va_list val2)
897 { return functions->CallDoubleMethodV (this, obj0, meth1, val2); }
899 jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
900 { return functions->CallDoubleMethodA (this, obj0, meth1, val2); }
902 void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
904 va_list args;
905 va_start (args, meth1);
906 functions->CallVoidMethodV (this, obj0, meth1, args);
907 va_end (args);
910 void CallVoidMethodV (jobject obj0, jmethodID meth1, va_list val2)
911 { functions->CallVoidMethodV (this, obj0, meth1, val2); }
913 void CallVoidMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
914 { functions->CallVoidMethodA (this, obj0, meth1, val2); }
916 jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
918 va_list args;
919 va_start (args, meth2);
920 jobject result = functions->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);
921 va_end (args);
922 return result;
925 jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
926 { return functions->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
928 jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
929 { return functions->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
931 jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
933 va_list args;
934 va_start (args, meth2);
935 jboolean result = functions->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);
936 va_end (args);
937 return result;
940 jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
941 { return functions->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
943 jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
944 { return functions->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
946 jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
948 va_list args;
949 va_start (args, meth2);
950 jbyte result = functions->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);
951 va_end (args);
952 return result;
955 jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
956 { return functions->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
958 jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
959 { return functions->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
961 jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
963 va_list args;
964 va_start (args, meth2);
965 jchar result = functions->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);
966 va_end (args);
967 return result;
970 jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
971 { return functions->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
973 jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
974 { return functions->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
976 jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
978 va_list args;
979 va_start (args, meth2);
980 jshort result = functions->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);
981 va_end (args);
982 return result;
985 jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
986 { return functions->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
988 jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
989 { return functions->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
991 jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
993 va_list args;
994 va_start (args, meth2);
995 jint result = functions->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);
996 va_end (args);
997 return result;
1000 jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1001 { return functions->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
1003 jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
1004 { return functions->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
1006 jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1008 va_list args;
1009 va_start (args, meth2);
1010 jlong result = functions->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);
1011 va_end (args);
1012 return result;
1015 jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1016 { return functions->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
1018 jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
1019 { return functions->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
1021 jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1023 va_list args;
1024 va_start (args, meth2);
1025 jfloat result = functions->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);
1026 va_end (args);
1027 return result;
1030 jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1031 { return functions->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
1033 jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
1034 { return functions->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
1036 jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1038 va_list args;
1039 va_start (args, meth2);
1040 jdouble result = functions->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);
1041 va_end (args);
1042 return result;
1045 jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1046 { return functions->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
1048 jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
1049 { return functions->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
1051 void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1053 va_list args;
1054 va_start (args, meth2);
1055 functions->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
1056 va_end (args);
1059 void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1060 { functions->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
1062 void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
1063 { functions->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
1065 jfieldID GetFieldID (jclass cl0, const char * val1, const char * val2)
1066 { return functions->GetFieldID (this, cl0, val1, val2); }
1068 jobject GetObjectField (jobject obj0, jfieldID fld1)
1069 { return functions->GetObjectField (this, obj0, fld1); }
1071 jboolean GetBooleanField (jobject obj0, jfieldID fld1)
1072 { return functions->GetBooleanField (this, obj0, fld1); }
1074 jbyte GetByteField (jobject obj0, jfieldID fld1)
1075 { return functions->GetByteField (this, obj0, fld1); }
1077 jchar GetCharField (jobject obj0, jfieldID fld1)
1078 { return functions->GetCharField (this, obj0, fld1); }
1080 jshort GetShortField (jobject obj0, jfieldID fld1)
1081 { return functions->GetShortField (this, obj0, fld1); }
1083 jint GetIntField (jobject obj0, jfieldID fld1)
1084 { return functions->GetIntField (this, obj0, fld1); }
1086 jlong GetLongField (jobject obj0, jfieldID fld1)
1087 { return functions->GetLongField (this, obj0, fld1); }
1089 jfloat GetFloatField (jobject obj0, jfieldID fld1)
1090 { return functions->GetFloatField (this, obj0, fld1); }
1092 jdouble GetDoubleField (jobject obj0, jfieldID fld1)
1093 { return functions->GetDoubleField (this, obj0, fld1); }
1095 void SetObjectField (jobject obj0, jfieldID fld1, jobject obj2)
1096 { functions->SetObjectField (this, obj0, fld1, obj2); }
1098 void SetBooleanField (jobject obj0, jfieldID fld1, jboolean val2)
1099 { functions->SetBooleanField (this, obj0, fld1, val2); }
1101 void SetByteField (jobject obj0, jfieldID fld1, jbyte val2)
1102 { functions->SetByteField (this, obj0, fld1, val2); }
1104 void SetCharField (jobject obj0, jfieldID fld1, jchar val2)
1105 { functions->SetCharField (this, obj0, fld1, val2); }
1107 void SetShortField (jobject obj0, jfieldID fld1, jshort val2)
1108 { functions->SetShortField (this, obj0, fld1, val2); }
1110 void SetIntField (jobject obj0, jfieldID fld1, jint val2)
1111 { functions->SetIntField (this, obj0, fld1, val2); }
1113 void SetLongField (jobject obj0, jfieldID fld1, jlong val2)
1114 { functions->SetLongField (this, obj0, fld1, val2); }
1116 void SetFloatField (jobject obj0, jfieldID fld1, jfloat val2)
1117 { functions->SetFloatField (this, obj0, fld1, val2); }
1119 void SetDoubleField (jobject obj0, jfieldID fld1, jdouble val2)
1120 { functions->SetDoubleField (this, obj0, fld1, val2); }
1122 jmethodID GetStaticMethodID (jclass cl0, const char * val1, const char * val2)
1123 { return functions->GetStaticMethodID (this, cl0, val1, val2); }
1125 jobject CallStaticObjectMethod (jclass cl0, jmethodID meth1, ...)
1127 va_list args;
1128 va_start (args, meth1);
1129 jobject result = functions->CallStaticObjectMethodV (this, cl0, meth1, args);
1130 va_end (args);
1131 return result;
1134 jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, va_list val2)
1135 { return functions->CallStaticObjectMethodV (this, cl0, meth1, val2); }
1137 jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1,
1138 const jvalue * val2)
1139 { return functions->CallStaticObjectMethodA (this, cl0, meth1, val2); }
1141 jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
1143 va_list args;
1144 va_start (args, meth1);
1145 jboolean result = functions->CallStaticBooleanMethodV (this, cl0, meth1, args);
1146 va_end (args);
1147 return result;
1150 jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, va_list val2)
1151 { return functions->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
1153 jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1,
1154 const jvalue * val2)
1155 { return functions->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
1157 jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
1159 va_list args;
1160 va_start (args, meth1);
1161 jbyte result = functions->CallStaticByteMethodV (this, cl0, meth1, args);
1162 va_end (args);
1163 return result;
1166 jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, va_list val2)
1167 { return functions->CallStaticByteMethodV (this, cl0, meth1, val2); }
1169 jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
1170 { return functions->CallStaticByteMethodA (this, cl0, meth1, val2); }
1172 jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
1174 va_list args;
1175 va_start (args, meth1);
1176 jchar result = functions->CallStaticCharMethodV (this, cl0, meth1, args);
1177 va_end (args);
1178 return result;
1181 jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, va_list val2)
1182 { return functions->CallStaticCharMethodV (this, cl0, meth1, val2); }
1184 jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
1185 { return functions->CallStaticCharMethodA (this, cl0, meth1, val2); }
1187 jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
1189 va_list args;
1190 va_start (args, meth1);
1191 jshort result = functions->CallStaticShortMethodV (this, cl0, meth1, args);
1192 va_end (args);
1193 return result;
1196 jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, va_list val2)
1197 { return functions->CallStaticShortMethodV (this, cl0, meth1, val2); }
1199 jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1,
1200 const jvalue * val2)
1201 { return functions->CallStaticShortMethodA (this, cl0, meth1, val2); }
1203 jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
1205 va_list args;
1206 va_start (args, meth1);
1207 jint result = functions->CallStaticIntMethodV (this, cl0, meth1, args);
1208 va_end (args);
1209 return result;
1212 jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, va_list val2)
1213 { return functions->CallStaticIntMethodV (this, cl0, meth1, val2); }
1215 jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
1216 { return functions->CallStaticIntMethodA (this, cl0, meth1, val2); }
1218 jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
1220 va_list args;
1221 va_start (args, meth1);
1222 jlong result = functions->CallStaticLongMethodV (this, cl0, meth1, args);
1223 va_end (args);
1224 return result;
1227 jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, va_list val2)
1228 { return functions->CallStaticLongMethodV (this, cl0, meth1, val2); }
1230 jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
1231 { return functions->CallStaticLongMethodA (this, cl0, meth1, val2); }
1233 jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
1235 va_list args;
1236 va_start (args, meth1);
1237 jfloat result = functions->CallStaticFloatMethodV (this, cl0, meth1, args);
1238 va_end (args);
1239 return result;
1242 jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, va_list val2)
1243 { return functions->CallStaticFloatMethodV (this, cl0, meth1, val2); }
1245 jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1,
1246 const jvalue * val2)
1247 { return functions->CallStaticFloatMethodA (this, cl0, meth1, val2); }
1249 jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
1251 va_list args;
1252 va_start (args, meth1);
1253 jdouble result = functions->CallStaticDoubleMethodV (this, cl0, meth1, args);
1254 va_end (args);
1255 return result;
1258 jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, va_list val2)
1259 { return functions->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
1261 jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1,
1262 const jvalue * val2)
1263 { return functions->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
1265 void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
1267 va_list args;
1268 va_start (args, meth1);
1269 functions->CallStaticVoidMethodV (this, cl0, meth1, args);
1270 va_end (args);
1273 void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, va_list val2)
1274 { functions->CallStaticVoidMethodV (this, cl0, meth1, val2); }
1276 void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
1277 { functions->CallStaticVoidMethodA (this, cl0, meth1, val2); }
1279 jfieldID GetStaticFieldID (jclass cl0, const char * val1, const char * val2)
1280 { return functions->GetStaticFieldID (this, cl0, val1, val2); }
1282 jobject GetStaticObjectField (jclass cl0, jfieldID fld1)
1283 { return functions->GetStaticObjectField (this, cl0, fld1); }
1285 jboolean GetStaticBooleanField (jclass cl0, jfieldID fld1)
1286 { return functions->GetStaticBooleanField (this, cl0, fld1); }
1288 jbyte GetStaticByteField (jclass cl0, jfieldID fld1)
1289 { return functions->GetStaticByteField (this, cl0, fld1); }
1291 jchar GetStaticCharField (jclass cl0, jfieldID fld1)
1292 { return functions->GetStaticCharField (this, cl0, fld1); }
1294 jshort GetStaticShortField (jclass cl0, jfieldID fld1)
1295 { return functions->GetStaticShortField (this, cl0, fld1); }
1297 jint GetStaticIntField (jclass cl0, jfieldID fld1)
1298 { return functions->GetStaticIntField (this, cl0, fld1); }
1300 jlong GetStaticLongField (jclass cl0, jfieldID fld1)
1301 { return functions->GetStaticLongField (this, cl0, fld1); }
1303 jfloat GetStaticFloatField (jclass cl0, jfieldID fld1)
1304 { return functions->GetStaticFloatField (this, cl0, fld1); }
1306 jdouble GetStaticDoubleField (jclass cl0, jfieldID fld1)
1307 { return functions->GetStaticDoubleField (this, cl0, fld1); }
1309 void SetStaticObjectField (jclass cl0, jfieldID fld1, jobject obj2)
1310 { functions->SetStaticObjectField (this, cl0, fld1, obj2); }
1312 void SetStaticBooleanField (jclass cl0, jfieldID fld1, jboolean val2)
1313 { functions->SetStaticBooleanField (this, cl0, fld1, val2); }
1315 void SetStaticByteField (jclass cl0, jfieldID fld1, jbyte val2)
1316 { functions->SetStaticByteField (this, cl0, fld1, val2); }
1318 void SetStaticCharField (jclass cl0, jfieldID fld1, jchar val2)
1319 { functions->SetStaticCharField (this, cl0, fld1, val2); }
1321 void SetStaticShortField (jclass cl0, jfieldID fld1, jshort val2)
1322 { functions->SetStaticShortField (this, cl0, fld1, val2); }
1324 void SetStaticIntField (jclass cl0, jfieldID fld1, jint val2)
1325 { functions->SetStaticIntField (this, cl0, fld1, val2); }
1327 void SetStaticLongField (jclass cl0, jfieldID fld1, jlong val2)
1328 { functions->SetStaticLongField (this, cl0, fld1, val2); }
1330 void SetStaticFloatField (jclass cl0, jfieldID fld1, jfloat val2)
1331 { functions->SetStaticFloatField (this, cl0, fld1, val2); }
1333 void SetStaticDoubleField (jclass cl0, jfieldID fld1, jdouble val2)
1334 { functions->SetStaticDoubleField (this, cl0, fld1, val2); }
1336 jstring NewString (const jchar * val0, jsize val1)
1337 { return functions->NewString (this, val0, val1); }
1339 jint GetStringLength (jstring val0)
1340 { return functions->GetStringLength (this, val0); }
1342 const jchar * GetStringChars (jstring val0, jboolean * val1)
1343 { return functions->GetStringChars (this, val0, val1); }
1345 void ReleaseStringChars (jstring val0, const jchar * val1)
1346 { functions->ReleaseStringChars (this, val0, val1); }
1348 jstring NewStringUTF (const char * val0)
1349 { return functions->NewStringUTF (this, val0); }
1351 jsize GetStringUTFLength (jstring val0)
1352 { return functions->GetStringUTFLength (this, val0); }
1354 const char * GetStringUTFChars (jstring val0, jboolean * val1)
1355 { return functions->GetStringUTFChars (this, val0, val1); }
1357 void ReleaseStringUTFChars (jstring val0, const char * val1)
1358 { functions->ReleaseStringUTFChars (this, val0, val1); }
1360 jsize GetArrayLength (jarray val0)
1361 { return functions->GetArrayLength (this, val0); }
1363 jobjectArray NewObjectArray (jsize val0, jclass cl1, jobject obj2)
1364 { return functions->NewObjectArray (this, val0, cl1, obj2); }
1366 jobject GetObjectArrayElement (jobjectArray val0, jsize val1)
1367 { return functions->GetObjectArrayElement (this, val0, val1); }
1369 void SetObjectArrayElement (jobjectArray val0, jsize val1, jobject obj2)
1370 { functions->SetObjectArrayElement (this, val0, val1, obj2); }
1372 jbooleanArray NewBooleanArray (jsize val0)
1373 { return functions->NewBooleanArray (this, val0); }
1375 jbyteArray NewByteArray (jsize val0)
1376 { return functions->NewByteArray (this, val0); }
1378 jcharArray NewCharArray (jsize val0)
1379 { return functions->NewCharArray (this, val0); }
1381 jshortArray NewShortArray (jsize val0)
1382 { return functions->NewShortArray (this, val0); }
1384 jintArray NewIntArray (jsize val0)
1385 { return functions->NewIntArray (this, val0); }
1387 jlongArray NewLongArray (jsize val0)
1388 { return functions->NewLongArray (this, val0); }
1390 jfloatArray NewFloatArray (jsize val0)
1391 { return functions->NewFloatArray (this, val0); }
1393 jdoubleArray NewDoubleArray (jsize val0)
1394 { return functions->NewDoubleArray (this, val0); }
1396 jboolean * GetBooleanArrayElements (jbooleanArray val0, jboolean * val1)
1397 { return functions->GetBooleanArrayElements (this, val0, val1); }
1399 jbyte * GetByteArrayElements (jbyteArray val0, jboolean * val1)
1400 { return functions->GetByteArrayElements (this, val0, val1); }
1402 jchar * GetCharArrayElements (jcharArray val0, jboolean * val1)
1403 { return functions->GetCharArrayElements (this, val0, val1); }
1405 jshort * GetShortArrayElements (jshortArray val0, jboolean * val1)
1406 { return functions->GetShortArrayElements (this, val0, val1); }
1408 jint * GetIntArrayElements (jintArray val0, jboolean * val1)
1409 { return functions->GetIntArrayElements (this, val0, val1); }
1411 jlong * GetLongArrayElements (jlongArray val0, jboolean * val1)
1412 { return functions->GetLongArrayElements (this, val0, val1); }
1414 jfloat * GetFloatArrayElements (jfloatArray val0, jboolean * val1)
1415 { return functions->GetFloatArrayElements (this, val0, val1); }
1417 jdouble * GetDoubleArrayElements (jdoubleArray val0, jboolean * val1)
1418 { return functions->GetDoubleArrayElements (this, val0, val1); }
1420 void ReleaseBooleanArrayElements (jbooleanArray val0, jboolean * val1, jint val2)
1421 { functions->ReleaseBooleanArrayElements (this, val0, val1, val2); }
1423 void ReleaseByteArrayElements (jbyteArray val0, jbyte * val1, jint val2)
1424 { functions->ReleaseByteArrayElements (this, val0, val1, val2); }
1426 void ReleaseCharArrayElements (jcharArray val0, jchar * val1, jint val2)
1427 { functions->ReleaseCharArrayElements (this, val0, val1, val2); }
1429 void ReleaseShortArrayElements (jshortArray val0, jshort * val1, jint val2)
1430 { functions->ReleaseShortArrayElements (this, val0, val1, val2); }
1432 void ReleaseIntArrayElements (jintArray val0, jint * val1, jint val2)
1433 { functions->ReleaseIntArrayElements (this, val0, val1, val2); }
1435 void ReleaseLongArrayElements (jlongArray val0, jlong * val1, jint val2)
1436 { functions->ReleaseLongArrayElements (this, val0, val1, val2); }
1438 void ReleaseFloatArrayElements (jfloatArray val0, jfloat * val1, jint val2)
1439 { functions->ReleaseFloatArrayElements (this, val0, val1, val2); }
1441 void ReleaseDoubleArrayElements (jdoubleArray val0, jdouble * val1, jint val2)
1442 { functions->ReleaseDoubleArrayElements (this, val0, val1, val2); }
1444 void GetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
1445 { functions->GetBooleanArrayRegion (this, val0, val1, val2, val3); }
1447 void GetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
1448 { functions->GetByteArrayRegion (this, val0, val1, val2, val3); }
1450 void GetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
1451 { functions->GetCharArrayRegion (this, val0, val1, val2, val3); }
1453 void GetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
1454 { functions->GetShortArrayRegion (this, val0, val1, val2, val3); }
1456 void GetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
1457 { functions->GetIntArrayRegion (this, val0, val1, val2, val3); }
1459 void GetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
1460 { functions->GetLongArrayRegion (this, val0, val1, val2, val3); }
1462 void GetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
1463 { functions->GetFloatArrayRegion (this, val0, val1, val2, val3); }
1465 void GetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
1466 { functions->GetDoubleArrayRegion (this, val0, val1, val2, val3); }
1468 void SetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
1469 { functions->SetBooleanArrayRegion (this, val0, val1, val2, val3); }
1471 void SetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
1472 { functions->SetByteArrayRegion (this, val0, val1, val2, val3); }
1474 void SetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
1475 { functions->SetCharArrayRegion (this, val0, val1, val2, val3); }
1477 void SetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
1478 { functions->SetShortArrayRegion (this, val0, val1, val2, val3); }
1480 void SetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
1481 { functions->SetIntArrayRegion (this, val0, val1, val2, val3); }
1483 void SetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
1484 { functions->SetLongArrayRegion (this, val0, val1, val2, val3); }
1486 void SetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
1487 { functions->SetFloatArrayRegion (this, val0, val1, val2, val3); }
1489 void SetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
1490 { functions->SetDoubleArrayRegion (this, val0, val1, val2, val3); }
1492 jint RegisterNatives (jclass cl0, const JNINativeMethod * val1, jint val2)
1493 { return functions->RegisterNatives (this, cl0, val1, val2); }
1495 jint UnregisterNatives (jclass cl0)
1496 { return functions->UnregisterNatives (this, cl0); }
1498 jint MonitorEnter (jobject obj0)
1499 { return functions->MonitorEnter (this, obj0); }
1501 jint MonitorExit (jobject obj0)
1502 { return functions->MonitorExit (this, obj0); }
1504 jint GetJavaVM (JavaVM ** val0)
1505 { return functions->GetJavaVM (this, val0); }
1507 /* ---- JNI 1.2 functions ---- */
1509 void GetStringRegion (jstring val0, jsize val1, jsize val2, jchar * val3)
1510 { functions->GetStringRegion (this, val0, val1, val2, val3); }
1512 void GetStringUTFRegion (jstring val0, jsize val1, jsize val2, char * val3)
1513 { functions->GetStringUTFRegion (this, val0, val1, val2, val3); }
1515 void * GetPrimitiveArrayCritical (jarray val0, jboolean * val1)
1516 { return functions->GetPrimitiveArrayCritical (this, val0, val1); }
1518 void ReleasePrimitiveArrayCritical (jarray val0, void * val1, jint val2)
1519 { functions->ReleasePrimitiveArrayCritical (this, val0, val1, val2); }
1521 const jchar * GetStringCritical (jstring val0, jboolean * val1)
1522 { return functions->GetStringCritical (this, val0, val1); }
1524 void ReleaseStringCritical (jstring val0, const jchar * val1)
1525 { functions->ReleaseStringCritical (this, val0, val1); }
1527 jweak NewWeakGlobalRef (jobject obj0)
1528 { return functions->NewWeakGlobalRef (this, obj0); }
1530 void DeleteWeakGlobalRef (jweak val0)
1531 { functions->DeleteWeakGlobalRef (this, val0); }
1533 jboolean ExceptionCheck ()
1534 { return functions->ExceptionCheck (this); }
1536 /* ---- JNI 1.4 functions ---- */
1538 jobject NewDirectByteBuffer (void *addr, jlong capacity)
1539 { return functions->NewDirectByteBuffer (this, addr, capacity); }
1541 void *GetDirectBufferAddress (jobject buf)
1542 { return functions->GetDirectBufferAddress (this, buf); }
1544 jlong GetDirectBufferCapacity (jobject buf)
1545 { return functions->GetDirectBufferCapacity (this, buf); }
1547 /* ---- JNI 1.6 functions ---- */
1549 jobjectRefType GetObjectRefType (jobject obj)
1550 { return functions->GetObjectRefType (this, obj); }
1553 #endif /* __cplusplus */
1556 * Invocation API.
1559 struct JNIInvokeInterface_
1561 void *reserved0;
1562 void *reserved1;
1563 void *reserved2;
1565 jint (JNICALL *DestroyJavaVM) (JavaVM *);
1566 jint (JNICALL *AttachCurrentThread) (JavaVM *, void **, void *);
1567 jint (JNICALL *DetachCurrentThread) (JavaVM *);
1568 jint (JNICALL *GetEnv) (JavaVM *, void **, jint);
1569 jint (JNICALL *AttachCurrentThreadAsDaemon) (JavaVM *, void **, void *);
1572 #ifdef __cplusplus
1574 class _Jv_JavaVM
1576 public:
1577 const struct JNIInvokeInterface_ *functions;
1579 jint DestroyJavaVM ()
1580 { return functions->DestroyJavaVM (this); }
1582 jint AttachCurrentThread (void **penv, void *args)
1583 { return functions->AttachCurrentThread (this, penv, args); }
1585 jint DetachCurrentThread ()
1586 { return functions->DetachCurrentThread (this); }
1588 jint GetEnv (void **penv, jint version)
1589 { return functions->GetEnv (this, penv, version); }
1591 jint AttachCurrentThreadAsDaemon (void **penv, void *args)
1592 { return functions->AttachCurrentThreadAsDaemon (this, penv, args); }
1595 #endif /* __cplusplus */
1597 typedef struct JavaVMAttachArgs
1599 jint version; /* Must be JNI_VERSION_1_2. */
1600 char *name; /* The name of the thread (or NULL). */
1601 jobject group; /* Global ref of a ThreadGroup object
1602 (or NULL). */
1603 } JavaVMAttachArgs;
1605 typedef struct JavaVMOption
1607 char *optionString;
1608 void *extraInfo;
1609 } JavaVMOption;
1611 typedef struct JavaVMInitArgs
1613 /* Must be JNI_VERSION_1_2. */
1614 jint version;
1616 /* Number of options. */
1617 jint nOptions;
1619 /* Options to the VM. */
1620 JavaVMOption *options;
1622 /* Whether we should ignore unrecognized options. */
1623 jboolean ignoreUnrecognized;
1624 } JavaVMInitArgs;
1626 typedef struct JDK1_1InitArgs
1628 /* VM version. Should be JNI_VERSION_1_1. Note that before JDK
1629 1.1.2, this field was named 'reserved0'. (I don't know what the
1630 current 'reserved0' field was named then.) */
1631 jint version;
1633 /* A null-terminated array of environment strings, each of the form
1634 "KEY=VALUE". This is used to set system properties. Note that
1635 before JDK 1.1.2, this field was named 'reserved1'. */
1636 char **properties;
1638 jint checkSource;
1639 jint nativeStackSize;
1640 jint javaStackSize;
1641 jint minHeapSize;
1642 jint maxHeapSize;
1643 jint verifyMode;
1644 const char *classpath;
1646 jint (JNICALL *vfprintf) (FILE *file, const char *fmt, va_list args);
1647 void (JNICALL *exit) (jint value);
1648 void (JNICALL *abort) (void);
1650 jint enableClassGC;
1651 jint enableVerboseGC;
1652 jint disableAsyncGC;
1654 jint reserved0;
1655 jint reserved1;
1656 jint reserved2;
1657 } JDK1_1InitArgs;
1659 typedef struct JDK1_1AttachArgs
1661 /* Dummy field since C cannot have empty structs. The name and type
1662 are chosen to comply with the spec. */
1663 void *__padding;
1664 } JDK1_1AttachArgs;
1667 /* Keep c-font-lock-extra-types in alphabetical order. */
1669 Local Variables:
1670 c-font-lock-extra-types: ("\\sw+_t" \
1671 "JNIEnv" "JNINativeMethod" "JavaVM" "JavaVMOption" "jarray" \
1672 "jboolean" "jbooleanArray" "jbyte" "jbyteArray" "jchar" "jcharArray" \
1673 "jclass" "jdouble" "jdoubleArray" "jfieldID" "jfloat" "jfloatArray" \
1674 "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" \
1675 "jstring" "jthrowable" "jvalue" "jweak")
1676 End:
1679 #endif /* _CLASSPATH_JNI_H */