annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/jni.h @ 69:33d812a61356

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