00001
00002
00003
00004
00005 #ifndef xmog_inc
00006 #define xmog_inc
00007
00008
00082
00083 #include "xmog-config.h"
00084
00085
00087
00088 #if (XMOG_USE_EXTERNAL_JNI_DEFINITIONS==1)
00089
00090 # include <jni.h>
00091
00092 #else
00093
00094 # include <stdio.h>
00095 # include <stdarg.h>
00096 # if (XMOG_HAS_SYS_INTTYPES==1)
00097 # include <sys/inttypes.h>
00098 # endif
00099
00100 # if (XMOG_WINDOWS==1)
00101
00102 # define JNIEXPORT __declspec(dllexport)
00103 # define JNIIMPORT __declspec(dllimport)
00104 # define JNICALL __stdcall
00105
00106 typedef long jint;
00107 typedef __int64 jlong;
00108 typedef signed char jbyte;
00109
00110 # else
00111
00112 # define JNIEXPORT
00113 # define JNIIMPORT
00114 # define JNICALL
00115
00116 # if (XMOG_AIX==1)
00117 typedef int32_t jint;
00118 typedef int64_t jlong;
00119 # else
00120 typedef int jint;
00121 # if defined(_LP64) || defined(__64BIT__)
00122 typedef long jlong;
00123 # else
00124 typedef long long jlong;
00125 # endif
00126 # endif
00127
00128 typedef signed char jbyte;
00129
00130 # endif
00131
00132 # ifdef __cplusplus
00133 extern "C" {
00134 # endif
00135
00136
00137 typedef unsigned char jboolean;
00138 typedef unsigned short jchar;
00139 typedef short jshort;
00140 typedef float jfloat;
00141 typedef double jdouble;
00142
00143 #if (XMOG_AIX==1) && defined(__64BIT__)
00144 typedef jlong jsize;
00145 #else
00146 typedef jint jsize;
00147 #endif
00148
00149 #ifdef __cplusplus
00150
00151 class _jobject {};
00152 class _jclass : public _jobject {};
00153 class _jthrowable : public _jobject {};
00154 class _jstring : public _jobject {};
00155 class _jarray : public _jobject {};
00156 class _jbooleanArray : public _jarray {};
00157 class _jbyteArray : public _jarray {};
00158 class _jcharArray : public _jarray {};
00159 class _jshortArray : public _jarray {};
00160 class _jintArray : public _jarray {};
00161 class _jlongArray : public _jarray {};
00162 class _jfloatArray : public _jarray {};
00163 class _jdoubleArray : public _jarray {};
00164 class _jobjectArray : public _jarray {};
00165
00166 typedef _jobject *jobject;
00167 typedef _jclass *jclass;
00168 typedef _jthrowable *jthrowable;
00169 typedef _jstring *jstring;
00170 typedef _jarray *jarray;
00171 typedef _jbooleanArray *jbooleanArray;
00172 typedef _jbyteArray *jbyteArray;
00173 typedef _jcharArray *jcharArray;
00174 typedef _jshortArray *jshortArray;
00175 typedef _jintArray *jintArray;
00176 typedef _jlongArray *jlongArray;
00177 typedef _jfloatArray *jfloatArray;
00178 typedef _jdoubleArray *jdoubleArray;
00179 typedef _jobjectArray *jobjectArray;
00180
00181 #else
00182
00183 struct _jobject;
00184
00185 typedef struct _jobject *jobject;
00186 typedef jobject jclass;
00187 typedef jobject jthrowable;
00188 typedef jobject jstring;
00189 typedef jobject jarray;
00190 typedef jarray jbooleanArray;
00191 typedef jarray jbyteArray;
00192 typedef jarray jcharArray;
00193 typedef jarray jshortArray;
00194 typedef jarray jintArray;
00195 typedef jarray jlongArray;
00196 typedef jarray jfloatArray;
00197 typedef jarray jdoubleArray;
00198 typedef jarray jobjectArray;
00199
00200 #endif
00201
00202 typedef jobject jweak;
00203
00211 typedef union jvalue {
00212 jboolean z;
00213 jbyte b;
00214 jchar c;
00215 jshort s;
00216 jint i;
00217 jlong j;
00218 jfloat f;
00219 jdouble d;
00220 jobject l;
00221 } jvalue;
00222
00223 struct _jfieldID;
00224 typedef struct _jfieldID *jfieldID;
00225
00226 struct _jmethodID;
00227 typedef struct _jmethodID *jmethodID;
00228
00229
00230
00231
00232
00233 #define JNI_FALSE 0
00234 #define JNI_TRUE 1
00235
00236
00237
00238
00239
00240 #define JNI_OK 0
00241 #define JNI_ERR (-1)
00242 #define JNI_EDETACHED (-2)
00243 #define JNI_EVERSION (-3)
00244 #define JNI_ENOMEM (-4)
00245 #define JNI_EEXIST (-5)
00246 #define JNI_EINVAL (-6)
00247
00248
00249
00250
00251
00252 #define JNI_COMMIT 1
00253 #define JNI_ABORT 2
00254
00255
00256
00257
00258
00259
00260 typedef struct {
00261 char *name;
00262 char *signature;
00263 void *fnPtr;
00264 } JNINativeMethod;
00265
00266
00267
00268
00269
00270 struct JNINativeInterface_;
00271
00272 struct JNIEnv_;
00273
00274 #ifdef __cplusplus
00275 typedef JNIEnv_ JNIEnv;
00276 #else
00277 typedef const struct JNINativeInterface_ *JNIEnv;
00278 #endif
00279
00280
00281
00282
00283
00284 struct JNIInvokeInterface_;
00285
00286 struct JavaVM_;
00287
00288 #ifdef __cplusplus
00289 typedef JavaVM_ JavaVM;
00290 #else
00291 typedef const struct JNIInvokeInterface_ *JavaVM;
00292 #endif
00293
00294 struct JNINativeInterface_ {
00295 void *reserved0;
00296 void *reserved1;
00297 void *reserved2;
00298
00299 void *reserved3;
00300 jint (JNICALL *GetVersion)(JNIEnv *env);
00301
00302 jclass (JNICALL *DefineClass)
00303 (JNIEnv *env, const char *name, jobject loader, const jbyte *buf,
00304 jsize len);
00305 jclass (JNICALL *FindClass)
00306 (JNIEnv *env, const char *name);
00307
00308 jmethodID (JNICALL *FromReflectedMethod)
00309 (JNIEnv *env, jobject method);
00310 jfieldID (JNICALL *FromReflectedField)
00311 (JNIEnv *env, jobject field);
00312
00313 jobject (JNICALL *ToReflectedMethod)
00314 (JNIEnv *env, jclass cls, jmethodID methodID, jboolean isStatic);
00315
00316 jclass (JNICALL *GetSuperclass)
00317 (JNIEnv *env, jclass sub);
00318 jboolean (JNICALL *IsAssignableFrom)
00319 (JNIEnv *env, jclass sub, jclass sup);
00320
00321 jobject (JNICALL *ToReflectedField)
00322 (JNIEnv *env, jclass cls, jfieldID fieldID, jboolean isStatic);
00323
00324 jint (JNICALL *Throw)
00325 (JNIEnv *env, jthrowable obj);
00326 jint (JNICALL *ThrowNew)
00327 (JNIEnv *env, jclass clazz, const char *msg);
00328 jthrowable (JNICALL *ExceptionOccurred)
00329 (JNIEnv *env);
00330 void (JNICALL *ExceptionDescribe)
00331 (JNIEnv *env);
00332 void (JNICALL *ExceptionClear)
00333 (JNIEnv *env);
00334 void (JNICALL *FatalError)
00335 (JNIEnv *env, const char *msg);
00336
00337 jint (JNICALL *PushLocalFrame)
00338 (JNIEnv *env, jint capacity);
00339 jobject (JNICALL *PopLocalFrame)
00340 (JNIEnv *env, jobject result);
00341
00342 jobject (JNICALL *NewGlobalRef)
00343 (JNIEnv *env, jobject lobj);
00344 void (JNICALL *DeleteGlobalRef)
00345 (JNIEnv *env, jobject gref);
00346 void (JNICALL *DeleteLocalRef)
00347 (JNIEnv *env, jobject obj);
00348 jboolean (JNICALL *IsSameObject)
00349 (JNIEnv *env, jobject obj1, jobject obj2);
00350 jobject (JNICALL *NewLocalRef)
00351 (JNIEnv *env, jobject ref);
00352 jint (JNICALL *EnsureLocalCapacity)
00353 (JNIEnv *env, jint capacity);
00354
00355 jobject (JNICALL *AllocObject)
00356 (JNIEnv *env, jclass clazz);
00357 jobject (JNICALL *NewObject)
00358 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00359 jobject (JNICALL *NewObjectV)
00360 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00361 jobject (JNICALL *NewObjectA)
00362 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
00363
00364 jclass (JNICALL *GetObjectClass)
00365 (JNIEnv *env, jobject obj);
00366 jboolean (JNICALL *IsInstanceOf)
00367 (JNIEnv *env, jobject obj, jclass clazz);
00368
00369 jmethodID (JNICALL *GetMethodID)
00370 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
00371
00372 jobject (JNICALL *CallObjectMethod)
00373 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00374 jobject (JNICALL *CallObjectMethodV)
00375 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00376 jobject (JNICALL *CallObjectMethodA)
00377 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
00378
00379 jboolean (JNICALL *CallBooleanMethod)
00380 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00381 jboolean (JNICALL *CallBooleanMethodV)
00382 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00383 jboolean (JNICALL *CallBooleanMethodA)
00384 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
00385
00386 jbyte (JNICALL *CallByteMethod)
00387 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00388 jbyte (JNICALL *CallByteMethodV)
00389 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00390 jbyte (JNICALL *CallByteMethodA)
00391 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
00392
00393 jchar (JNICALL *CallCharMethod)
00394 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00395 jchar (JNICALL *CallCharMethodV)
00396 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00397 jchar (JNICALL *CallCharMethodA)
00398 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
00399
00400 jshort (JNICALL *CallShortMethod)
00401 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00402 jshort (JNICALL *CallShortMethodV)
00403 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00404 jshort (JNICALL *CallShortMethodA)
00405 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
00406
00407 jint (JNICALL *CallIntMethod)
00408 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00409 jint (JNICALL *CallIntMethodV)
00410 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00411 jint (JNICALL *CallIntMethodA)
00412 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
00413
00414 jlong (JNICALL *CallLongMethod)
00415 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00416 jlong (JNICALL *CallLongMethodV)
00417 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00418 jlong (JNICALL *CallLongMethodA)
00419 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
00420
00421 jfloat (JNICALL *CallFloatMethod)
00422 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00423 jfloat (JNICALL *CallFloatMethodV)
00424 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00425 jfloat (JNICALL *CallFloatMethodA)
00426 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
00427
00428 jdouble (JNICALL *CallDoubleMethod)
00429 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00430 jdouble (JNICALL *CallDoubleMethodV)
00431 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00432 jdouble (JNICALL *CallDoubleMethodA)
00433 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
00434
00435 void (JNICALL *CallVoidMethod)
00436 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00437 void (JNICALL *CallVoidMethodV)
00438 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00439 void (JNICALL *CallVoidMethodA)
00440 (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
00441
00442 jobject (JNICALL *CallNonvirtualObjectMethod)
00443 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00444 jobject (JNICALL *CallNonvirtualObjectMethodV)
00445 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00446 va_list args);
00447 jobject (JNICALL *CallNonvirtualObjectMethodA)
00448 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00449 jvalue * args);
00450
00451 jboolean (JNICALL *CallNonvirtualBooleanMethod)
00452 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00453 jboolean (JNICALL *CallNonvirtualBooleanMethodV)
00454 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00455 va_list args);
00456 jboolean (JNICALL *CallNonvirtualBooleanMethodA)
00457 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00458 jvalue * args);
00459
00460 jbyte (JNICALL *CallNonvirtualByteMethod)
00461 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00462 jbyte (JNICALL *CallNonvirtualByteMethodV)
00463 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00464 va_list args);
00465 jbyte (JNICALL *CallNonvirtualByteMethodA)
00466 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00467 jvalue *args);
00468
00469 jchar (JNICALL *CallNonvirtualCharMethod)
00470 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00471 jchar (JNICALL *CallNonvirtualCharMethodV)
00472 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00473 va_list args);
00474 jchar (JNICALL *CallNonvirtualCharMethodA)
00475 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00476 jvalue *args);
00477
00478 jshort (JNICALL *CallNonvirtualShortMethod)
00479 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00480 jshort (JNICALL *CallNonvirtualShortMethodV)
00481 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00482 va_list args);
00483 jshort (JNICALL *CallNonvirtualShortMethodA)
00484 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00485 jvalue *args);
00486
00487 jint (JNICALL *CallNonvirtualIntMethod)
00488 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00489 jint (JNICALL *CallNonvirtualIntMethodV)
00490 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00491 va_list args);
00492 jint (JNICALL *CallNonvirtualIntMethodA)
00493 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00494 jvalue *args);
00495
00496 jlong (JNICALL *CallNonvirtualLongMethod)
00497 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00498 jlong (JNICALL *CallNonvirtualLongMethodV)
00499 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00500 va_list args);
00501 jlong (JNICALL *CallNonvirtualLongMethodA)
00502 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00503 jvalue *args);
00504
00505 jfloat (JNICALL *CallNonvirtualFloatMethod)
00506 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00507 jfloat (JNICALL *CallNonvirtualFloatMethodV)
00508 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00509 va_list args);
00510 jfloat (JNICALL *CallNonvirtualFloatMethodA)
00511 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00512 jvalue *args);
00513
00514 jdouble (JNICALL *CallNonvirtualDoubleMethod)
00515 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00516 jdouble (JNICALL *CallNonvirtualDoubleMethodV)
00517 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00518 va_list args);
00519 jdouble (JNICALL *CallNonvirtualDoubleMethodA)
00520 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00521 jvalue *args);
00522
00523 void (JNICALL *CallNonvirtualVoidMethod)
00524 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00525 void (JNICALL *CallNonvirtualVoidMethodV)
00526 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00527 va_list args);
00528 void (JNICALL *CallNonvirtualVoidMethodA)
00529 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00530 jvalue * args);
00531
00532 jfieldID (JNICALL *GetFieldID)
00533 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
00534
00535 jobject (JNICALL *GetObjectField)
00536 (JNIEnv *env, jobject obj, jfieldID fieldID);
00537 jboolean (JNICALL *GetBooleanField)
00538 (JNIEnv *env, jobject obj, jfieldID fieldID);
00539 jbyte (JNICALL *GetByteField)
00540 (JNIEnv *env, jobject obj, jfieldID fieldID);
00541 jchar (JNICALL *GetCharField)
00542 (JNIEnv *env, jobject obj, jfieldID fieldID);
00543 jshort (JNICALL *GetShortField)
00544 (JNIEnv *env, jobject obj, jfieldID fieldID);
00545 jint (JNICALL *GetIntField)
00546 (JNIEnv *env, jobject obj, jfieldID fieldID);
00547 jlong (JNICALL *GetLongField)
00548 (JNIEnv *env, jobject obj, jfieldID fieldID);
00549 jfloat (JNICALL *GetFloatField)
00550 (JNIEnv *env, jobject obj, jfieldID fieldID);
00551 jdouble (JNICALL *GetDoubleField)
00552 (JNIEnv *env, jobject obj, jfieldID fieldID);
00553
00554 void (JNICALL *SetObjectField)
00555 (JNIEnv *env, jobject obj, jfieldID fieldID, jobject val);
00556 void (JNICALL *SetBooleanField)
00557 (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val);
00558 void (JNICALL *SetByteField)
00559 (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val);
00560 void (JNICALL *SetCharField)
00561 (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val);
00562 void (JNICALL *SetShortField)
00563 (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val);
00564 void (JNICALL *SetIntField)
00565 (JNIEnv *env, jobject obj, jfieldID fieldID, jint val);
00566 void (JNICALL *SetLongField)
00567 (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val);
00568 void (JNICALL *SetFloatField)
00569 (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val);
00570 void (JNICALL *SetDoubleField)
00571 (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val);
00572
00573 jmethodID (JNICALL *GetStaticMethodID)
00574 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
00575
00576 jobject (JNICALL *CallStaticObjectMethod)
00577 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00578 jobject (JNICALL *CallStaticObjectMethodV)
00579 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00580 jobject (JNICALL *CallStaticObjectMethodA)
00581 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
00582
00583 jboolean (JNICALL *CallStaticBooleanMethod)
00584 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00585 jboolean (JNICALL *CallStaticBooleanMethodV)
00586 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00587 jboolean (JNICALL *CallStaticBooleanMethodA)
00588 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
00589
00590 jbyte (JNICALL *CallStaticByteMethod)
00591 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00592 jbyte (JNICALL *CallStaticByteMethodV)
00593 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00594 jbyte (JNICALL *CallStaticByteMethodA)
00595 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
00596
00597 jchar (JNICALL *CallStaticCharMethod)
00598 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00599 jchar (JNICALL *CallStaticCharMethodV)
00600 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00601 jchar (JNICALL *CallStaticCharMethodA)
00602 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
00603
00604 jshort (JNICALL *CallStaticShortMethod)
00605 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00606 jshort (JNICALL *CallStaticShortMethodV)
00607 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00608 jshort (JNICALL *CallStaticShortMethodA)
00609 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
00610
00611 jint (JNICALL *CallStaticIntMethod)
00612 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00613 jint (JNICALL *CallStaticIntMethodV)
00614 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00615 jint (JNICALL *CallStaticIntMethodA)
00616 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
00617
00618 jlong (JNICALL *CallStaticLongMethod)
00619 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00620 jlong (JNICALL *CallStaticLongMethodV)
00621 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00622 jlong (JNICALL *CallStaticLongMethodA)
00623 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
00624
00625 jfloat (JNICALL *CallStaticFloatMethod)
00626 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00627 jfloat (JNICALL *CallStaticFloatMethodV)
00628 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00629 jfloat (JNICALL *CallStaticFloatMethodA)
00630 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
00631
00632 jdouble (JNICALL *CallStaticDoubleMethod)
00633 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00634 jdouble (JNICALL *CallStaticDoubleMethodV)
00635 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00636 jdouble (JNICALL *CallStaticDoubleMethodA)
00637 (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
00638
00639 void (JNICALL *CallStaticVoidMethod)
00640 (JNIEnv *env, jclass cls, jmethodID methodID, ...);
00641 void (JNICALL *CallStaticVoidMethodV)
00642 (JNIEnv *env, jclass cls, jmethodID methodID, va_list args);
00643 void (JNICALL *CallStaticVoidMethodA)
00644 (JNIEnv *env, jclass cls, jmethodID methodID, jvalue * args);
00645
00646 jfieldID (JNICALL *GetStaticFieldID)
00647 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
00648 jobject (JNICALL *GetStaticObjectField)
00649 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00650 jboolean (JNICALL *GetStaticBooleanField)
00651 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00652 jbyte (JNICALL *GetStaticByteField)
00653 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00654 jchar (JNICALL *GetStaticCharField)
00655 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00656 jshort (JNICALL *GetStaticShortField)
00657 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00658 jint (JNICALL *GetStaticIntField)
00659 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00660 jlong (JNICALL *GetStaticLongField)
00661 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00662 jfloat (JNICALL *GetStaticFloatField)
00663 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00664 jdouble (JNICALL *GetStaticDoubleField)
00665 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00666
00667 void (JNICALL *SetStaticObjectField)
00668 (JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value);
00669 void (JNICALL *SetStaticBooleanField)
00670 (JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value);
00671 void (JNICALL *SetStaticByteField)
00672 (JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value);
00673 void (JNICALL *SetStaticCharField)
00674 (JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value);
00675 void (JNICALL *SetStaticShortField)
00676 (JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value);
00677 void (JNICALL *SetStaticIntField)
00678 (JNIEnv *env, jclass clazz, jfieldID fieldID, jint value);
00679 void (JNICALL *SetStaticLongField)
00680 (JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value);
00681 void (JNICALL *SetStaticFloatField)
00682 (JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value);
00683 void (JNICALL *SetStaticDoubleField)
00684 (JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value);
00685
00686 jstring (JNICALL *NewString)
00687 (JNIEnv *env, const jchar *unicode, jsize len);
00688 jsize (JNICALL *GetStringLength)
00689 (JNIEnv *env, jstring str);
00690 const jchar *(JNICALL *GetStringChars)
00691 (JNIEnv *env, jstring str, jboolean *isCopy);
00692 void (JNICALL *ReleaseStringChars)
00693 (JNIEnv *env, jstring str, const jchar *chars);
00694
00695 jstring (JNICALL *NewStringUTF)
00696 (JNIEnv *env, const char *utf);
00697 jsize (JNICALL *GetStringUTFLength)
00698 (JNIEnv *env, jstring str);
00699 const char* (JNICALL *GetStringUTFChars)
00700 (JNIEnv *env, jstring str, jboolean *isCopy);
00701 void (JNICALL *ReleaseStringUTFChars)
00702 (JNIEnv *env, jstring str, const char* chars);
00703
00704
00705 jsize (JNICALL *GetArrayLength)
00706 (JNIEnv *env, jarray array);
00707
00708 jobjectArray (JNICALL *NewObjectArray)
00709 (JNIEnv *env, jsize len, jclass clazz, jobject init);
00710 jobject (JNICALL *GetObjectArrayElement)
00711 (JNIEnv *env, jobjectArray array, jsize index);
00712 void (JNICALL *SetObjectArrayElement)
00713 (JNIEnv *env, jobjectArray array, jsize index, jobject val);
00714
00715 jbooleanArray (JNICALL *NewBooleanArray)
00716 (JNIEnv *env, jsize len);
00717 jbyteArray (JNICALL *NewByteArray)
00718 (JNIEnv *env, jsize len);
00719 jcharArray (JNICALL *NewCharArray)
00720 (JNIEnv *env, jsize len);
00721 jshortArray (JNICALL *NewShortArray)
00722 (JNIEnv *env, jsize len);
00723 jintArray (JNICALL *NewIntArray)
00724 (JNIEnv *env, jsize len);
00725 jlongArray (JNICALL *NewLongArray)
00726 (JNIEnv *env, jsize len);
00727 jfloatArray (JNICALL *NewFloatArray)
00728 (JNIEnv *env, jsize len);
00729 jdoubleArray (JNICALL *NewDoubleArray)
00730 (JNIEnv *env, jsize len);
00731
00732 jboolean * (JNICALL *GetBooleanArrayElements)
00733 (JNIEnv *env, jbooleanArray array, jboolean *isCopy);
00734 jbyte * (JNICALL *GetByteArrayElements)
00735 (JNIEnv *env, jbyteArray array, jboolean *isCopy);
00736 jchar * (JNICALL *GetCharArrayElements)
00737 (JNIEnv *env, jcharArray array, jboolean *isCopy);
00738 jshort * (JNICALL *GetShortArrayElements)
00739 (JNIEnv *env, jshortArray array, jboolean *isCopy);
00740 jint * (JNICALL *GetIntArrayElements)
00741 (JNIEnv *env, jintArray array, jboolean *isCopy);
00742 jlong * (JNICALL *GetLongArrayElements)
00743 (JNIEnv *env, jlongArray array, jboolean *isCopy);
00744 jfloat * (JNICALL *GetFloatArrayElements)
00745 (JNIEnv *env, jfloatArray array, jboolean *isCopy);
00746 jdouble * (JNICALL *GetDoubleArrayElements)
00747 (JNIEnv *env, jdoubleArray array, jboolean *isCopy);
00748
00749 void (JNICALL *ReleaseBooleanArrayElements)
00750 (JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode);
00751 void (JNICALL *ReleaseByteArrayElements)
00752 (JNIEnv *env, jbyteArray array, jbyte *elems, jint mode);
00753 void (JNICALL *ReleaseCharArrayElements)
00754 (JNIEnv *env, jcharArray array, jchar *elems, jint mode);
00755 void (JNICALL *ReleaseShortArrayElements)
00756 (JNIEnv *env, jshortArray array, jshort *elems, jint mode);
00757 void (JNICALL *ReleaseIntArrayElements)
00758 (JNIEnv *env, jintArray array, jint *elems, jint mode);
00759 void (JNICALL *ReleaseLongArrayElements)
00760 (JNIEnv *env, jlongArray array, jlong *elems, jint mode);
00761 void (JNICALL *ReleaseFloatArrayElements)
00762 (JNIEnv *env, jfloatArray array, jfloat *elems, jint mode);
00763 void (JNICALL *ReleaseDoubleArrayElements)
00764 (JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode);
00765
00766 void (JNICALL *GetBooleanArrayRegion)
00767 (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
00768 void (JNICALL *GetByteArrayRegion)
00769 (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
00770 void (JNICALL *GetCharArrayRegion)
00771 (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
00772 void (JNICALL *GetShortArrayRegion)
00773 (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
00774 void (JNICALL *GetIntArrayRegion)
00775 (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
00776 void (JNICALL *GetLongArrayRegion)
00777 (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
00778 void (JNICALL *GetFloatArrayRegion)
00779 (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
00780 void (JNICALL *GetDoubleArrayRegion)
00781 (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
00782
00783 void (JNICALL *SetBooleanArrayRegion)
00784 (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
00785 void (JNICALL *SetByteArrayRegion)
00786 (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
00787 void (JNICALL *SetCharArrayRegion)
00788 (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
00789 void (JNICALL *SetShortArrayRegion)
00790 (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
00791 void (JNICALL *SetIntArrayRegion)
00792 (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
00793 void (JNICALL *SetLongArrayRegion)
00794 (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
00795 void (JNICALL *SetFloatArrayRegion)
00796 (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
00797 void (JNICALL *SetDoubleArrayRegion)
00798 (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
00799
00800 jint (JNICALL *RegisterNatives)
00801 (JNIEnv *env, jclass clazz, const JNINativeMethod *methods,
00802 jint nMethods);
00803 jint (JNICALL *UnregisterNatives)
00804 (JNIEnv *env, jclass clazz);
00805
00806 jint (JNICALL *MonitorEnter)
00807 (JNIEnv *env, jobject obj);
00808 jint (JNICALL *MonitorExit)
00809 (JNIEnv *env, jobject obj);
00810
00811 jint (JNICALL *GetJavaVM)
00812 (JNIEnv *env, JavaVM **vm);
00813
00814 void (JNICALL *GetStringRegion)
00815 (JNIEnv *env, jstring str, jsize start, jsize len, jchar *buf);
00816 void (JNICALL *GetStringUTFRegion)
00817 (JNIEnv *env, jstring str, jsize start, jsize len, char *buf);
00818
00819 void * (JNICALL *GetPrimitiveArrayCritical)
00820 (JNIEnv *env, jarray array, jboolean *isCopy);
00821 void (JNICALL *ReleasePrimitiveArrayCritical)
00822 (JNIEnv *env, jarray array, void *carray, jint mode);
00823
00824 const jchar * (JNICALL *GetStringCritical)
00825 (JNIEnv *env, jstring string, jboolean *isCopy);
00826 void (JNICALL *ReleaseStringCritical)
00827 (JNIEnv *env, jstring string, const jchar *cstring);
00828
00829 jweak (JNICALL *NewWeakGlobalRef)
00830 (JNIEnv *env, jobject obj);
00831 void (JNICALL *DeleteWeakGlobalRef)
00832 (JNIEnv *env, jweak ref);
00833
00834 jboolean (JNICALL *ExceptionCheck)
00835 (JNIEnv *env);
00836
00837 jobject (JNICALL *NewDirectByteBuffer)
00838 (JNIEnv* env, void* address, jlong capacity);
00839 void* (JNICALL *GetDirectBufferAddress)
00840 (JNIEnv* env, jobject buf);
00841 jlong (JNICALL *GetDirectBufferCapacity)
00842 (JNIEnv* env, jobject buf);
00843 };
00844
00845 struct JNIEnv_ {
00846 const struct JNINativeInterface_ *functions;
00847 #ifdef __cplusplus
00848
00849 jint GetVersion() {
00850 return functions->GetVersion(this);
00851 }
00852 jclass DefineClass(const char *name, jobject loader, const jbyte *buf,
00853 jsize len) {
00854 return functions->DefineClass(this, name, loader, buf, len);
00855 }
00856 jclass FindClass(const char *name) {
00857 return functions->FindClass(this, name);
00858 }
00859 jmethodID FromReflectedMethod(jobject method) {
00860 return functions->FromReflectedMethod(this,method);
00861 }
00862 jfieldID FromReflectedField(jobject field) {
00863 return functions->FromReflectedField(this,field);
00864 }
00865
00866 jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic) {
00867 return functions->ToReflectedMethod(this, cls, methodID, isStatic);
00868 }
00869
00870 jclass GetSuperclass(jclass sub) {
00871 return functions->GetSuperclass(this, sub);
00872 }
00873 jboolean IsAssignableFrom(jclass sub, jclass sup) {
00874 return functions->IsAssignableFrom(this, sub, sup);
00875 }
00876
00877 jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic) {
00878 return functions->ToReflectedField(this,cls,fieldID,isStatic);
00879 }
00880
00881 jint Throw(jthrowable obj) {
00882 return functions->Throw(this, obj);
00883 }
00884 jint ThrowNew(jclass clazz, const char *msg) {
00885 return functions->ThrowNew(this, clazz, msg);
00886 }
00887 jthrowable ExceptionOccurred() {
00888 return functions->ExceptionOccurred(this);
00889 }
00890 void ExceptionDescribe() {
00891 functions->ExceptionDescribe(this);
00892 }
00893 void ExceptionClear() {
00894 functions->ExceptionClear(this);
00895 }
00896 void FatalError(const char *msg) {
00897 functions->FatalError(this, msg);
00898 }
00899
00900 jint PushLocalFrame(jint capacity) {
00901 return functions->PushLocalFrame(this,capacity);
00902 }
00903 jobject PopLocalFrame(jobject result) {
00904 return functions->PopLocalFrame(this,result);
00905 }
00906
00907 jobject NewGlobalRef(jobject lobj) {
00908 return functions->NewGlobalRef(this,lobj);
00909 }
00910 void DeleteGlobalRef(jobject gref) {
00911 functions->DeleteGlobalRef(this,gref);
00912 }
00913 void DeleteLocalRef(jobject obj) {
00914 functions->DeleteLocalRef(this, obj);
00915 }
00916
00917 jboolean IsSameObject(jobject obj1, jobject obj2) {
00918 return functions->IsSameObject(this,obj1,obj2);
00919 }
00920
00921 jobject NewLocalRef(jobject ref) {
00922 return functions->NewLocalRef(this,ref);
00923 }
00924 jint EnsureLocalCapacity(jint capacity) {
00925 return functions->EnsureLocalCapacity(this,capacity);
00926 }
00927
00928 jobject AllocObject(jclass clazz) {
00929 return functions->AllocObject(this,clazz);
00930 }
00931 jobject NewObject(jclass clazz, jmethodID methodID, ...) {
00932 va_list args;
00933 jobject result;
00934 va_start(args, methodID);
00935 result = functions->NewObjectV(this,clazz,methodID,args);
00936 va_end(args);
00937 return result;
00938 }
00939 jobject NewObjectV(jclass clazz, jmethodID methodID,
00940 va_list args) {
00941 return functions->NewObjectV(this,clazz,methodID,args);
00942 }
00943 jobject NewObjectA(jclass clazz, jmethodID methodID,
00944 jvalue *args) {
00945 return functions->NewObjectA(this,clazz,methodID,args);
00946 }
00947
00948 jclass GetObjectClass(jobject obj) {
00949 return functions->GetObjectClass(this,obj);
00950 }
00951 jboolean IsInstanceOf(jobject obj, jclass clazz) {
00952 return functions->IsInstanceOf(this,obj,clazz);
00953 }
00954
00955 jmethodID GetMethodID(jclass clazz, const char *name,
00956 const char *sig) {
00957 return functions->GetMethodID(this,clazz,name,sig);
00958 }
00959
00960 jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) {
00961 va_list args;
00962 jobject result;
00963 va_start(args,methodID);
00964 result = functions->CallObjectMethodV(this,obj,methodID,args);
00965 va_end(args);
00966 return result;
00967 }
00968 jobject CallObjectMethodV(jobject obj, jmethodID methodID,
00969 va_list args) {
00970 return functions->CallObjectMethodV(this,obj,methodID,args);
00971 }
00972 jobject CallObjectMethodA(jobject obj, jmethodID methodID,
00973 jvalue * args) {
00974 return functions->CallObjectMethodA(this,obj,methodID,args);
00975 }
00976
00977 jboolean CallBooleanMethod(jobject obj,
00978 jmethodID methodID, ...) {
00979 va_list args;
00980 jboolean result;
00981 va_start(args,methodID);
00982 result = functions->CallBooleanMethodV(this,obj,methodID,args);
00983 va_end(args);
00984 return result;
00985 }
00986 jboolean CallBooleanMethodV(jobject obj, jmethodID methodID,
00987 va_list args) {
00988 return functions->CallBooleanMethodV(this,obj,methodID,args);
00989 }
00990 jboolean CallBooleanMethodA(jobject obj, jmethodID methodID,
00991 jvalue * args) {
00992 return functions->CallBooleanMethodA(this,obj,methodID, args);
00993 }
00994
00995 jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) {
00996 va_list args;
00997 jbyte result;
00998 va_start(args,methodID);
00999 result = functions->CallByteMethodV(this,obj,methodID,args);
01000 va_end(args);
01001 return result;
01002 }
01003 jbyte CallByteMethodV(jobject obj, jmethodID methodID,
01004 va_list args) {
01005 return functions->CallByteMethodV(this,obj,methodID,args);
01006 }
01007 jbyte CallByteMethodA(jobject obj, jmethodID methodID,
01008 jvalue * args) {
01009 return functions->CallByteMethodA(this,obj,methodID,args);
01010 }
01011
01012 jchar CallCharMethod(jobject obj, jmethodID methodID, ...) {
01013 va_list args;
01014 jchar result;
01015 va_start(args,methodID);
01016 result = functions->CallCharMethodV(this,obj,methodID,args);
01017 va_end(args);
01018 return result;
01019 }
01020 jchar CallCharMethodV(jobject obj, jmethodID methodID,
01021 va_list args) {
01022 return functions->CallCharMethodV(this,obj,methodID,args);
01023 }
01024 jchar CallCharMethodA(jobject obj, jmethodID methodID,
01025 jvalue * args) {
01026 return functions->CallCharMethodA(this,obj,methodID,args);
01027 }
01028
01029 jshort CallShortMethod(jobject obj, jmethodID methodID, ...) {
01030 va_list args;
01031 jshort result;
01032 va_start(args,methodID);
01033 result = functions->CallShortMethodV(this,obj,methodID,args);
01034 va_end(args);
01035 return result;
01036 }
01037 jshort CallShortMethodV(jobject obj, jmethodID methodID,
01038 va_list args) {
01039 return functions->CallShortMethodV(this,obj,methodID,args);
01040 }
01041 jshort CallShortMethodA(jobject obj, jmethodID methodID,
01042 jvalue * args) {
01043 return functions->CallShortMethodA(this,obj,methodID,args);
01044 }
01045
01046 jint CallIntMethod(jobject obj, jmethodID methodID, ...) {
01047 va_list args;
01048 jint result;
01049 va_start(args,methodID);
01050 result = functions->CallIntMethodV(this,obj,methodID,args);
01051 va_end(args);
01052 return result;
01053 }
01054 jint CallIntMethodV(jobject obj, jmethodID methodID,
01055 va_list args) {
01056 return functions->CallIntMethodV(this,obj,methodID,args);
01057 }
01058 jint CallIntMethodA(jobject obj, jmethodID methodID,
01059 jvalue * args) {
01060 return functions->CallIntMethodA(this,obj,methodID,args);
01061 }
01062
01063 jlong CallLongMethod(jobject obj, jmethodID methodID, ...) {
01064 va_list args;
01065 jlong result;
01066 va_start(args,methodID);
01067 result = functions->CallLongMethodV(this,obj,methodID,args);
01068 va_end(args);
01069 return result;
01070 }
01071 jlong CallLongMethodV(jobject obj, jmethodID methodID,
01072 va_list args) {
01073 return functions->CallLongMethodV(this,obj,methodID,args);
01074 }
01075 jlong CallLongMethodA(jobject obj, jmethodID methodID,
01076 jvalue * args) {
01077 return functions->CallLongMethodA(this,obj,methodID,args);
01078 }
01079
01080 jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) {
01081 va_list args;
01082 jfloat result;
01083 va_start(args,methodID);
01084 result = functions->CallFloatMethodV(this,obj,methodID,args);
01085 va_end(args);
01086 return result;
01087 }
01088 jfloat CallFloatMethodV(jobject obj, jmethodID methodID,
01089 va_list args) {
01090 return functions->CallFloatMethodV(this,obj,methodID,args);
01091 }
01092 jfloat CallFloatMethodA(jobject obj, jmethodID methodID,
01093 jvalue * args) {
01094 return functions->CallFloatMethodA(this,obj,methodID,args);
01095 }
01096
01097 jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) {
01098 va_list args;
01099 jdouble result;
01100 va_start(args,methodID);
01101 result = functions->CallDoubleMethodV(this,obj,methodID,args);
01102 va_end(args);
01103 return result;
01104 }
01105 jdouble CallDoubleMethodV(jobject obj, jmethodID methodID,
01106 va_list args) {
01107 return functions->CallDoubleMethodV(this,obj,methodID,args);
01108 }
01109 jdouble CallDoubleMethodA(jobject obj, jmethodID methodID,
01110 jvalue * args) {
01111 return functions->CallDoubleMethodA(this,obj,methodID,args);
01112 }
01113
01114 void CallVoidMethod(jobject obj, jmethodID methodID, ...) {
01115 va_list args;
01116 va_start(args,methodID);
01117 functions->CallVoidMethodV(this,obj,methodID,args);
01118 va_end(args);
01119 }
01120 void CallVoidMethodV(jobject obj, jmethodID methodID,
01121 va_list args) {
01122 functions->CallVoidMethodV(this,obj,methodID,args);
01123 }
01124 void CallVoidMethodA(jobject obj, jmethodID methodID,
01125 jvalue * args) {
01126 functions->CallVoidMethodA(this,obj,methodID,args);
01127 }
01128
01129 jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz,
01130 jmethodID methodID, ...) {
01131 va_list args;
01132 jobject result;
01133 va_start(args,methodID);
01134 result = functions->CallNonvirtualObjectMethodV(this,obj,clazz,
01135 methodID,args);
01136 va_end(args);
01137 return result;
01138 }
01139 jobject CallNonvirtualObjectMethodV(jobject obj, jclass clazz,
01140 jmethodID methodID, va_list args) {
01141 return functions->CallNonvirtualObjectMethodV(this,obj,clazz,
01142 methodID,args);
01143 }
01144 jobject CallNonvirtualObjectMethodA(jobject obj, jclass clazz,
01145 jmethodID methodID, jvalue * args) {
01146 return functions->CallNonvirtualObjectMethodA(this,obj,clazz,
01147 methodID,args);
01148 }
01149
01150 jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz,
01151 jmethodID methodID, ...) {
01152 va_list args;
01153 jboolean result;
01154 va_start(args,methodID);
01155 result = functions->CallNonvirtualBooleanMethodV(this,obj,clazz,
01156 methodID,args);
01157 va_end(args);
01158 return result;
01159 }
01160 jboolean CallNonvirtualBooleanMethodV(jobject obj, jclass clazz,
01161 jmethodID methodID, va_list args) {
01162 return functions->CallNonvirtualBooleanMethodV(this,obj,clazz,
01163 methodID,args);
01164 }
01165 jboolean CallNonvirtualBooleanMethodA(jobject obj, jclass clazz,
01166 jmethodID methodID, jvalue * args) {
01167 return functions->CallNonvirtualBooleanMethodA(this,obj,clazz,
01168 methodID, args);
01169 }
01170
01171 jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz,
01172 jmethodID methodID, ...) {
01173 va_list args;
01174 jbyte result;
01175 va_start(args,methodID);
01176 result = functions->CallNonvirtualByteMethodV(this,obj,clazz,
01177 methodID,args);
01178 va_end(args);
01179 return result;
01180 }
01181 jbyte CallNonvirtualByteMethodV(jobject obj, jclass clazz,
01182 jmethodID methodID, va_list args) {
01183 return functions->CallNonvirtualByteMethodV(this,obj,clazz,
01184 methodID,args);
01185 }
01186 jbyte CallNonvirtualByteMethodA(jobject obj, jclass clazz,
01187 jmethodID methodID, jvalue * args) {
01188 return functions->CallNonvirtualByteMethodA(this,obj,clazz,
01189 methodID,args);
01190 }
01191
01192 jchar CallNonvirtualCharMethod(jobject obj, jclass clazz,
01193 jmethodID methodID, ...) {
01194 va_list args;
01195 jchar result;
01196 va_start(args,methodID);
01197 result = functions->CallNonvirtualCharMethodV(this,obj,clazz,
01198 methodID,args);
01199 va_end(args);
01200 return result;
01201 }
01202 jchar CallNonvirtualCharMethodV(jobject obj, jclass clazz,
01203 jmethodID methodID, va_list args) {
01204 return functions->CallNonvirtualCharMethodV(this,obj,clazz,
01205 methodID,args);
01206 }
01207 jchar CallNonvirtualCharMethodA(jobject obj, jclass clazz,
01208 jmethodID methodID, jvalue * args) {
01209 return functions->CallNonvirtualCharMethodA(this,obj,clazz,
01210 methodID,args);
01211 }
01212
01213 jshort CallNonvirtualShortMethod(jobject obj, jclass clazz,
01214 jmethodID methodID, ...) {
01215 va_list args;
01216 jshort result;
01217 va_start(args,methodID);
01218 result = functions->CallNonvirtualShortMethodV(this,obj,clazz,
01219 methodID,args);
01220 va_end(args);
01221 return result;
01222 }
01223 jshort CallNonvirtualShortMethodV(jobject obj, jclass clazz,
01224 jmethodID methodID, va_list args) {
01225 return functions->CallNonvirtualShortMethodV(this,obj,clazz,
01226 methodID,args);
01227 }
01228 jshort CallNonvirtualShortMethodA(jobject obj, jclass clazz,
01229 jmethodID methodID, jvalue * args) {
01230 return functions->CallNonvirtualShortMethodA(this,obj,clazz,
01231 methodID,args);
01232 }
01233
01234 jint CallNonvirtualIntMethod(jobject obj, jclass clazz,
01235 jmethodID methodID, ...) {
01236 va_list args;
01237 jint result;
01238 va_start(args,methodID);
01239 result = functions->CallNonvirtualIntMethodV(this,obj,clazz,
01240 methodID,args);
01241 va_end(args);
01242 return result;
01243 }
01244 jint CallNonvirtualIntMethodV(jobject obj, jclass clazz,
01245 jmethodID methodID, va_list args) {
01246 return functions->CallNonvirtualIntMethodV(this,obj,clazz,
01247 methodID,args);
01248 }
01249 jint CallNonvirtualIntMethodA(jobject obj, jclass clazz,
01250 jmethodID methodID, jvalue * args) {
01251 return functions->CallNonvirtualIntMethodA(this,obj,clazz,
01252 methodID,args);
01253 }
01254
01255 jlong CallNonvirtualLongMethod(jobject obj, jclass clazz,
01256 jmethodID methodID, ...) {
01257 va_list args;
01258 jlong result;
01259 va_start(args,methodID);
01260 result = functions->CallNonvirtualLongMethodV(this,obj,clazz,
01261 methodID,args);
01262 va_end(args);
01263 return result;
01264 }
01265 jlong CallNonvirtualLongMethodV(jobject obj, jclass clazz,
01266 jmethodID methodID, va_list args) {
01267 return functions->CallNonvirtualLongMethodV(this,obj,clazz,
01268 methodID,args);
01269 }
01270 jlong CallNonvirtualLongMethodA(jobject obj, jclass clazz,
01271 jmethodID methodID, jvalue * args) {
01272 return functions->CallNonvirtualLongMethodA(this,obj,clazz,
01273 methodID,args);
01274 }
01275
01276 jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz,
01277 jmethodID methodID, ...) {
01278 va_list args;
01279 jfloat result;
01280 va_start(args,methodID);
01281 result = functions->CallNonvirtualFloatMethodV(this,obj,clazz,
01282 methodID,args);
01283 va_end(args);
01284 return result;
01285 }
01286 jfloat CallNonvirtualFloatMethodV(jobject obj, jclass clazz,
01287 jmethodID methodID,
01288 va_list args) {
01289 return functions->CallNonvirtualFloatMethodV(this,obj,clazz,
01290 methodID,args);
01291 }
01292 jfloat CallNonvirtualFloatMethodA(jobject obj, jclass clazz,
01293 jmethodID methodID,
01294 jvalue * args) {
01295 return functions->CallNonvirtualFloatMethodA(this,obj,clazz,
01296 methodID,args);
01297 }
01298
01299 jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz,
01300 jmethodID methodID, ...) {
01301 va_list args;
01302 jdouble result;
01303 va_start(args,methodID);
01304 result = functions->CallNonvirtualDoubleMethodV(this,obj,clazz,
01305 methodID,args);
01306 va_end(args);
01307 return result;
01308 }
01309 jdouble CallNonvirtualDoubleMethodV(jobject obj, jclass clazz,
01310 jmethodID methodID,
01311 va_list args) {
01312 return functions->CallNonvirtualDoubleMethodV(this,obj,clazz,
01313 methodID,args);
01314 }
01315 jdouble CallNonvirtualDoubleMethodA(jobject obj, jclass clazz,
01316 jmethodID methodID,
01317 jvalue * args) {
01318 return functions->CallNonvirtualDoubleMethodA(this,obj,clazz,
01319 methodID,args);
01320 }
01321
01322 void CallNonvirtualVoidMethod(jobject obj, jclass clazz,
01323 jmethodID methodID, ...) {
01324 va_list args;
01325 va_start(args,methodID);
01326 functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args);
01327 va_end(args);
01328 }
01329 void CallNonvirtualVoidMethodV(jobject obj, jclass clazz,
01330 jmethodID methodID,
01331 va_list args) {
01332 functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args);
01333 }
01334 void CallNonvirtualVoidMethodA(jobject obj, jclass clazz,
01335 jmethodID methodID,
01336 jvalue * args) {
01337 functions->CallNonvirtualVoidMethodA(this,obj,clazz,methodID,args);
01338 }
01339
01340 jfieldID GetFieldID(jclass clazz, const char *name,
01341 const char *sig) {
01342 return functions->GetFieldID(this,clazz,name,sig);
01343 }
01344
01345 jobject GetObjectField(jobject obj, jfieldID fieldID) {
01346 return functions->GetObjectField(this,obj,fieldID);
01347 }
01348 jboolean GetBooleanField(jobject obj, jfieldID fieldID) {
01349 return functions->GetBooleanField(this,obj,fieldID);
01350 }
01351 jbyte GetByteField(jobject obj, jfieldID fieldID) {
01352 return functions->GetByteField(this,obj,fieldID);
01353 }
01354 jchar GetCharField(jobject obj, jfieldID fieldID) {
01355 return functions->GetCharField(this,obj,fieldID);
01356 }
01357 jshort GetShortField(jobject obj, jfieldID fieldID) {
01358 return functions->GetShortField(this,obj,fieldID);
01359 }
01360 jint GetIntField(jobject obj, jfieldID fieldID) {
01361 return functions->GetIntField(this,obj,fieldID);
01362 }
01363 jlong GetLongField(jobject obj, jfieldID fieldID) {
01364 return functions->GetLongField(this,obj,fieldID);
01365 }
01366 jfloat GetFloatField(jobject obj, jfieldID fieldID) {
01367 return functions->GetFloatField(this,obj,fieldID);
01368 }
01369 jdouble GetDoubleField(jobject obj, jfieldID fieldID) {
01370 return functions->GetDoubleField(this,obj,fieldID);
01371 }
01372
01373 void SetObjectField(jobject obj, jfieldID fieldID, jobject val) {
01374 functions->SetObjectField(this,obj,fieldID,val);
01375 }
01376 void SetBooleanField(jobject obj, jfieldID fieldID,
01377 jboolean val) {
01378 functions->SetBooleanField(this,obj,fieldID,val);
01379 }
01380 void SetByteField(jobject obj, jfieldID fieldID,
01381 jbyte val) {
01382 functions->SetByteField(this,obj,fieldID,val);
01383 }
01384 void SetCharField(jobject obj, jfieldID fieldID,
01385 jchar val) {
01386 functions->SetCharField(this,obj,fieldID,val);
01387 }
01388 void SetShortField(jobject obj, jfieldID fieldID,
01389 jshort val) {
01390 functions->SetShortField(this,obj,fieldID,val);
01391 }
01392 void SetIntField(jobject obj, jfieldID fieldID,
01393 jint val) {
01394 functions->SetIntField(this,obj,fieldID,val);
01395 }
01396 void SetLongField(jobject obj, jfieldID fieldID,
01397 jlong val) {
01398 functions->SetLongField(this,obj,fieldID,val);
01399 }
01400 void SetFloatField(jobject obj, jfieldID fieldID,
01401 jfloat val) {
01402 functions->SetFloatField(this,obj,fieldID,val);
01403 }
01404 void SetDoubleField(jobject obj, jfieldID fieldID,
01405 jdouble val) {
01406 functions->SetDoubleField(this,obj,fieldID,val);
01407 }
01408
01409 jmethodID GetStaticMethodID(jclass clazz, const char *name,
01410 const char *sig) {
01411 return functions->GetStaticMethodID(this,clazz,name,sig);
01412 }
01413
01414 jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID,
01415 ...) {
01416 va_list args;
01417 jobject result;
01418 va_start(args,methodID);
01419 result = functions->CallStaticObjectMethodV(this,clazz,methodID,args);
01420 va_end(args);
01421 return result;
01422 }
01423 jobject CallStaticObjectMethodV(jclass clazz, jmethodID methodID,
01424 va_list args) {
01425 return functions->CallStaticObjectMethodV(this,clazz,methodID,args);
01426 }
01427 jobject CallStaticObjectMethodA(jclass clazz, jmethodID methodID,
01428 jvalue *args) {
01429 return functions->CallStaticObjectMethodA(this,clazz,methodID,args);
01430 }
01431
01432 jboolean CallStaticBooleanMethod(jclass clazz,
01433 jmethodID methodID, ...) {
01434 va_list args;
01435 jboolean result;
01436 va_start(args,methodID);
01437 result = functions->CallStaticBooleanMethodV(this,clazz,methodID,args);
01438 va_end(args);
01439 return result;
01440 }
01441 jboolean CallStaticBooleanMethodV(jclass clazz,
01442 jmethodID methodID, va_list args) {
01443 return functions->CallStaticBooleanMethodV(this,clazz,methodID,args);
01444 }
01445 jboolean CallStaticBooleanMethodA(jclass clazz,
01446 jmethodID methodID, jvalue *args) {
01447 return functions->CallStaticBooleanMethodA(this,clazz,methodID,args);
01448 }
01449
01450 jbyte CallStaticByteMethod(jclass clazz,
01451 jmethodID methodID, ...) {
01452 va_list args;
01453 jbyte result;
01454 va_start(args,methodID);
01455 result = functions->CallStaticByteMethodV(this,clazz,methodID,args);
01456 va_end(args);
01457 return result;
01458 }
01459 jbyte CallStaticByteMethodV(jclass clazz,
01460 jmethodID methodID, va_list args) {
01461 return functions->CallStaticByteMethodV(this,clazz,methodID,args);
01462 }
01463 jbyte CallStaticByteMethodA(jclass clazz,
01464 jmethodID methodID, jvalue *args) {
01465 return functions->CallStaticByteMethodA(this,clazz,methodID,args);
01466 }
01467
01468 jchar CallStaticCharMethod(jclass clazz,
01469 jmethodID methodID, ...) {
01470 va_list args;
01471 jchar result;
01472 va_start(args,methodID);
01473 result = functions->CallStaticCharMethodV(this,clazz,methodID,args);
01474 va_end(args);
01475 return result;
01476 }
01477 jchar CallStaticCharMethodV(jclass clazz,
01478 jmethodID methodID, va_list args) {
01479 return functions->CallStaticCharMethodV(this,clazz,methodID,args);
01480 }
01481 jchar CallStaticCharMethodA(jclass clazz,
01482 jmethodID methodID, jvalue *args) {
01483 return functions->CallStaticCharMethodA(this,clazz,methodID,args);
01484 }
01485
01486 jshort CallStaticShortMethod(jclass clazz,
01487 jmethodID methodID, ...) {
01488 va_list args;
01489 jshort result;
01490 va_start(args,methodID);
01491 result = functions->CallStaticShortMethodV(this,clazz,methodID,args);
01492 va_end(args);
01493 return result;
01494 }
01495 jshort CallStaticShortMethodV(jclass clazz,
01496 jmethodID methodID, va_list args) {
01497 return functions->CallStaticShortMethodV(this,clazz,methodID,args);
01498 }
01499 jshort CallStaticShortMethodA(jclass clazz,
01500 jmethodID methodID, jvalue *args) {
01501 return functions->CallStaticShortMethodA(this,clazz,methodID,args);
01502 }
01503
01504 jint CallStaticIntMethod(jclass clazz,
01505 jmethodID methodID, ...) {
01506 va_list args;
01507 jint result;
01508 va_start(args,methodID);
01509 result = functions->CallStaticIntMethodV(this,clazz,methodID,args);
01510 va_end(args);
01511 return result;
01512 }
01513 jint CallStaticIntMethodV(jclass clazz,
01514 jmethodID methodID, va_list args) {
01515 return functions->CallStaticIntMethodV(this,clazz,methodID,args);
01516 }
01517 jint CallStaticIntMethodA(jclass clazz,
01518 jmethodID methodID, jvalue *args) {
01519 return functions->CallStaticIntMethodA(this,clazz,methodID,args);
01520 }
01521
01522 jlong CallStaticLongMethod(jclass clazz,
01523 jmethodID methodID, ...) {
01524 va_list args;
01525 jlong result;
01526 va_start(args,methodID);
01527 result = functions->CallStaticLongMethodV(this,clazz,methodID,args);
01528 va_end(args);
01529 return result;
01530 }
01531 jlong CallStaticLongMethodV(jclass clazz,
01532 jmethodID methodID, va_list args) {
01533 return functions->CallStaticLongMethodV(this,clazz,methodID,args);
01534 }
01535 jlong CallStaticLongMethodA(jclass clazz,
01536 jmethodID methodID, jvalue *args) {
01537 return functions->CallStaticLongMethodA(this,clazz,methodID,args);
01538 }
01539
01540 jfloat CallStaticFloatMethod(jclass clazz,
01541 jmethodID methodID, ...) {
01542 va_list args;
01543 jfloat result;
01544 va_start(args,methodID);
01545 result = functions->CallStaticFloatMethodV(this,clazz,methodID,args);
01546 va_end(args);
01547 return result;
01548 }
01549 jfloat CallStaticFloatMethodV(jclass clazz,
01550 jmethodID methodID, va_list args) {
01551 return functions->CallStaticFloatMethodV(this,clazz,methodID,args);
01552 }
01553 jfloat CallStaticFloatMethodA(jclass clazz,
01554 jmethodID methodID, jvalue *args) {
01555 return functions->CallStaticFloatMethodA(this,clazz,methodID,args);
01556 }
01557
01558 jdouble CallStaticDoubleMethod(jclass clazz,
01559 jmethodID methodID, ...) {
01560 va_list args;
01561 jdouble result;
01562 va_start(args,methodID);
01563 result = functions->CallStaticDoubleMethodV(this,clazz,methodID,args);
01564 va_end(args);
01565 return result;
01566 }
01567 jdouble CallStaticDoubleMethodV(jclass clazz,
01568 jmethodID methodID, va_list args) {
01569 return functions->CallStaticDoubleMethodV(this,clazz,methodID,args);
01570 }
01571 jdouble CallStaticDoubleMethodA(jclass clazz,
01572 jmethodID methodID, jvalue *args) {
01573 return functions->CallStaticDoubleMethodA(this,clazz,methodID,args);
01574 }
01575
01576 void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) {
01577 va_list args;
01578 va_start(args,methodID);
01579 functions->CallStaticVoidMethodV(this,cls,methodID,args);
01580 va_end(args);
01581 }
01582 void CallStaticVoidMethodV(jclass cls, jmethodID methodID,
01583 va_list args) {
01584 functions->CallStaticVoidMethodV(this,cls,methodID,args);
01585 }
01586 void CallStaticVoidMethodA(jclass cls, jmethodID methodID,
01587 jvalue * args) {
01588 functions->CallStaticVoidMethodA(this,cls,methodID,args);
01589 }
01590
01591 jfieldID GetStaticFieldID(jclass clazz, const char *name,
01592 const char *sig) {
01593 return functions->GetStaticFieldID(this,clazz,name,sig);
01594 }
01595 jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) {
01596 return functions->GetStaticObjectField(this,clazz,fieldID);
01597 }
01598 jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) {
01599 return functions->GetStaticBooleanField(this,clazz,fieldID);
01600 }
01601 jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) {
01602 return functions->GetStaticByteField(this,clazz,fieldID);
01603 }
01604 jchar GetStaticCharField(jclass clazz, jfieldID fieldID) {
01605 return functions->GetStaticCharField(this,clazz,fieldID);
01606 }
01607 jshort GetStaticShortField(jclass clazz, jfieldID fieldID) {
01608 return functions->GetStaticShortField(this,clazz,fieldID);
01609 }
01610 jint GetStaticIntField(jclass clazz, jfieldID fieldID) {
01611 return functions->GetStaticIntField(this,clazz,fieldID);
01612 }
01613 jlong GetStaticLongField(jclass clazz, jfieldID fieldID) {
01614 return functions->GetStaticLongField(this,clazz,fieldID);
01615 }
01616 jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) {
01617 return functions->GetStaticFloatField(this,clazz,fieldID);
01618 }
01619 jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) {
01620 return functions->GetStaticDoubleField(this,clazz,fieldID);
01621 }
01622
01623 void SetStaticObjectField(jclass clazz, jfieldID fieldID,
01624 jobject value) {
01625 functions->SetStaticObjectField(this,clazz,fieldID,value);
01626 }
01627 void SetStaticBooleanField(jclass clazz, jfieldID fieldID,
01628 jboolean value) {
01629 functions->SetStaticBooleanField(this,clazz,fieldID,value);
01630 }
01631 void SetStaticByteField(jclass clazz, jfieldID fieldID,
01632 jbyte value) {
01633 functions->SetStaticByteField(this,clazz,fieldID,value);
01634 }
01635 void SetStaticCharField(jclass clazz, jfieldID fieldID,
01636 jchar value) {
01637 functions->SetStaticCharField(this,clazz,fieldID,value);
01638 }
01639 void SetStaticShortField(jclass clazz, jfieldID fieldID,
01640 jshort value) {
01641 functions->SetStaticShortField(this,clazz,fieldID,value);
01642 }
01643 void SetStaticIntField(jclass clazz, jfieldID fieldID,
01644 jint value) {
01645 functions->SetStaticIntField(this,clazz,fieldID,value);
01646 }
01647 void SetStaticLongField(jclass clazz, jfieldID fieldID,
01648 jlong value) {
01649 functions->SetStaticLongField(this,clazz,fieldID,value);
01650 }
01651 void SetStaticFloatField(jclass clazz, jfieldID fieldID,
01652 jfloat value) {
01653 functions->SetStaticFloatField(this,clazz,fieldID,value);
01654 }
01655 void SetStaticDoubleField(jclass clazz, jfieldID fieldID,
01656 jdouble value) {
01657 functions->SetStaticDoubleField(this,clazz,fieldID,value);
01658 }
01659
01660 jstring NewString(const jchar *unicode, jsize len) {
01661 return functions->NewString(this,unicode,len);
01662 }
01663 jsize GetStringLength(jstring str) {
01664 return functions->GetStringLength(this,str);
01665 }
01666 const jchar *GetStringChars(jstring str, jboolean *isCopy) {
01667 return functions->GetStringChars(this,str,isCopy);
01668 }
01669 void ReleaseStringChars(jstring str, const jchar *chars) {
01670 functions->ReleaseStringChars(this,str,chars);
01671 }
01672
01673 jstring NewStringUTF(const char *utf) {
01674 return functions->NewStringUTF(this,utf);
01675 }
01676 jsize GetStringUTFLength(jstring str) {
01677 return functions->GetStringUTFLength(this,str);
01678 }
01679 const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
01680 return functions->GetStringUTFChars(this,str,isCopy);
01681 }
01682 void ReleaseStringUTFChars(jstring str, const char* chars) {
01683 functions->ReleaseStringUTFChars(this,str,chars);
01684 }
01685
01686 jsize GetArrayLength(jarray array) {
01687 return functions->GetArrayLength(this,array);
01688 }
01689
01690 jobjectArray NewObjectArray(jsize len, jclass clazz,
01691 jobject init) {
01692 return functions->NewObjectArray(this,len,clazz,init);
01693 }
01694 jobject GetObjectArrayElement(jobjectArray array, jsize index) {
01695 return functions->GetObjectArrayElement(this,array,index);
01696 }
01697 void SetObjectArrayElement(jobjectArray array, jsize index,
01698 jobject val) {
01699 functions->SetObjectArrayElement(this,array,index,val);
01700 }
01701
01702 jbooleanArray NewBooleanArray(jsize len) {
01703 return functions->NewBooleanArray(this,len);
01704 }
01705 jbyteArray NewByteArray(jsize len) {
01706 return functions->NewByteArray(this,len);
01707 }
01708 jcharArray NewCharArray(jsize len) {
01709 return functions->NewCharArray(this,len);
01710 }
01711 jshortArray NewShortArray(jsize len) {
01712 return functions->NewShortArray(this,len);
01713 }
01714 jintArray NewIntArray(jsize len) {
01715 return functions->NewIntArray(this,len);
01716 }
01717 jlongArray NewLongArray(jsize len) {
01718 return functions->NewLongArray(this,len);
01719 }
01720 jfloatArray NewFloatArray(jsize len) {
01721 return functions->NewFloatArray(this,len);
01722 }
01723 jdoubleArray NewDoubleArray(jsize len) {
01724 return functions->NewDoubleArray(this,len);
01725 }
01726
01727 jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) {
01728 return functions->GetBooleanArrayElements(this,array,isCopy);
01729 }
01730 jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) {
01731 return functions->GetByteArrayElements(this,array,isCopy);
01732 }
01733 jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) {
01734 return functions->GetCharArrayElements(this,array,isCopy);
01735 }
01736 jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) {
01737 return functions->GetShortArrayElements(this,array,isCopy);
01738 }
01739 jint * GetIntArrayElements(jintArray array, jboolean *isCopy) {
01740 return functions->GetIntArrayElements(this,array,isCopy);
01741 }
01742 jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) {
01743 return functions->GetLongArrayElements(this,array,isCopy);
01744 }
01745 jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) {
01746 return functions->GetFloatArrayElements(this,array,isCopy);
01747 }
01748 jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) {
01749 return functions->GetDoubleArrayElements(this,array,isCopy);
01750 }
01751
01752 void ReleaseBooleanArrayElements(jbooleanArray array,
01753 jboolean *elems,
01754 jint mode) {
01755 functions->ReleaseBooleanArrayElements(this,array,elems,mode);
01756 }
01757 void ReleaseByteArrayElements(jbyteArray array,
01758 jbyte *elems,
01759 jint mode) {
01760 functions->ReleaseByteArrayElements(this,array,elems,mode);
01761 }
01762 void ReleaseCharArrayElements(jcharArray array,
01763 jchar *elems,
01764 jint mode) {
01765 functions->ReleaseCharArrayElements(this,array,elems,mode);
01766 }
01767 void ReleaseShortArrayElements(jshortArray array,
01768 jshort *elems,
01769 jint mode) {
01770 functions->ReleaseShortArrayElements(this,array,elems,mode);
01771 }
01772 void ReleaseIntArrayElements(jintArray array,
01773 jint *elems,
01774 jint mode) {
01775 functions->ReleaseIntArrayElements(this,array,elems,mode);
01776 }
01777 void ReleaseLongArrayElements(jlongArray array,
01778 jlong *elems,
01779 jint mode) {
01780 functions->ReleaseLongArrayElements(this,array,elems,mode);
01781 }
01782 void ReleaseFloatArrayElements(jfloatArray array,
01783 jfloat *elems,
01784 jint mode) {
01785 functions->ReleaseFloatArrayElements(this,array,elems,mode);
01786 }
01787 void ReleaseDoubleArrayElements(jdoubleArray array,
01788 jdouble *elems,
01789 jint mode) {
01790 functions->ReleaseDoubleArrayElements(this,array,elems,mode);
01791 }
01792
01793 void GetBooleanArrayRegion(jbooleanArray array,
01794 jsize start, jsize len, jboolean *buf) {
01795 functions->GetBooleanArrayRegion(this,array,start,len,buf);
01796 }
01797 void GetByteArrayRegion(jbyteArray array,
01798 jsize start, jsize len, jbyte *buf) {
01799 functions->GetByteArrayRegion(this,array,start,len,buf);
01800 }
01801 void GetCharArrayRegion(jcharArray array,
01802 jsize start, jsize len, jchar *buf) {
01803 functions->GetCharArrayRegion(this,array,start,len,buf);
01804 }
01805 void GetShortArrayRegion(jshortArray array,
01806 jsize start, jsize len, jshort *buf) {
01807 functions->GetShortArrayRegion(this,array,start,len,buf);
01808 }
01809 void GetIntArrayRegion(jintArray array,
01810 jsize start, jsize len, jint *buf) {
01811 functions->GetIntArrayRegion(this,array,start,len,buf);
01812 }
01813 void GetLongArrayRegion(jlongArray array,
01814 jsize start, jsize len, jlong *buf) {
01815 functions->GetLongArrayRegion(this,array,start,len,buf);
01816 }
01817 void GetFloatArrayRegion(jfloatArray array,
01818 jsize start, jsize len, jfloat *buf) {
01819 functions->GetFloatArrayRegion(this,array,start,len,buf);
01820 }
01821 void GetDoubleArrayRegion(jdoubleArray array,
01822 jsize start, jsize len, jdouble *buf) {
01823 functions->GetDoubleArrayRegion(this,array,start,len,buf);
01824 }
01825
01826 void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len,
01827 jboolean *buf) {
01828 functions->SetBooleanArrayRegion(this,array,start,len,buf);
01829 }
01830 void SetByteArrayRegion(jbyteArray array, jsize start, jsize len,
01831 jbyte *buf) {
01832 functions->SetByteArrayRegion(this,array,start,len,buf);
01833 }
01834 void SetCharArrayRegion(jcharArray array, jsize start, jsize len,
01835 jchar *buf) {
01836 functions->SetCharArrayRegion(this,array,start,len,buf);
01837 }
01838 void SetShortArrayRegion(jshortArray array, jsize start, jsize len,
01839 jshort *buf) {
01840 functions->SetShortArrayRegion(this,array,start,len,buf);
01841 }
01842 void SetIntArrayRegion(jintArray array, jsize start, jsize len,
01843 jint *buf) {
01844 functions->SetIntArrayRegion(this,array,start,len,buf);
01845 }
01846 void SetLongArrayRegion(jlongArray array, jsize start, jsize len,
01847 jlong *buf) {
01848 functions->SetLongArrayRegion(this,array,start,len,buf);
01849 }
01850 void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len,
01851 jfloat *buf) {
01852 functions->SetFloatArrayRegion(this,array,start,len,buf);
01853 }
01854 void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len,
01855 jdouble *buf) {
01856 functions->SetDoubleArrayRegion(this,array,start,len,buf);
01857 }
01858
01859 jint RegisterNatives(jclass clazz, const JNINativeMethod *methods,
01860 jint nMethods) {
01861 return functions->RegisterNatives(this,clazz,methods,nMethods);
01862 }
01863 jint UnregisterNatives(jclass clazz) {
01864 return functions->UnregisterNatives(this,clazz);
01865 }
01866
01867 jint MonitorEnter(jobject obj) {
01868 return functions->MonitorEnter(this,obj);
01869 }
01870 jint MonitorExit(jobject obj) {
01871 return functions->MonitorExit(this,obj);
01872 }
01873
01874 jint GetJavaVM(JavaVM **vm) {
01875 return functions->GetJavaVM(this,vm);
01876 }
01877
01878 void GetStringRegion(jstring str, jsize start, jsize len, jchar *buf) {
01879 functions->GetStringRegion(this,str,start,len,buf);
01880 }
01881 void GetStringUTFRegion(jstring str, jsize start, jsize len, char *buf) {
01882 functions->GetStringUTFRegion(this,str,start,len,buf);
01883 }
01884
01885 void * GetPrimitiveArrayCritical(jarray array, jboolean *isCopy) {
01886 return functions->GetPrimitiveArrayCritical(this,array,isCopy);
01887 }
01888 void ReleasePrimitiveArrayCritical(jarray array, void *carray, jint mode) {
01889 functions->ReleasePrimitiveArrayCritical(this,array,carray,mode);
01890 }
01891
01892 const jchar * GetStringCritical(jstring string, jboolean *isCopy) {
01893 return functions->GetStringCritical(this,string,isCopy);
01894 }
01895 void ReleaseStringCritical(jstring string, const jchar *cstring) {
01896 functions->ReleaseStringCritical(this,string,cstring);
01897 }
01898
01899 jweak NewWeakGlobalRef(jobject obj) {
01900 return functions->NewWeakGlobalRef(this,obj);
01901 }
01902 void DeleteWeakGlobalRef(jweak ref) {
01903 functions->DeleteWeakGlobalRef(this,ref);
01904 }
01905
01906 jboolean ExceptionCheck() {
01907 return functions->ExceptionCheck(this);
01908 }
01909
01910 jobject NewDirectByteBuffer(void* address, jlong capacity) {
01911 return functions->NewDirectByteBuffer(this, address, capacity);
01912 }
01913 void* GetDirectBufferAddress(jobject buf) {
01914 return functions->GetDirectBufferAddress(this, buf);
01915 }
01916 jlong GetDirectBufferCapacity(jobject buf) {
01917 return functions->GetDirectBufferCapacity(this, buf);
01918 }
01919
01920 #endif
01921 };
01922
01923 typedef struct JavaVMOption {
01924 char *optionString;
01925 void *extraInfo;
01926 } JavaVMOption;
01927
01928 typedef struct JavaVMInitArgs {
01929 jint version;
01930
01931 jint nOptions;
01932 JavaVMOption *options;
01933 jboolean ignoreUnrecognized;
01934 } JavaVMInitArgs;
01935
01936 typedef struct JavaVMAttachArgs {
01937 jint version;
01938
01939 char *name;
01940 jobject group;
01941 } JavaVMAttachArgs;
01942
01943
01944
01945 typedef struct JDK1_1InitArgs {
01946 jint version;
01947
01948 char **properties;
01949 jint checkSource;
01950 jint nativeStackSize;
01951 jint javaStackSize;
01952 jint minHeapSize;
01953 jint maxHeapSize;
01954 jint verifyMode;
01955 char *classpath;
01956
01957 jint (JNICALL *vfprintf)(FILE *fp, const char *format, va_list args);
01958 void (JNICALL *exit)(jint code);
01959 void (JNICALL *abort)(void);
01960
01961 jint enableClassGC;
01962 jint enableVerboseGC;
01963 jint disableAsyncGC;
01964 jint verbose;
01965 jboolean debugging;
01966 jint debugPort;
01967 } JDK1_1InitArgs;
01968
01969 typedef struct JDK1_1AttachArgs {
01970 void * __padding;
01971 } JDK1_1AttachArgs;
01972
01973 #define JDK1_2
01974 #define JDK1_4
01975
01976
01977
01978 struct JNIInvokeInterface_ {
01979 void *reserved0;
01980 void *reserved1;
01981 void *reserved2;
01982
01983 jint (JNICALL *DestroyJavaVM)(JavaVM *vm);
01984
01985 jint (JNICALL *AttachCurrentThread)(JavaVM *vm, void **penv, void *args);
01986
01987 jint (JNICALL *DetachCurrentThread)(JavaVM *vm);
01988
01989 jint (JNICALL *GetEnv)(JavaVM *vm, void **penv, jint version);
01990
01991 jint (JNICALL *AttachCurrentThreadAsDaemon)(JavaVM *vm, void **penv, void *args);
01992 };
01993
01994 struct JavaVM_ {
01995 const struct JNIInvokeInterface_ *functions;
01996 #ifdef __cplusplus
01997
01998 jint DestroyJavaVM() {
01999 return functions->DestroyJavaVM(this);
02000 }
02001 jint AttachCurrentThread(void **penv, void *args) {
02002 return functions->AttachCurrentThread(this, penv, args);
02003 }
02004 jint DetachCurrentThread() {
02005 return functions->DetachCurrentThread(this);
02006 }
02007
02008 jint GetEnv(void **penv, jint version) {
02009 return functions->GetEnv(this, penv, version);
02010 }
02011 jint AttachCurrentThreadAsDaemon(void **penv, void *args) {
02012 return functions->AttachCurrentThreadAsDaemon(this, penv, args);
02013 }
02014 #endif
02015 };
02016
02017 #ifdef _JNI_IMPLEMENTATION_
02018 #define _JNI_IMPORT_OR_EXPORT_ JNIEXPORT
02019 #else
02020 #define _JNI_IMPORT_OR_EXPORT_ JNIIMPORT
02021 #endif
02022 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
02023 JNI_GetDefaultJavaVMInitArgs(void *args);
02024
02025 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
02026 JNI_CreateJavaVM(JavaVM **pvm, void **penv, void *args);
02027
02028 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
02029 JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);
02030
02031
02032 JNIEXPORT jint JNICALL
02033 JNI_OnLoad(JavaVM *vm, void *reserved);
02034
02035 JNIEXPORT void JNICALL
02036 JNI_OnUnload(JavaVM *vm, void *reserved);
02037
02038 #define JNI_VERSION_1_1 0x00010001
02039 #define JNI_VERSION_1_2 0x00010002
02040 #define JNI_VERSION_1_4 0x00010004
02041 #define JNI_VERSION_1_5 0x00010005
02042
02043 #ifdef __cplusplus
02044 }
02045 #endif
02046
02047 #endif
02048
02049
02050
02051
02052
02053
02054
02055 #ifndef XMOG_UNDEFINE_MEM_OPERATORS
02056 # define XMOG_UNDEFINE_MEM_OPERATORS 1
02057 #endif
02058
02059
02060
02061
02062
02063
02064
02065 #if !defined(XMOG_BROKEN_SUPER_THIS)
02066 # define XMOG_BROKEN_SUPER_THIS 0
02067 #endif
02068 #if (XMOG_BROKEN_SUPER_THIS==1)
02069 # if (__GNUC__==3) && (__GNUC_MINOR__<4)
02070
02071 # define XMOG_SUPER_THIS(x) x( *this ) .
02072 # else
02073
02074 # define XMOG_SUPER_THIS(x) x ::
02075 # endif
02076 #else
02077 # define XMOG_SUPER_THIS(x) this-> x ::
02078 #endif
02079
02080
02081 typedef char XMOGVERSION[ 16 ];
02082 typedef char XMOGCONFIG[ 128 ];
02083 typedef char XMOGPROPERTY[ 256 ];
02084
02085 #if (XMOG_BUILD_XMOG==1)
02086
02087 extern const char * NULL_STRING;
02088 extern const char * TRUE_STRING;
02089 extern const char * FALSE_STRING;
02090
02091 # if !defined(XMOG_MAJOR)
02092 # define XMOG_MAJOR 3
02093 # endif
02094
02095 # if !defined(XMOG_MINOR)
02096 # define XMOG_MINOR 0
02097 # endif
02098
02099 # if !defined(XMOG_PATCH)
02100 # define XMOG_PATCH 0
02101 # endif
02102
02103 # if !defined(XMOG_BUILD)
02104 # define XMOG_BUILD 0
02105 # endif
02106
02107 #else
02108
02109 extern "C" XMOG_DECLSPEC int getXmogrtMajor();
02110 extern "C" XMOG_DECLSPEC int getXmogrtMinor();
02111 extern "C" XMOG_DECLSPEC int getXmogrtPatch();
02112 extern "C" XMOG_DECLSPEC int getXmogrtBuild();
02113
02114 #endif
02115
02116
02117 typedef unsigned xmog_flags;
02118
02119
02125 class xmog_dummy
02126 {
02127 };
02128
02129
02130 static xmog_dummy _use_java_ctor;
02131
02132
02133
02134
02135
02136 #define XMOG_BEFORE_INITIALIZATION 0
02137 #define XMOG_AFTER_INITIALIZATION 1
02138 #define XMOG_BEFORE_LOADING 2
02139 #define XMOG_AFTER_LOADING 3
02140 #define XMOG_BEFORE XMOG_BEFORE_INITIALIZATION
02141 #define XMOG_AFTER XMOG_AFTER_INITIALIZATION
02142
02143
02144
02145
02146
02147 #define XMOG_NOT_YET_IMPLEMENTED -1000
02148 #define XMOG_CLASSNAME_IS_NULL -1001
02149 #define XMOG_REF_IS_NULL -1002
02150 #define XMOG_CLASS_NOT_FOUND -1003
02151 #define XMOG_FIELD_NOT_FOUND -1004
02152 #define XMOG_SET_FIELD_FAILED -1005
02153 #define XMOG_GET_FIELD_FAILED -1006
02154 #define XMOG_UNKNOWN_OWNER -1007
02155 #define XMOG_METHOD_NOT_FOUND -1008
02156 #define XMOG_NEW_STRING -1009
02157 #define XMOG_NEW_STRING_UTF -1010
02158 #define XMOG_METHOD_CALL_FAILED -1011
02159 #define XMOG_CREATE_JAVA_PEER -1012
02160 #define XMOG_TO_JAVA_PEER -1013
02161 #define XMOG_ARRAY_GET_ELEMENT -1014
02162 #define XMOG_ARRAY_SET_ELEMENT -1015
02163 #define XMOG_ARRAY_CREATE -1016
02164 #define XMOG_BUFFER_OVERRUN -1017
02165 #define XMOG_NULL_ENV -1018
02166 #define XMOG_NO_PEER_TYPE -1019
02167 #define XMOG_ARRAY_GET_ELEMENTS -1020
02168 #define XMOG_ARRAY_SET_ELEMENTS -1021
02169 #define XMOG_XML_PARSER -1022
02170 #define XMOG_CONFIGFILE_NOT_FOUND -1023
02171 #define XMOG_LEGACY_PARSER -1024
02172 #define XMOG_CANT_LOAD_JVM -1025
02173 #define XMOG_MONITOR_ENTER -1026
02174 #define XMOG_MONITOR_EXIT -1027
02175 #define XMOG_TLS_FAILURE -1028
02176
02177 #endif