Line data Source code
1 : /* jni.h
2 : Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008 Free Software Foundation
3 :
4 : This file is part of GNU Classpath.
5 :
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.
10 :
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.
15 :
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.
20 :
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.
25 :
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. */
37 :
38 :
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. */
43 :
44 : #ifndef _CLASSPATH_JNI_H
45 : #define _CLASSPATH_JNI_H
46 :
47 : /* We include <stdio.h> for compatibility with Sun's <jni.h>. */
48 : #include <stdio.h>
49 :
50 : #include <stdarg.h>
51 :
52 : #include "jni_md.h"
53 :
54 : /* The VM might define jobject and friends. */
55 : #ifndef _CLASSPATH_VM_JNI_TYPES_DEFINED
56 :
57 : # ifdef __cplusplus
58 :
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 {};
75 :
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;
91 :
92 : #define JNI_TRUE true
93 : #define JNI_FALSE false
94 :
95 : typedef struct _Jv_JNIEnv JNIEnv;
96 : typedef struct _Jv_JavaVM JavaVM;
97 :
98 : # else /* __cplusplus */
99 :
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;
116 :
117 : #define JNI_TRUE 1
118 : #define JNI_FALSE 0
119 :
120 : typedef const struct JNINativeInterface_ *JNIEnv;
121 : typedef const struct JNIInvokeInterface_ *JavaVM;
122 :
123 : # endif /* __cplusplus */
124 :
125 : #endif /* _CLASSPATH_VM_JNI_TYPES_DEFINED */
126 :
127 : /*
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.
133 : */
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
140 :
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
146 :
147 : /* Used when releasing array elements. */
148 : #define JNI_COMMIT 1
149 : #define JNI_ABORT 2
150 :
151 : /* Error codes */
152 : #define JNI_OK 0
153 : #define JNI_ERR (-1)
154 : #define JNI_EDETACHED (-2)
155 : #define JNI_EVERSION (-3)
156 :
157 : enum _jobjectRefType
158 : {
159 : JNIInvalidRefType = 0,
160 : JNILocalRefType = 1,
161 : JNIGlobalRefType = 2,
162 : JNIWeakGlobalRefType = 3
163 : };
164 :
165 : typedef enum _jobjectRefType jobjectRefType;
166 :
167 : #ifdef __cplusplus
168 : extern "C"
169 : {
170 : #endif /* __cplusplus */
171 :
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 *);
176 :
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
182 :
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 *);
187 :
188 : extern _CLASSPATH_JNIIMPEXP jint JNICALL
189 : JNI_CreateJavaVM (JavaVM **, void **, void *);
190 :
191 : extern _CLASSPATH_JNIIMPEXP jint JNICALL
192 : JNI_GetCreatedJavaVMs (JavaVM **, jsize, jsize *);
193 :
194 : #ifdef __cplusplus
195 : }
196 : #endif /* __cplusplus */
197 :
198 : typedef union jvalue
199 : {
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;
210 :
211 : /* This structure is used when registering native methods. */
212 : typedef struct
213 : {
214 : char *name;
215 : char *signature;
216 : void *fnPtr; /* Sigh. */
217 : } JNINativeMethod;
218 :
219 : struct JNINativeInterface_
220 : {
221 : void *reserved0;
222 : void *reserved1;
223 : void *reserved2;
224 : void *reserved3;
225 :
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 *);
231 :
232 : jmethodID (JNICALL *FromReflectedMethod) (JNIEnv *, jobject);
233 : jfieldID (JNICALL *FromReflectedField) (JNIEnv *, jobject);
234 : jobject (JNICALL *ToReflectedMethod) (JNIEnv *, jclass,
235 : jmethodID, jboolean);
236 :
237 : jclass (JNICALL *GetSuperclass) (JNIEnv *, jclass);
238 : jboolean (JNICALL *IsAssignableFrom) (JNIEnv *, jclass, jclass);
239 :
240 : jobject (JNICALL *ToReflectedField) (JNIEnv *, jclass, jfieldID,
241 : jboolean);
242 :
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 *);
250 :
251 : jint (JNICALL *PushLocalFrame) (JNIEnv *, jint);
252 : jobject (JNICALL *PopLocalFrame) (JNIEnv *, jobject);
253 :
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);
259 :
260 : jobject (JNICALL *NewLocalRef) (JNIEnv *, jobject);
261 : jint (JNICALL *EnsureLocalCapacity) (JNIEnv *, jint);
262 :
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 *);
270 :
271 : jclass (JNICALL *GetObjectClass) (JNIEnv *, jobject);
272 : jboolean (JNICALL *IsInstanceOf) (JNIEnv *, jobject, jclass);
273 : jmethodID (JNICALL *GetMethodID) (JNIEnv *, jclass,
274 : const char *, const char *);
275 :
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 *);
327 :
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 *);
388 :
389 : jfieldID (JNICALL *GetFieldID) (JNIEnv *, jclass, const char *,
390 : const char *);
391 :
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);
401 :
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);
420 :
421 : jmethodID (JNICALL *GetStaticMethodID) (JNIEnv *, jclass, const char *,
422 : const char *);
423 :
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 *);
484 :
485 : jfieldID (JNICALL *GetStaticFieldID) (JNIEnv *, jclass, const char *,
486 : const char *);
487 :
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);
497 :
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);
516 :
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);
530 :
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);
539 :
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 *);
556 :
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);
573 :
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 *);
590 :
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 *);
615 :
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 **);
623 :
624 : /* ---- JNI 1.2 functions ---- */
625 :
626 : void (JNICALL *GetStringRegion) (JNIEnv *, jstring, jsize,
627 : jsize, jchar *);
628 : void (JNICALL *GetStringUTFRegion) (JNIEnv *, jstring, jsize,
629 : jsize, char *);
630 :
631 : void * (JNICALL *GetPrimitiveArrayCritical) (JNIEnv *, jarray,
632 : jboolean *);
633 : void (JNICALL *ReleasePrimitiveArrayCritical) (JNIEnv *, jarray, void *,
634 : jint);
635 :
636 : const jchar * (JNICALL *GetStringCritical) (JNIEnv *, jstring,
637 : jboolean *);
638 : void (JNICALL *ReleaseStringCritical) (JNIEnv *, jstring,
639 : const jchar *);
640 :
641 : jweak (JNICALL *NewWeakGlobalRef) (JNIEnv *, jobject);
642 : void (JNICALL *DeleteWeakGlobalRef) (JNIEnv *, jweak);
643 :
644 : jboolean (JNICALL *ExceptionCheck) (JNIEnv *);
645 :
646 : /* ---- JNI 1.4 functions ---- */
647 :
648 : jobject (JNICALL *NewDirectByteBuffer) (JNIEnv *, void *, jlong);
649 : void * (JNICALL *GetDirectBufferAddress) (JNIEnv *, jobject);
650 : jlong (JNICALL *GetDirectBufferCapacity) (JNIEnv *, jobject);
651 :
652 : /* ---- JNI 1.6 functions ---- */
653 :
654 : jobjectRefType (JNICALL *GetObjectRefType) (JNIEnv *, jobject);
655 : };
656 :
657 : #ifdef __cplusplus
658 :
659 : class _Jv_JNIEnv
660 : {
661 : public:
662 : /* The method table. */
663 : struct JNINativeInterface_ *functions;
664 :
665 : #ifdef _CLASSPATH_JNIENV_CONTENTS
666 : _CLASSPATH_JNIENV_CONTENTS
667 : #endif
668 :
669 : jint GetVersion ()
670 : { return functions->GetVersion (this); }
671 :
672 : jclass DefineClass (const char *name, jobject obj0, const jbyte * val1,
673 : jsize val2)
674 : { return functions->DefineClass (this, name, obj0, val1, val2); }
675 :
676 : jclass FindClass (const char * val0)
677 : { return functions->FindClass (this, val0); }
678 :
679 : jmethodID FromReflectedMethod (jobject obj0)
680 : { return functions->FromReflectedMethod (this, obj0); }
681 :
682 : jfieldID FromReflectedField (jobject obj0)
683 : { return functions->FromReflectedField (this, obj0); }
684 :
685 : jobject ToReflectedMethod (jclass cl0, jmethodID meth1, jboolean val2)
686 : { return functions->ToReflectedMethod (this, cl0, meth1, val2); }
687 :
688 : jclass GetSuperclass (jclass cl0)
689 : { return functions->GetSuperclass (this, cl0); }
690 :
691 : jboolean IsAssignableFrom (jclass cl0, jclass cl1)
692 : { return functions->IsAssignableFrom (this, cl0, cl1); }
693 :
694 : jobject ToReflectedField (jclass cl0, jfieldID fld1, jboolean val2)
695 : { return functions->ToReflectedField (this, cl0, fld1, val2); }
696 :
697 : jint Throw (jthrowable val0)
698 : { return functions->Throw (this, val0); }
699 :
700 : jint ThrowNew (jclass cl0, const char * val1)
701 : { return functions->ThrowNew (this, cl0, val1); }
702 :
703 : jthrowable ExceptionOccurred ()
704 : { return functions->ExceptionOccurred (this); }
705 :
706 : void ExceptionDescribe ()
707 : { functions->ExceptionDescribe (this); }
708 :
709 : void ExceptionClear ()
710 : { functions->ExceptionClear (this); }
711 :
712 : void FatalError (const char * val0)
713 : { functions->FatalError (this, val0); }
714 :
715 : jint PushLocalFrame (jint val0)
716 : { return functions->PushLocalFrame (this, val0); }
717 :
718 : jobject PopLocalFrame (jobject obj0)
719 : { return functions->PopLocalFrame (this, obj0); }
720 :
721 : jobject NewGlobalRef (jobject obj0)
722 : { return functions->NewGlobalRef (this, obj0); }
723 :
724 : void DeleteGlobalRef (jobject obj0)
725 : { functions->DeleteGlobalRef (this, obj0); }
726 :
727 : void DeleteLocalRef (jobject obj0)
728 : { functions->DeleteLocalRef (this, obj0); }
729 :
730 : jboolean IsSameObject (jobject obj0, jobject obj1)
731 : { return functions->IsSameObject (this, obj0, obj1); }
732 :
733 : jobject NewLocalRef (jobject obj0)
734 : { return functions->NewLocalRef (this, obj0); }
735 :
736 : jint EnsureLocalCapacity (jint val0)
737 : { return functions->EnsureLocalCapacity (this, val0); }
738 :
739 : jobject AllocObject (jclass cl0)
740 : { return functions->AllocObject (this, cl0); }
741 :
742 : jobject NewObject (jclass cl0, jmethodID meth1, ...)
743 : {
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;
749 : }
750 :
751 : jobject NewObjectV (jclass cl0, jmethodID meth1, va_list val2)
752 : { return functions->NewObjectV (this, cl0, meth1, val2); }
753 :
754 : jobject NewObjectA (jclass cl0, jmethodID meth1, jvalue * val2)
755 : { return functions->NewObjectA (this, cl0, meth1, val2); }
756 :
757 : jclass GetObjectClass (jobject obj0)
758 : { return functions->GetObjectClass (this, obj0); }
759 :
760 : jboolean IsInstanceOf (jobject obj0, jclass cl1)
761 : { return functions->IsInstanceOf (this, obj0, cl1); }
762 :
763 : jmethodID GetMethodID (jclass cl0, const char * val1, const char * val2)
764 : { return functions->GetMethodID (this, cl0, val1, val2); }
765 :
766 : jobject CallObjectMethod (jobject obj0, jmethodID meth1, ...)
767 : {
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;
773 : }
774 :
775 : jobject CallObjectMethodV (jobject obj0, jmethodID meth1, va_list val2)
776 : { return functions->CallObjectMethodV (this, obj0, meth1, val2); }
777 :
778 : jobject CallObjectMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
779 : { return functions->CallObjectMethodA (this, obj0, meth1, val2); }
780 :
781 : jboolean CallBooleanMethod (jobject obj0, jmethodID meth1, ...)
782 : {
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;
788 : }
789 :
790 : jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, va_list val2)
791 : { return functions->CallBooleanMethodV (this, obj0, meth1, val2); }
792 :
793 : jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1,
794 : const jvalue * val2)
795 : { return functions->CallBooleanMethodA (this, obj0, meth1, val2); }
796 :
797 : jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
798 : {
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;
804 : }
805 :
806 : jbyte CallByteMethodV (jobject obj0, jmethodID meth1, va_list val2)
807 : { return functions->CallByteMethodV (this, obj0, meth1, val2); }
808 :
809 : jbyte CallByteMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
810 : { return functions->CallByteMethodA (this, obj0, meth1, val2); }
811 :
812 : jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
813 : {
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;
819 : }
820 :
821 : jchar CallCharMethodV (jobject obj0, jmethodID meth1, va_list val2)
822 : { return functions->CallCharMethodV (this, obj0, meth1, val2); }
823 :
824 : jchar CallCharMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
825 : { return functions->CallCharMethodA (this, obj0, meth1, val2); }
826 :
827 : jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
828 : {
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;
834 : }
835 :
836 : jshort CallShortMethodV (jobject obj0, jmethodID meth1, va_list val2)
837 : { return functions->CallShortMethodV (this, obj0, meth1, val2); }
838 :
839 : jshort CallShortMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
840 : { return functions->CallShortMethodA (this, obj0, meth1, val2); }
841 :
842 : jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
843 : {
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;
849 : }
850 :
851 : jint CallIntMethodV (jobject obj0, jmethodID meth1, va_list val2)
852 : { return functions->CallIntMethodV (this, obj0, meth1, val2); }
853 :
854 : jint CallIntMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
855 : { return functions->CallIntMethodA (this, obj0, meth1, val2); }
856 :
857 : jlong CallLongMethod (jobject obj0, jmethodID meth1, ...)
858 : {
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;
864 : }
865 :
866 : jlong CallLongMethodV (jobject obj0, jmethodID meth1, va_list val2)
867 : { return functions->CallLongMethodV (this, obj0, meth1, val2); }
868 :
869 : jlong CallLongMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
870 : { return functions->CallLongMethodA (this, obj0, meth1, val2); }
871 :
872 : jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
873 : {
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;
879 : }
880 :
881 : jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, va_list val2)
882 : { return functions->CallFloatMethodV (this, obj0, meth1, val2); }
883 :
884 : jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
885 : { return functions->CallFloatMethodA (this, obj0, meth1, val2); }
886 :
887 : jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
888 : {
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;
894 : }
895 :
896 : jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, va_list val2)
897 : { return functions->CallDoubleMethodV (this, obj0, meth1, val2); }
898 :
899 : jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
900 : { return functions->CallDoubleMethodA (this, obj0, meth1, val2); }
901 :
902 : void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
903 : {
904 : va_list args;
905 : va_start (args, meth1);
906 : functions->CallVoidMethodV (this, obj0, meth1, args);
907 : va_end (args);
908 : }
909 :
910 : void CallVoidMethodV (jobject obj0, jmethodID meth1, va_list val2)
911 : { functions->CallVoidMethodV (this, obj0, meth1, val2); }
912 :
913 : void CallVoidMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
914 : { functions->CallVoidMethodA (this, obj0, meth1, val2); }
915 :
916 : jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
917 : {
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;
923 : }
924 :
925 : jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
926 : { return functions->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
927 :
928 : jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
929 : { return functions->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
930 :
931 : jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
932 : {
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;
938 : }
939 :
940 : jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
941 : { return functions->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
942 :
943 : jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
944 : { return functions->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
945 :
946 : jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
947 : {
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;
953 : }
954 :
955 : jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
956 : { return functions->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
957 :
958 : jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
959 : { return functions->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
960 :
961 : jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
962 : {
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;
968 : }
969 :
970 : jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
971 : { return functions->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
972 :
973 : jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
974 : { return functions->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
975 :
976 : jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
977 : {
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;
983 : }
984 :
985 : jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
986 : { return functions->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
987 :
988 : jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
989 : { return functions->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
990 :
991 : jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
992 : {
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;
998 : }
999 :
1000 : jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1001 : { return functions->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
1002 :
1003 : jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
1004 : { return functions->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
1005 :
1006 : jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1007 : {
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;
1013 : }
1014 :
1015 : jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1016 : { return functions->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
1017 :
1018 : jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
1019 : { return functions->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
1020 :
1021 : jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1022 : {
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;
1028 : }
1029 :
1030 : jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1031 : { return functions->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
1032 :
1033 : jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
1034 : { return functions->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
1035 :
1036 : jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1037 : {
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;
1043 : }
1044 :
1045 : jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1046 : { return functions->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
1047 :
1048 : jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
1049 : { return functions->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
1050 :
1051 : void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
1052 : {
1053 : va_list args;
1054 : va_start (args, meth2);
1055 : functions->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
1056 : va_end (args);
1057 : }
1058 :
1059 : void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
1060 : { functions->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
1061 :
1062 : void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
1063 : { functions->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
1064 :
1065 : jfieldID GetFieldID (jclass cl0, const char * val1, const char * val2)
1066 : { return functions->GetFieldID (this, cl0, val1, val2); }
1067 :
1068 : jobject GetObjectField (jobject obj0, jfieldID fld1)
1069 : { return functions->GetObjectField (this, obj0, fld1); }
1070 :
1071 : jboolean GetBooleanField (jobject obj0, jfieldID fld1)
1072 : { return functions->GetBooleanField (this, obj0, fld1); }
1073 :
1074 : jbyte GetByteField (jobject obj0, jfieldID fld1)
1075 : { return functions->GetByteField (this, obj0, fld1); }
1076 :
1077 : jchar GetCharField (jobject obj0, jfieldID fld1)
1078 : { return functions->GetCharField (this, obj0, fld1); }
1079 :
1080 : jshort GetShortField (jobject obj0, jfieldID fld1)
1081 : { return functions->GetShortField (this, obj0, fld1); }
1082 :
1083 : jint GetIntField (jobject obj0, jfieldID fld1)
1084 : { return functions->GetIntField (this, obj0, fld1); }
1085 :
1086 : jlong GetLongField (jobject obj0, jfieldID fld1)
1087 : { return functions->GetLongField (this, obj0, fld1); }
1088 :
1089 : jfloat GetFloatField (jobject obj0, jfieldID fld1)
1090 : { return functions->GetFloatField (this, obj0, fld1); }
1091 :
1092 : jdouble GetDoubleField (jobject obj0, jfieldID fld1)
1093 : { return functions->GetDoubleField (this, obj0, fld1); }
1094 :
1095 : void SetObjectField (jobject obj0, jfieldID fld1, jobject obj2)
1096 : { functions->SetObjectField (this, obj0, fld1, obj2); }
1097 :
1098 : void SetBooleanField (jobject obj0, jfieldID fld1, jboolean val2)
1099 : { functions->SetBooleanField (this, obj0, fld1, val2); }
1100 :
1101 : void SetByteField (jobject obj0, jfieldID fld1, jbyte val2)
1102 : { functions->SetByteField (this, obj0, fld1, val2); }
1103 :
1104 : void SetCharField (jobject obj0, jfieldID fld1, jchar val2)
1105 : { functions->SetCharField (this, obj0, fld1, val2); }
1106 :
1107 : void SetShortField (jobject obj0, jfieldID fld1, jshort val2)
1108 : { functions->SetShortField (this, obj0, fld1, val2); }
1109 :
1110 : void SetIntField (jobject obj0, jfieldID fld1, jint val2)
1111 : { functions->SetIntField (this, obj0, fld1, val2); }
1112 :
1113 : void SetLongField (jobject obj0, jfieldID fld1, jlong val2)
1114 : { functions->SetLongField (this, obj0, fld1, val2); }
1115 :
1116 : void SetFloatField (jobject obj0, jfieldID fld1, jfloat val2)
1117 : { functions->SetFloatField (this, obj0, fld1, val2); }
1118 :
1119 : void SetDoubleField (jobject obj0, jfieldID fld1, jdouble val2)
1120 : { functions->SetDoubleField (this, obj0, fld1, val2); }
1121 :
1122 : jmethodID GetStaticMethodID (jclass cl0, const char * val1, const char * val2)
1123 : { return functions->GetStaticMethodID (this, cl0, val1, val2); }
1124 :
1125 : jobject CallStaticObjectMethod (jclass cl0, jmethodID meth1, ...)
1126 : {
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;
1132 : }
1133 :
1134 : jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, va_list val2)
1135 : { return functions->CallStaticObjectMethodV (this, cl0, meth1, val2); }
1136 :
1137 : jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1,
1138 : const jvalue * val2)
1139 : { return functions->CallStaticObjectMethodA (this, cl0, meth1, val2); }
1140 :
1141 : jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
1142 : {
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;
1148 : }
1149 :
1150 : jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, va_list val2)
1151 : { return functions->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
1152 :
1153 : jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1,
1154 : const jvalue * val2)
1155 : { return functions->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
1156 :
1157 : jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
1158 : {
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;
1164 : }
1165 :
1166 : jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, va_list val2)
1167 : { return functions->CallStaticByteMethodV (this, cl0, meth1, val2); }
1168 :
1169 : jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
1170 : { return functions->CallStaticByteMethodA (this, cl0, meth1, val2); }
1171 :
1172 : jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
1173 : {
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;
1179 : }
1180 :
1181 : jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, va_list val2)
1182 : { return functions->CallStaticCharMethodV (this, cl0, meth1, val2); }
1183 :
1184 : jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
1185 : { return functions->CallStaticCharMethodA (this, cl0, meth1, val2); }
1186 :
1187 : jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
1188 : {
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;
1194 : }
1195 :
1196 : jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, va_list val2)
1197 : { return functions->CallStaticShortMethodV (this, cl0, meth1, val2); }
1198 :
1199 : jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1,
1200 : const jvalue * val2)
1201 : { return functions->CallStaticShortMethodA (this, cl0, meth1, val2); }
1202 :
1203 : jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
1204 : {
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;
1210 : }
1211 :
1212 : jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, va_list val2)
1213 : { return functions->CallStaticIntMethodV (this, cl0, meth1, val2); }
1214 :
1215 : jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
1216 : { return functions->CallStaticIntMethodA (this, cl0, meth1, val2); }
1217 :
1218 : jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
1219 : {
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;
1225 : }
1226 :
1227 : jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, va_list val2)
1228 : { return functions->CallStaticLongMethodV (this, cl0, meth1, val2); }
1229 :
1230 : jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
1231 : { return functions->CallStaticLongMethodA (this, cl0, meth1, val2); }
1232 :
1233 : jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
1234 : {
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;
1240 : }
1241 :
1242 : jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, va_list val2)
1243 : { return functions->CallStaticFloatMethodV (this, cl0, meth1, val2); }
1244 :
1245 : jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1,
1246 : const jvalue * val2)
1247 : { return functions->CallStaticFloatMethodA (this, cl0, meth1, val2); }
1248 :
1249 : jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
1250 : {
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;
1256 : }
1257 :
1258 : jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, va_list val2)
1259 : { return functions->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
1260 :
1261 : jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1,
1262 : const jvalue * val2)
1263 : { return functions->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
1264 :
1265 : void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
1266 : {
1267 : va_list args;
1268 : va_start (args, meth1);
1269 : functions->CallStaticVoidMethodV (this, cl0, meth1, args);
1270 : va_end (args);
1271 : }
1272 :
1273 : void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, va_list val2)
1274 : { functions->CallStaticVoidMethodV (this, cl0, meth1, val2); }
1275 :
1276 : void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
1277 : { functions->CallStaticVoidMethodA (this, cl0, meth1, val2); }
1278 :
1279 : jfieldID GetStaticFieldID (jclass cl0, const char * val1, const char * val2)
1280 : { return functions->GetStaticFieldID (this, cl0, val1, val2); }
1281 :
1282 : jobject GetStaticObjectField (jclass cl0, jfieldID fld1)
1283 : { return functions->GetStaticObjectField (this, cl0, fld1); }
1284 :
1285 : jboolean GetStaticBooleanField (jclass cl0, jfieldID fld1)
1286 : { return functions->GetStaticBooleanField (this, cl0, fld1); }
1287 :
1288 : jbyte GetStaticByteField (jclass cl0, jfieldID fld1)
1289 : { return functions->GetStaticByteField (this, cl0, fld1); }
1290 :
1291 : jchar GetStaticCharField (jclass cl0, jfieldID fld1)
1292 : { return functions->GetStaticCharField (this, cl0, fld1); }
1293 :
1294 : jshort GetStaticShortField (jclass cl0, jfieldID fld1)
1295 : { return functions->GetStaticShortField (this, cl0, fld1); }
1296 :
1297 : jint GetStaticIntField (jclass cl0, jfieldID fld1)
1298 : { return functions->GetStaticIntField (this, cl0, fld1); }
1299 :
1300 : jlong GetStaticLongField (jclass cl0, jfieldID fld1)
1301 : { return functions->GetStaticLongField (this, cl0, fld1); }
1302 :
1303 : jfloat GetStaticFloatField (jclass cl0, jfieldID fld1)
1304 : { return functions->GetStaticFloatField (this, cl0, fld1); }
1305 :
1306 : jdouble GetStaticDoubleField (jclass cl0, jfieldID fld1)
1307 : { return functions->GetStaticDoubleField (this, cl0, fld1); }
1308 :
1309 : void SetStaticObjectField (jclass cl0, jfieldID fld1, jobject obj2)
1310 : { functions->SetStaticObjectField (this, cl0, fld1, obj2); }
1311 :
1312 : void SetStaticBooleanField (jclass cl0, jfieldID fld1, jboolean val2)
1313 : { functions->SetStaticBooleanField (this, cl0, fld1, val2); }
1314 :
1315 : void SetStaticByteField (jclass cl0, jfieldID fld1, jbyte val2)
1316 : { functions->SetStaticByteField (this, cl0, fld1, val2); }
1317 :
1318 : void SetStaticCharField (jclass cl0, jfieldID fld1, jchar val2)
1319 : { functions->SetStaticCharField (this, cl0, fld1, val2); }
1320 :
1321 : void SetStaticShortField (jclass cl0, jfieldID fld1, jshort val2)
1322 : { functions->SetStaticShortField (this, cl0, fld1, val2); }
1323 :
1324 : void SetStaticIntField (jclass cl0, jfieldID fld1, jint val2)
1325 : { functions->SetStaticIntField (this, cl0, fld1, val2); }
1326 :
1327 : void SetStaticLongField (jclass cl0, jfieldID fld1, jlong val2)
1328 : { functions->SetStaticLongField (this, cl0, fld1, val2); }
1329 :
1330 : void SetStaticFloatField (jclass cl0, jfieldID fld1, jfloat val2)
1331 : { functions->SetStaticFloatField (this, cl0, fld1, val2); }
1332 :
1333 : void SetStaticDoubleField (jclass cl0, jfieldID fld1, jdouble val2)
1334 : { functions->SetStaticDoubleField (this, cl0, fld1, val2); }
1335 :
1336 : jstring NewString (const jchar * val0, jsize val1)
1337 : { return functions->NewString (this, val0, val1); }
1338 :
1339 : jint GetStringLength (jstring val0)
1340 : { return functions->GetStringLength (this, val0); }
1341 :
1342 : const jchar * GetStringChars (jstring val0, jboolean * val1)
1343 : { return functions->GetStringChars (this, val0, val1); }
1344 :
1345 : void ReleaseStringChars (jstring val0, const jchar * val1)
1346 : { functions->ReleaseStringChars (this, val0, val1); }
1347 :
1348 : jstring NewStringUTF (const char * val0)
1349 : { return functions->NewStringUTF (this, val0); }
1350 :
1351 : jsize GetStringUTFLength (jstring val0)
1352 : { return functions->GetStringUTFLength (this, val0); }
1353 :
1354 : const char * GetStringUTFChars (jstring val0, jboolean * val1)
1355 : { return functions->GetStringUTFChars (this, val0, val1); }
1356 :
1357 : void ReleaseStringUTFChars (jstring val0, const char * val1)
1358 : { functions->ReleaseStringUTFChars (this, val0, val1); }
1359 :
1360 : jsize GetArrayLength (jarray val0)
1361 : { return functions->GetArrayLength (this, val0); }
1362 :
1363 : jobjectArray NewObjectArray (jsize val0, jclass cl1, jobject obj2)
1364 : { return functions->NewObjectArray (this, val0, cl1, obj2); }
1365 :
1366 : jobject GetObjectArrayElement (jobjectArray val0, jsize val1)
1367 : { return functions->GetObjectArrayElement (this, val0, val1); }
1368 :
1369 : void SetObjectArrayElement (jobjectArray val0, jsize val1, jobject obj2)
1370 : { functions->SetObjectArrayElement (this, val0, val1, obj2); }
1371 :
1372 : jbooleanArray NewBooleanArray (jsize val0)
1373 : { return functions->NewBooleanArray (this, val0); }
1374 :
1375 : jbyteArray NewByteArray (jsize val0)
1376 : { return functions->NewByteArray (this, val0); }
1377 :
1378 : jcharArray NewCharArray (jsize val0)
1379 : { return functions->NewCharArray (this, val0); }
1380 :
1381 : jshortArray NewShortArray (jsize val0)
1382 : { return functions->NewShortArray (this, val0); }
1383 :
1384 : jintArray NewIntArray (jsize val0)
1385 : { return functions->NewIntArray (this, val0); }
1386 :
1387 : jlongArray NewLongArray (jsize val0)
1388 : { return functions->NewLongArray (this, val0); }
1389 :
1390 : jfloatArray NewFloatArray (jsize val0)
1391 : { return functions->NewFloatArray (this, val0); }
1392 :
1393 : jdoubleArray NewDoubleArray (jsize val0)
1394 : { return functions->NewDoubleArray (this, val0); }
1395 :
1396 : jboolean * GetBooleanArrayElements (jbooleanArray val0, jboolean * val1)
1397 : { return functions->GetBooleanArrayElements (this, val0, val1); }
1398 :
1399 : jbyte * GetByteArrayElements (jbyteArray val0, jboolean * val1)
1400 : { return functions->GetByteArrayElements (this, val0, val1); }
1401 :
1402 : jchar * GetCharArrayElements (jcharArray val0, jboolean * val1)
1403 : { return functions->GetCharArrayElements (this, val0, val1); }
1404 :
1405 : jshort * GetShortArrayElements (jshortArray val0, jboolean * val1)
1406 : { return functions->GetShortArrayElements (this, val0, val1); }
1407 :
1408 : jint * GetIntArrayElements (jintArray val0, jboolean * val1)
1409 : { return functions->GetIntArrayElements (this, val0, val1); }
1410 :
1411 : jlong * GetLongArrayElements (jlongArray val0, jboolean * val1)
1412 : { return functions->GetLongArrayElements (this, val0, val1); }
1413 :
1414 : jfloat * GetFloatArrayElements (jfloatArray val0, jboolean * val1)
1415 : { return functions->GetFloatArrayElements (this, val0, val1); }
1416 :
1417 : jdouble * GetDoubleArrayElements (jdoubleArray val0, jboolean * val1)
1418 : { return functions->GetDoubleArrayElements (this, val0, val1); }
1419 :
1420 : void ReleaseBooleanArrayElements (jbooleanArray val0, jboolean * val1, jint val2)
1421 : { functions->ReleaseBooleanArrayElements (this, val0, val1, val2); }
1422 :
1423 : void ReleaseByteArrayElements (jbyteArray val0, jbyte * val1, jint val2)
1424 : { functions->ReleaseByteArrayElements (this, val0, val1, val2); }
1425 :
1426 : void ReleaseCharArrayElements (jcharArray val0, jchar * val1, jint val2)
1427 : { functions->ReleaseCharArrayElements (this, val0, val1, val2); }
1428 :
1429 : void ReleaseShortArrayElements (jshortArray val0, jshort * val1, jint val2)
1430 : { functions->ReleaseShortArrayElements (this, val0, val1, val2); }
1431 :
1432 : void ReleaseIntArrayElements (jintArray val0, jint * val1, jint val2)
1433 : { functions->ReleaseIntArrayElements (this, val0, val1, val2); }
1434 :
1435 : void ReleaseLongArrayElements (jlongArray val0, jlong * val1, jint val2)
1436 : { functions->ReleaseLongArrayElements (this, val0, val1, val2); }
1437 :
1438 : void ReleaseFloatArrayElements (jfloatArray val0, jfloat * val1, jint val2)
1439 : { functions->ReleaseFloatArrayElements (this, val0, val1, val2); }
1440 :
1441 : void ReleaseDoubleArrayElements (jdoubleArray val0, jdouble * val1, jint val2)
1442 : { functions->ReleaseDoubleArrayElements (this, val0, val1, val2); }
1443 :
1444 : void GetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
1445 : { functions->GetBooleanArrayRegion (this, val0, val1, val2, val3); }
1446 :
1447 : void GetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
1448 : { functions->GetByteArrayRegion (this, val0, val1, val2, val3); }
1449 :
1450 : void GetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
1451 : { functions->GetCharArrayRegion (this, val0, val1, val2, val3); }
1452 :
1453 : void GetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
1454 : { functions->GetShortArrayRegion (this, val0, val1, val2, val3); }
1455 :
1456 : void GetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
1457 : { functions->GetIntArrayRegion (this, val0, val1, val2, val3); }
1458 :
1459 : void GetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
1460 : { functions->GetLongArrayRegion (this, val0, val1, val2, val3); }
1461 :
1462 : void GetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
1463 : { functions->GetFloatArrayRegion (this, val0, val1, val2, val3); }
1464 :
1465 : void GetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
1466 : { functions->GetDoubleArrayRegion (this, val0, val1, val2, val3); }
1467 :
1468 : void SetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
1469 : { functions->SetBooleanArrayRegion (this, val0, val1, val2, val3); }
1470 :
1471 : void SetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
1472 : { functions->SetByteArrayRegion (this, val0, val1, val2, val3); }
1473 :
1474 : void SetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
1475 : { functions->SetCharArrayRegion (this, val0, val1, val2, val3); }
1476 :
1477 : void SetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
1478 : { functions->SetShortArrayRegion (this, val0, val1, val2, val3); }
1479 :
1480 : void SetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
1481 : { functions->SetIntArrayRegion (this, val0, val1, val2, val3); }
1482 :
1483 : void SetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
1484 : { functions->SetLongArrayRegion (this, val0, val1, val2, val3); }
1485 :
1486 : void SetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
1487 : { functions->SetFloatArrayRegion (this, val0, val1, val2, val3); }
1488 :
1489 : void SetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
1490 : { functions->SetDoubleArrayRegion (this, val0, val1, val2, val3); }
1491 :
1492 : jint RegisterNatives (jclass cl0, const JNINativeMethod * val1, jint val2)
1493 : { return functions->RegisterNatives (this, cl0, val1, val2); }
1494 :
1495 : jint UnregisterNatives (jclass cl0)
1496 : { return functions->UnregisterNatives (this, cl0); }
1497 :
1498 : jint MonitorEnter (jobject obj0)
1499 : { return functions->MonitorEnter (this, obj0); }
1500 :
1501 : jint MonitorExit (jobject obj0)
1502 : { return functions->MonitorExit (this, obj0); }
1503 :
1504 423 : jint GetJavaVM (JavaVM ** val0)
1505 423 : { return functions->GetJavaVM (this, val0); }
1506 :
1507 : /* ---- JNI 1.2 functions ---- */
1508 :
1509 : void GetStringRegion (jstring val0, jsize val1, jsize val2, jchar * val3)
1510 : { functions->GetStringRegion (this, val0, val1, val2, val3); }
1511 :
1512 : void GetStringUTFRegion (jstring val0, jsize val1, jsize val2, char * val3)
1513 : { functions->GetStringUTFRegion (this, val0, val1, val2, val3); }
1514 :
1515 : void * GetPrimitiveArrayCritical (jarray val0, jboolean * val1)
1516 : { return functions->GetPrimitiveArrayCritical (this, val0, val1); }
1517 :
1518 : void ReleasePrimitiveArrayCritical (jarray val0, void * val1, jint val2)
1519 : { functions->ReleasePrimitiveArrayCritical (this, val0, val1, val2); }
1520 :
1521 : const jchar * GetStringCritical (jstring val0, jboolean * val1)
1522 : { return functions->GetStringCritical (this, val0, val1); }
1523 :
1524 : void ReleaseStringCritical (jstring val0, const jchar * val1)
1525 : { functions->ReleaseStringCritical (this, val0, val1); }
1526 :
1527 : jweak NewWeakGlobalRef (jobject obj0)
1528 : { return functions->NewWeakGlobalRef (this, obj0); }
1529 :
1530 : void DeleteWeakGlobalRef (jweak val0)
1531 : { functions->DeleteWeakGlobalRef (this, val0); }
1532 :
1533 : jboolean ExceptionCheck ()
1534 : { return functions->ExceptionCheck (this); }
1535 :
1536 : /* ---- JNI 1.4 functions ---- */
1537 :
1538 : jobject NewDirectByteBuffer (void *addr, jlong capacity)
1539 : { return functions->NewDirectByteBuffer (this, addr, capacity); }
1540 :
1541 : void *GetDirectBufferAddress (jobject buf)
1542 : { return functions->GetDirectBufferAddress (this, buf); }
1543 :
1544 : jlong GetDirectBufferCapacity (jobject buf)
1545 : { return functions->GetDirectBufferCapacity (this, buf); }
1546 :
1547 : /* ---- JNI 1.6 functions ---- */
1548 :
1549 : jobjectRefType GetObjectRefType (jobject obj)
1550 : { return functions->GetObjectRefType (this, obj); }
1551 : };
1552 :
1553 : #endif /* __cplusplus */
1554 :
1555 : /*
1556 : * Invocation API.
1557 : */
1558 :
1559 : struct JNIInvokeInterface_
1560 : {
1561 : void *reserved0;
1562 : void *reserved1;
1563 : void *reserved2;
1564 :
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 *);
1570 : };
1571 :
1572 : #ifdef __cplusplus
1573 :
1574 : class _Jv_JavaVM
1575 : {
1576 : public:
1577 : const struct JNIInvokeInterface_ *functions;
1578 :
1579 : jint DestroyJavaVM ()
1580 : { return functions->DestroyJavaVM (this); }
1581 :
1582 : jint AttachCurrentThread (void **penv, void *args)
1583 : { return functions->AttachCurrentThread (this, penv, args); }
1584 :
1585 : jint DetachCurrentThread ()
1586 : { return functions->DetachCurrentThread (this); }
1587 :
1588 : jint GetEnv (void **penv, jint version)
1589 : { return functions->GetEnv (this, penv, version); }
1590 :
1591 : jint AttachCurrentThreadAsDaemon (void **penv, void *args)
1592 : { return functions->AttachCurrentThreadAsDaemon (this, penv, args); }
1593 : };
1594 :
1595 : #endif /* __cplusplus */
1596 :
1597 : typedef struct JavaVMAttachArgs
1598 : {
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;
1604 :
1605 : typedef struct JavaVMOption
1606 : {
1607 : char *optionString;
1608 : void *extraInfo;
1609 : } JavaVMOption;
1610 :
1611 : typedef struct JavaVMInitArgs
1612 : {
1613 : /* Must be JNI_VERSION_1_2. */
1614 : jint version;
1615 :
1616 : /* Number of options. */
1617 : jint nOptions;
1618 :
1619 : /* Options to the VM. */
1620 : JavaVMOption *options;
1621 :
1622 : /* Whether we should ignore unrecognized options. */
1623 : jboolean ignoreUnrecognized;
1624 : } JavaVMInitArgs;
1625 :
1626 : typedef struct JDK1_1InitArgs
1627 : {
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;
1632 :
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;
1637 :
1638 : jint checkSource;
1639 : jint nativeStackSize;
1640 : jint javaStackSize;
1641 : jint minHeapSize;
1642 : jint maxHeapSize;
1643 : jint verifyMode;
1644 : const char *classpath;
1645 :
1646 : jint (JNICALL *vfprintf) (FILE *file, const char *fmt, va_list args);
1647 : void (JNICALL *exit) (jint value);
1648 : void (JNICALL *abort) (void);
1649 :
1650 : jint enableClassGC;
1651 : jint enableVerboseGC;
1652 : jint disableAsyncGC;
1653 :
1654 : jint reserved0;
1655 : jint reserved1;
1656 : jint reserved2;
1657 : } JDK1_1InitArgs;
1658 :
1659 : typedef struct JDK1_1AttachArgs
1660 : {
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;
1665 :
1666 :
1667 : /* Keep c-font-lock-extra-types in alphabetical order. */
1668 : /*
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:
1677 : */
1678 :
1679 : #endif /* _CLASSPATH_JNI_H */
|