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)
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
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
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
44 #ifndef _CLASSPATH_JNI_H
45 #define _CLASSPATH_JNI_H
47 /* We include <stdio.h> for compatibility with Sun's <jni.h>. */
54 /* The VM might define jobject and friends. */
55 #ifndef _CLASSPATH_VM_JNI_TYPES_DEFINED
59 /* Define dummy classes and then define the JNI types as pointers. */
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
;
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
;
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
137 typedef struct _jfieldID
*jfieldID
;
138 typedef struct _jmethodID
*jmethodID
;
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. */
154 #define JNI_EDETACHED (-2)
155 #define JNI_EVERSION (-3)
159 JNIInvalidRefType
= 0,
161 JNIGlobalRefType
= 2,
162 JNIWeakGlobalRefType
= 3
165 typedef enum _jobjectRefType jobjectRefType
;
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
183 /* These functions are called by user code to start using the
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
*);
196 #endif /* __cplusplus */
211 /* This structure is used when registering native methods. */
216 void *fnPtr
; /* Sigh. */
219 struct JNINativeInterface_
226 jint (JNICALL
*GetVersion
) (JNIEnv
*);
227 jclass (JNICALL
*DefineClass
) (JNIEnv
*, const char *,
228 jobject
, const jbyte
*,
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
,
243 jint (JNICALL
*Throw
) (JNIEnv
*, jthrowable
);
244 jint (JNICALL
*ThrowNew
) (JNIEnv
*, jclass
,
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
,
260 jobject (JNICALL
*NewLocalRef
) (JNIEnv
*, jobject
);
261 jint (JNICALL
*EnsureLocalCapacity
) (JNIEnv
*, jint
);
263 jobject (JNICALL
*AllocObject
) (JNIEnv
*, jclass
);
264 jobject (JNICALL
*NewObject
) (JNIEnv
*, jclass
,
266 jobject (JNICALL
*NewObjectV
) (JNIEnv
*, jclass
,
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
,
279 jobject (JNICALL
*CallObjectMethodA
) (JNIEnv
*, jobject
, jmethodID
,
281 jboolean (JNICALL
*CallBooleanMethod
) (JNIEnv
*, jobject
, jmethodID
,
283 jboolean (JNICALL
*CallBooleanMethodV
) (JNIEnv
*, jobject
, jmethodID
,
285 jboolean (JNICALL
*CallBooleanMethodA
) (JNIEnv
*, jobject
, jmethodID
,
287 jbyte (JNICALL
*CallByteMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
288 jbyte (JNICALL
*CallByteMethodV
) (JNIEnv
*, jobject
, jmethodID
,
290 jbyte (JNICALL
*CallByteMethodA
) (JNIEnv
*, jobject
, jmethodID
,
292 jchar (JNICALL
*CallCharMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
293 jchar (JNICALL
*CallCharMethodV
) (JNIEnv
*, jobject
, jmethodID
,
295 jchar (JNICALL
*CallCharMethodA
) (JNIEnv
*, jobject
, jmethodID
,
297 jshort (JNICALL
*CallShortMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
298 jshort (JNICALL
*CallShortMethodV
) (JNIEnv
*, jobject
, jmethodID
,
300 jshort (JNICALL
*CallShortMethodA
) (JNIEnv
*, jobject
, jmethodID
,
302 jint (JNICALL
*CallIntMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
303 jint (JNICALL
*CallIntMethodV
) (JNIEnv
*, jobject
, jmethodID
,
305 jint (JNICALL
*CallIntMethodA
) (JNIEnv
*, jobject
, jmethodID
,
307 jlong (JNICALL
*CallLongMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
308 jlong (JNICALL
*CallLongMethodV
) (JNIEnv
*, jobject
, jmethodID
,
310 jlong (JNICALL
*CallLongMethodA
) (JNIEnv
*, jobject
, jmethodID
,
312 jfloat (JNICALL
*CallFloatMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
313 jfloat (JNICALL
*CallFloatMethodV
) (JNIEnv
*, jobject
, jmethodID
,
315 jfloat (JNICALL
*CallFloatMethodA
) (JNIEnv
*, jobject
, jmethodID
,
317 jdouble (JNICALL
*CallDoubleMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
318 jdouble (JNICALL
*CallDoubleMethodV
) (JNIEnv
*, jobject
, jmethodID
,
320 jdouble (JNICALL
*CallDoubleMethodA
) (JNIEnv
*, jobject
, jmethodID
,
322 void (JNICALL
*CallVoidMethod
) (JNIEnv
*, jobject
, jmethodID
, ...);
323 void (JNICALL
*CallVoidMethodV
) (JNIEnv
*, jobject
, jmethodID
,
325 void (JNICALL
*CallVoidMethodA
) (JNIEnv
*, jobject
, jmethodID
,
328 jobject (JNICALL
*CallNonvirtualObjectMethod
) (JNIEnv
*, jobject
, jclass
,
330 jobject (JNICALL
*CallNonvirtualObjectMethodV
) (JNIEnv
*, jobject
, jclass
,
332 jobject (JNICALL
*CallNonvirtualObjectMethodA
) (JNIEnv
*, jobject
, jclass
,
333 jmethodID
, const jvalue
*);
334 jboolean (JNICALL
*CallNonvirtualBooleanMethod
) (JNIEnv
*, jobject
, jclass
,
336 jboolean (JNICALL
*CallNonvirtualBooleanMethodV
) (JNIEnv
*, jobject
, jclass
,
338 jboolean (JNICALL
*CallNonvirtualBooleanMethodA
) (JNIEnv
*, jobject
, jclass
,
339 jmethodID
, const jvalue
*);
340 jbyte (JNICALL
*CallNonvirtualByteMethod
) (JNIEnv
*, jobject
, jclass
,
342 jbyte (JNICALL
*CallNonvirtualByteMethodV
) (JNIEnv
*, jobject
, jclass
,
344 jbyte (JNICALL
*CallNonvirtualByteMethodA
) (JNIEnv
*, jobject
, jclass
,
345 jmethodID
, const jvalue
*);
346 jchar (JNICALL
*CallNonvirtualCharMethod
) (JNIEnv
*, jobject
, jclass
,
348 jchar (JNICALL
*CallNonvirtualCharMethodV
) (JNIEnv
*, jobject
, jclass
,
350 jchar (JNICALL
*CallNonvirtualCharMethodA
) (JNIEnv
*, jobject
, jclass
,
351 jmethodID
, const jvalue
*);
352 jshort (JNICALL
*CallNonvirtualShortMethod
) (JNIEnv
*, jobject
, jclass
,
354 jshort (JNICALL
*CallNonvirtualShortMethodV
) (JNIEnv
*, jobject
, jclass
,
356 jshort (JNICALL
*CallNonvirtualShortMethodA
) (JNIEnv
*, jobject
, jclass
,
357 jmethodID
, const jvalue
*);
358 jint (JNICALL
*CallNonvirtualIntMethod
) (JNIEnv
*, jobject
, jclass
,
360 jint (JNICALL
*CallNonvirtualIntMethodV
) (JNIEnv
*, jobject
, jclass
,
362 jint (JNICALL
*CallNonvirtualIntMethodA
) (JNIEnv
*, jobject
, jclass
,
363 jmethodID
, const jvalue
*);
364 jlong (JNICALL
*CallNonvirtualLongMethod
) (JNIEnv
*, jobject
, jclass
,
366 jlong (JNICALL
*CallNonvirtualLongMethodV
) (JNIEnv
*, jobject
, jclass
,
368 jlong (JNICALL
*CallNonvirtualLongMethodA
) (JNIEnv
*, jobject
, jclass
,
369 jmethodID
, const jvalue
*);
370 jfloat (JNICALL
*CallNonvirtualFloatMethod
) (JNIEnv
*, jobject
, jclass
,
372 jfloat (JNICALL
*CallNonvirtualFloatMethodV
) (JNIEnv
*, jobject
, jclass
,
374 jfloat (JNICALL
*CallNonvirtualFloatMethodA
) (JNIEnv
*, jobject
, jclass
,
375 jmethodID
, const jvalue
*);
376 jdouble (JNICALL
*CallNonvirtualDoubleMethod
) (JNIEnv
*, jobject
, jclass
,
378 jdouble (JNICALL
*CallNonvirtualDoubleMethodV
) (JNIEnv
*, jobject
, jclass
,
380 jdouble (JNICALL
*CallNonvirtualDoubleMethodA
) (JNIEnv
*, jobject
, jclass
,
381 jmethodID
, const jvalue
*);
382 void (JNICALL
*CallNonvirtualVoidMethod
) (JNIEnv
*, jobject
, jclass
,
384 void (JNICALL
*CallNonvirtualVoidMethodV
) (JNIEnv
*, jobject
, jclass
,
386 void (JNICALL
*CallNonvirtualVoidMethodA
) (JNIEnv
*, jobject
, jclass
,
387 jmethodID
, const jvalue
*);
389 jfieldID (JNICALL
*GetFieldID
) (JNIEnv
*, jclass
, 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
,
404 void (JNICALL
*SetBooleanField
) (JNIEnv
*, jobject
,
406 void (JNICALL
*SetByteField
) (JNIEnv
*, jobject
,
408 void (JNICALL
*SetCharField
) (JNIEnv
*, jobject
,
410 void (JNICALL
*SetShortField
) (JNIEnv
*, jobject
,
412 void (JNICALL
*SetIntField
) (JNIEnv
*, jobject
,
414 void (JNICALL
*SetLongField
) (JNIEnv
*, jobject
,
416 void (JNICALL
*SetFloatField
) (JNIEnv
*, jobject
,
418 void (JNICALL
*SetDoubleField
) (JNIEnv
*, jobject
,
421 jmethodID (JNICALL
*GetStaticMethodID
) (JNIEnv
*, jclass
, const char *,
424 jobject (JNICALL
*CallStaticObjectMethod
) (JNIEnv
*, jclass
, jmethodID
,
426 jobject (JNICALL
*CallStaticObjectMethodV
) (JNIEnv
*, jclass
, jmethodID
,
428 jobject (JNICALL
*CallStaticObjectMethodA
) (JNIEnv
*, jclass
, jmethodID
,
430 jboolean (JNICALL
*CallStaticBooleanMethod
) (JNIEnv
*, jclass
, jmethodID
,
432 jboolean (JNICALL
*CallStaticBooleanMethodV
) (JNIEnv
*, jclass
, jmethodID
,
434 jboolean (JNICALL
*CallStaticBooleanMethodA
) (JNIEnv
*, jclass
, jmethodID
,
436 jbyte (JNICALL
*CallStaticByteMethod
) (JNIEnv
*, jclass
, jmethodID
,
438 jbyte (JNICALL
*CallStaticByteMethodV
) (JNIEnv
*, jclass
, jmethodID
,
440 jbyte (JNICALL
*CallStaticByteMethodA
) (JNIEnv
*, jclass
, jmethodID
,
442 jchar (JNICALL
*CallStaticCharMethod
) (JNIEnv
*, jclass
, jmethodID
,
444 jchar (JNICALL
*CallStaticCharMethodV
) (JNIEnv
*, jclass
, jmethodID
,
446 jchar (JNICALL
*CallStaticCharMethodA
) (JNIEnv
*, jclass
, jmethodID
,
448 jshort (JNICALL
*CallStaticShortMethod
) (JNIEnv
*, jclass
, jmethodID
,
450 jshort (JNICALL
*CallStaticShortMethodV
) (JNIEnv
*, jclass
, jmethodID
,
452 jshort (JNICALL
*CallStaticShortMethodA
) (JNIEnv
*, jclass
, jmethodID
,
454 jint (JNICALL
*CallStaticIntMethod
) (JNIEnv
*, jclass
, jmethodID
,
456 jint (JNICALL
*CallStaticIntMethodV
) (JNIEnv
*, jclass
, jmethodID
,
458 jint (JNICALL
*CallStaticIntMethodA
) (JNIEnv
*, jclass
, jmethodID
,
460 jlong (JNICALL
*CallStaticLongMethod
) (JNIEnv
*, jclass
, jmethodID
,
462 jlong (JNICALL
*CallStaticLongMethodV
) (JNIEnv
*, jclass
, jmethodID
,
464 jlong (JNICALL
*CallStaticLongMethodA
) (JNIEnv
*, jclass
, jmethodID
,
466 jfloat (JNICALL
*CallStaticFloatMethod
) (JNIEnv
*, jclass
, jmethodID
,
468 jfloat (JNICALL
*CallStaticFloatMethodV
) (JNIEnv
*, jclass
, jmethodID
,
470 jfloat (JNICALL
*CallStaticFloatMethodA
) (JNIEnv
*, jclass
, jmethodID
,
472 jdouble (JNICALL
*CallStaticDoubleMethod
) (JNIEnv
*, jclass
, jmethodID
,
474 jdouble (JNICALL
*CallStaticDoubleMethodV
) (JNIEnv
*, jclass
, jmethodID
,
476 jdouble (JNICALL
*CallStaticDoubleMethodA
) (JNIEnv
*, jclass
, jmethodID
,
478 void (JNICALL
*CallStaticVoidMethod
) (JNIEnv
*, jclass
, jmethodID
,
480 void (JNICALL
*CallStaticVoidMethodV
) (JNIEnv
*, jclass
, jmethodID
,
482 void (JNICALL
*CallStaticVoidMethodA
) (JNIEnv
*, jclass
, jmethodID
,
485 jfieldID (JNICALL
*GetStaticFieldID
) (JNIEnv
*, jclass
, 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
,
500 void (JNICALL
*SetStaticBooleanField
) (JNIEnv
*, jclass
,
502 void (JNICALL
*SetStaticByteField
) (JNIEnv
*, jclass
,
504 void (JNICALL
*SetStaticCharField
) (JNIEnv
*, jclass
,
506 void (JNICALL
*SetStaticShortField
) (JNIEnv
*, jclass
,
508 void (JNICALL
*SetStaticIntField
) (JNIEnv
*, jclass
,
510 void (JNICALL
*SetStaticLongField
) (JNIEnv
*, jclass
,
512 void (JNICALL
*SetStaticFloatField
) (JNIEnv
*, jclass
,
514 void (JNICALL
*SetStaticDoubleField
) (JNIEnv
*, jclass
,
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
,
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
,
542 jbyte
* (JNICALL
*GetByteArrayElements
) (JNIEnv
*, jbyteArray
,
544 jchar
* (JNICALL
*GetCharArrayElements
) (JNIEnv
*, jcharArray
,
546 jshort
* (JNICALL
*GetShortArrayElements
) (JNIEnv
*, jshortArray
,
548 jint
* (JNICALL
*GetIntArrayElements
) (JNIEnv
*, jintArray
,
550 jlong
* (JNICALL
*GetLongArrayElements
) (JNIEnv
*, jlongArray
,
552 jfloat
* (JNICALL
*GetFloatArrayElements
) (JNIEnv
*, jfloatArray
,
554 jdouble
* (JNICALL
*GetDoubleArrayElements
) (JNIEnv
*, jdoubleArray
,
557 void (JNICALL
*ReleaseBooleanArrayElements
) (JNIEnv
*, jbooleanArray
,
559 void (JNICALL
*ReleaseByteArrayElements
) (JNIEnv
*, jbyteArray
,
561 void (JNICALL
*ReleaseCharArrayElements
) (JNIEnv
*, jcharArray
,
563 void (JNICALL
*ReleaseShortArrayElements
) (JNIEnv
*, jshortArray
,
565 void (JNICALL
*ReleaseIntArrayElements
) (JNIEnv
*, jintArray
,
567 void (JNICALL
*ReleaseLongArrayElements
) (JNIEnv
*, jlongArray
,
569 void (JNICALL
*ReleaseFloatArrayElements
) (JNIEnv
*, jfloatArray
,
571 void (JNICALL
*ReleaseDoubleArrayElements
) (JNIEnv
*, jdoubleArray
,
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
,
594 void (JNICALL
*SetByteArrayRegion
) (JNIEnv
*, jbyteArray
,
597 void (JNICALL
*SetCharArrayRegion
) (JNIEnv
*, jcharArray
,
600 void (JNICALL
*SetShortArrayRegion
) (JNIEnv
*, jshortArray
,
603 void (JNICALL
*SetIntArrayRegion
) (JNIEnv
*, jintArray
,
606 void (JNICALL
*SetLongArrayRegion
) (JNIEnv
*, jlongArray
,
609 void (JNICALL
*SetFloatArrayRegion
) (JNIEnv
*, jfloatArray
,
612 void (JNICALL
*SetDoubleArrayRegion
) (JNIEnv
*, jdoubleArray
,
616 jint (JNICALL
*RegisterNatives
) (JNIEnv
*, jclass
,
617 const JNINativeMethod
*,
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
,
628 void (JNICALL
*GetStringUTFRegion
) (JNIEnv
*, jstring
, jsize
,
631 void * (JNICALL
*GetPrimitiveArrayCritical
) (JNIEnv
*, jarray
,
633 void (JNICALL
*ReleasePrimitiveArrayCritical
) (JNIEnv
*, jarray
, void *,
636 const jchar
* (JNICALL
*GetStringCritical
) (JNIEnv
*, jstring
,
638 void (JNICALL
*ReleaseStringCritical
) (JNIEnv
*, jstring
,
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
);
662 /* The method table. */
663 struct JNINativeInterface_
*functions
;
665 #ifdef _CLASSPATH_JNIENV_CONTENTS
666 _CLASSPATH_JNIENV_CONTENTS
670 { return functions
->GetVersion (this); }
672 jclass
DefineClass (const char *name
, jobject obj0
, const jbyte
* val1
,
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
, ...)
745 va_start (args
, meth1
);
746 jobject result
= functions
->NewObjectV (this, cl0
, meth1
, args
);
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
, ...)
769 va_start (args
, meth1
);
770 jobject result
= functions
->CallObjectMethodV (this, obj0
, meth1
, args
);
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
, ...)
784 va_start (args
, meth1
);
785 jboolean result
= functions
->CallBooleanMethodV (this, obj0
, meth1
, args
);
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
,
795 { return functions
->CallBooleanMethodA (this, obj0
, meth1
, val2
); }
797 jbyte
CallByteMethod (jobject obj0
, jmethodID meth1
, ...)
800 va_start (args
, meth1
);
801 jbyte result
= functions
->CallByteMethodV (this, obj0
, meth1
, args
);
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
, ...)
815 va_start (args
, meth1
);
816 jchar result
= functions
->CallCharMethodV (this, obj0
, meth1
, args
);
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
, ...)
830 va_start (args
, meth1
);
831 jshort result
= functions
->CallShortMethodV (this, obj0
, meth1
, args
);
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
, ...)
845 va_start (args
, meth1
);
846 jint result
= functions
->CallIntMethodV (this, obj0
, meth1
, args
);
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
, ...)
860 va_start (args
, meth1
);
861 jlong result
= functions
->CallLongMethodV (this, obj0
, meth1
, args
);
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
, ...)
875 va_start (args
, meth1
);
876 jfloat result
= functions
->CallFloatMethodV (this, obj0
, meth1
, args
);
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
, ...)
890 va_start (args
, meth1
);
891 jdouble result
= functions
->CallDoubleMethodV (this, obj0
, meth1
, args
);
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
, ...)
905 va_start (args
, meth1
);
906 functions
->CallVoidMethodV (this, obj0
, meth1
, 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
, ...)
919 va_start (args
, meth2
);
920 jobject result
= functions
->CallNonvirtualObjectMethodV (this, obj0
, cl1
, meth2
, args
);
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
, ...)
934 va_start (args
, meth2
);
935 jboolean result
= functions
->CallNonvirtualBooleanMethodV (this, obj0
, cl1
, meth2
, args
);
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
, ...)
949 va_start (args
, meth2
);
950 jbyte result
= functions
->CallNonvirtualByteMethodV (this, obj0
, cl1
, meth2
, args
);
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
, ...)
964 va_start (args
, meth2
);
965 jchar result
= functions
->CallNonvirtualCharMethodV (this, obj0
, cl1
, meth2
, args
);
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
, ...)
979 va_start (args
, meth2
);
980 jshort result
= functions
->CallNonvirtualShortMethodV (this, obj0
, cl1
, meth2
, args
);
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
, ...)
994 va_start (args
, meth2
);
995 jint result
= functions
->CallNonvirtualIntMethodV (this, obj0
, cl1
, meth2
, args
);
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
, ...)
1009 va_start (args
, meth2
);
1010 jlong result
= functions
->CallNonvirtualLongMethodV (this, obj0
, cl1
, meth2
, args
);
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
, ...)
1024 va_start (args
, meth2
);
1025 jfloat result
= functions
->CallNonvirtualFloatMethodV (this, obj0
, cl1
, meth2
, args
);
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
, ...)
1039 va_start (args
, meth2
);
1040 jdouble result
= functions
->CallNonvirtualDoubleMethodV (this, obj0
, cl1
, meth2
, args
);
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
, ...)
1054 va_start (args
, meth2
);
1055 functions
->CallNonvirtualVoidMethodV (this, obj0
, cl1
, meth2
, 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
, ...)
1128 va_start (args
, meth1
);
1129 jobject result
= functions
->CallStaticObjectMethodV (this, cl0
, meth1
, args
);
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
, ...)
1144 va_start (args
, meth1
);
1145 jboolean result
= functions
->CallStaticBooleanMethodV (this, cl0
, meth1
, args
);
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
, ...)
1160 va_start (args
, meth1
);
1161 jbyte result
= functions
->CallStaticByteMethodV (this, cl0
, meth1
, args
);
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
, ...)
1175 va_start (args
, meth1
);
1176 jchar result
= functions
->CallStaticCharMethodV (this, cl0
, meth1
, args
);
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
, ...)
1190 va_start (args
, meth1
);
1191 jshort result
= functions
->CallStaticShortMethodV (this, cl0
, meth1
, args
);
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
, ...)
1206 va_start (args
, meth1
);
1207 jint result
= functions
->CallStaticIntMethodV (this, cl0
, meth1
, args
);
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
, ...)
1221 va_start (args
, meth1
);
1222 jlong result
= functions
->CallStaticLongMethodV (this, cl0
, meth1
, args
);
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
, ...)
1236 va_start (args
, meth1
);
1237 jfloat result
= functions
->CallStaticFloatMethodV (this, cl0
, meth1
, args
);
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
, ...)
1252 va_start (args
, meth1
);
1253 jdouble result
= functions
->CallStaticDoubleMethodV (this, cl0
, meth1
, args
);
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
, ...)
1268 va_start (args
, meth1
);
1269 functions
->CallStaticVoidMethodV (this, cl0
, meth1
, 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 */
1559 struct JNIInvokeInterface_
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 *);
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
1605 typedef struct JavaVMOption
1611 typedef struct JavaVMInitArgs
1613 /* Must be JNI_VERSION_1_2. */
1616 /* Number of options. */
1619 /* Options to the VM. */
1620 JavaVMOption
*options
;
1622 /* Whether we should ignore unrecognized options. */
1623 jboolean ignoreUnrecognized
;
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.) */
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'. */
1639 jint nativeStackSize
;
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);
1651 jint enableVerboseGC
;
1652 jint disableAsyncGC
;
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. */
1667 /* Keep c-font-lock-extra-types in alphabetical order. */
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")
1679 #endif /* _CLASSPATH_JNI_H */