Warning, file /multimedia/kmplayer/src/moz-sdk/jri.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
0002 /* ***** BEGIN LICENSE BLOCK *****
0003  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
0004  *
0005  * The contents of this file are subject to the Mozilla Public License Version
0006  * 1.1 (the "License"); you may not use this file except in compliance with
0007  * the License. You may obtain a copy of the License at
0008  * http://www.mozilla.org/MPL/
0009  *
0010  * Software distributed under the License is distributed on an "AS IS" basis,
0011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
0012  * for the specific language governing rights and limitations under the
0013  * License.
0014  *
0015  * The Original Code is mozilla.org code.
0016  *
0017  * The Initial Developer of the Original Code is
0018  * Netscape Communications Corporation.
0019  * Portions created by the Initial Developer are Copyright (C) 1998
0020  * the Initial Developer. All Rights Reserved.
0021  *
0022  * Contributor(s):
0023  *
0024  * Alternatively, the contents of this file may be used under the terms of
0025  * either the GNU General Public License Version 2 or later (the "GPL"), or
0026  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
0027  * in which case the provisions of the GPL or the LGPL are applicable instead
0028  * of those above. If you wish to allow use of your version of this file only
0029  * under the terms of either the GPL or the LGPL, and not to allow others to
0030  * use your version of this file under the terms of the MPL, indicate your
0031  * decision by deleting the provisions above and replace them with the notice
0032  * and other provisions required by the GPL or the LGPL. If you do not delete
0033  * the provisions above, a recipient may use your version of this file under
0034  * the terms of any one of the MPL, the GPL or the LGPL.
0035  *
0036  * ***** END LICENSE BLOCK ***** */
0037 
0038 /*******************************************************************************
0039  * Java Runtime Interface
0040  ******************************************************************************/
0041 
0042 #ifndef JRI_H
0043 #define JRI_H
0044 
0045 #include "jritypes.h"
0046 
0047 #ifdef __cplusplus
0048 extern "C" {
0049 #endif /* __cplusplus */
0050 
0051 /*******************************************************************************
0052  * JRIEnv
0053  ******************************************************************************/
0054 
0055 /* The type of the JRIEnv interface. */
0056 typedef struct JRIEnvInterface  JRIEnvInterface;
0057 
0058 /* The type of a JRIEnv instance. */
0059 typedef const JRIEnvInterface*  JRIEnv;
0060 
0061 /*******************************************************************************
0062  * JRIEnv Operations
0063  ******************************************************************************/
0064 
0065 #define JRI_DefineClass(env, classLoader, buf, bufLen)  \
0066     (((*(env))->DefineClass)(env, JRI_DefineClass_op, classLoader, buf, bufLen))
0067 
0068 #define JRI_FindClass(env, name)    \
0069     (((*(env))->FindClass)(env, JRI_FindClass_op, name))
0070 
0071 #define JRI_Throw(env, obj) \
0072     (((*(env))->Throw)(env, JRI_Throw_op, obj))
0073 
0074 #define JRI_ThrowNew(env, clazz, message)   \
0075     (((*(env))->ThrowNew)(env, JRI_ThrowNew_op, clazz, message))
0076 
0077 #define JRI_ExceptionOccurred(env)  \
0078     (((*(env))->ExceptionOccurred)(env, JRI_ExceptionOccurred_op))
0079 
0080 #define JRI_ExceptionDescribe(env)  \
0081     (((*(env))->ExceptionDescribe)(env, JRI_ExceptionDescribe_op))
0082 
0083 #define JRI_ExceptionClear(env) \
0084     (((*(env))->ExceptionClear)(env, JRI_ExceptionClear_op))
0085 
0086 #define JRI_NewGlobalRef(env, ref)  \
0087     (((*(env))->NewGlobalRef)(env, JRI_NewGlobalRef_op, ref))
0088 
0089 #define JRI_DisposeGlobalRef(env, gref) \
0090     (((*(env))->DisposeGlobalRef)(env, JRI_DisposeGlobalRef_op, gref))
0091 
0092 #define JRI_GetGlobalRef(env, gref) \
0093     (((*(env))->GetGlobalRef)(env, JRI_GetGlobalRef_op, gref))
0094 
0095 #define JRI_SetGlobalRef(env, gref, ref)    \
0096     (((*(env))->SetGlobalRef)(env, JRI_SetGlobalRef_op, gref, ref))
0097 
0098 #define JRI_IsSameObject(env, a, b) \
0099     (((*(env))->IsSameObject)(env, JRI_IsSameObject_op, a, b))
0100 
0101 #define JRI_NewObject(env)  ((*(env))->NewObject)
0102 #define JRI_NewObjectV(env, clazz, methodID, args)  \
0103     (((*(env))->NewObjectV)(env, JRI_NewObject_op_va_list, clazz, methodID, args))
0104 #define JRI_NewObjectA(env, clazz, method, args)    \
0105     (((*(env))->NewObjectA)(env, JRI_NewObject_op_array, clazz, methodID, args))
0106 
0107 #define JRI_GetObjectClass(env, obj)    \
0108     (((*(env))->GetObjectClass)(env, JRI_GetObjectClass_op, obj))
0109 
0110 #define JRI_IsInstanceOf(env, obj, clazz)   \
0111     (((*(env))->IsInstanceOf)(env, JRI_IsInstanceOf_op, obj, clazz))
0112 
0113 #define JRI_GetMethodID(env, clazz, name, sig)  \
0114     (((*(env))->GetMethodID)(env, JRI_GetMethodID_op, clazz, name, sig))
0115 
0116 #define JRI_CallMethod(env) ((*(env))->CallMethod)
0117 #define JRI_CallMethodV(env, obj, methodID, args)   \
0118     (((*(env))->CallMethodV)(env, JRI_CallMethod_op_va_list, obj, methodID, args))
0119 #define JRI_CallMethodA(env, obj, methodID, args)   \
0120     (((*(env))->CallMethodA)(env, JRI_CallMethod_op_array, obj, methodID, args))
0121 
0122 #define JRI_CallMethodBoolean(env)  ((*(env))->CallMethodBoolean)
0123 #define JRI_CallMethodBooleanV(env, obj, methodID, args)    \
0124     (((*(env))->CallMethodBooleanV)(env, JRI_CallMethodBoolean_op_va_list, obj, methodID, args))
0125 #define JRI_CallMethodBooleanA(env, obj, methodID, args)    \
0126     (((*(env))->CallMethodBooleanA)(env, JRI_CallMethodBoolean_op_array, obj, methodID, args))
0127 
0128 #define JRI_CallMethodByte(env) ((*(env))->CallMethodByte)
0129 #define JRI_CallMethodByteV(env, obj, methodID, args)   \
0130     (((*(env))->CallMethodByteV)(env, JRI_CallMethodByte_op_va_list, obj, methodID, args))
0131 #define JRI_CallMethodByteA(env, obj, methodID, args)   \
0132     (((*(env))->CallMethodByteA)(env, JRI_CallMethodByte_op_array, obj, methodID, args))
0133 
0134 #define JRI_CallMethodChar(env) ((*(env))->CallMethodChar)
0135 #define JRI_CallMethodCharV(env, obj, methodID, args)   \
0136     (((*(env))->CallMethodCharV)(env, JRI_CallMethodChar_op_va_list, obj, methodID, args))
0137 #define JRI_CallMethodCharA(env, obj, methodID, args)   \
0138     (((*(env))->CallMethodCharA)(env, JRI_CallMethodChar_op_array, obj, methodID, args))
0139 
0140 #define JRI_CallMethodShort(env)    ((*(env))->CallMethodShort)
0141 #define JRI_CallMethodShortV(env, obj, methodID, args)  \
0142     (((*(env))->CallMethodShortV)(env, JRI_CallMethodShort_op_va_list, obj, methodID, args))
0143 #define JRI_CallMethodShortA(env, obj, methodID, args)  \
0144     (((*(env))->CallMethodShortA)(env, JRI_CallMethodShort_op_array, obj, methodID, args))
0145 
0146 #define JRI_CallMethodInt(env)  ((*(env))->CallMethodInt)
0147 #define JRI_CallMethodIntV(env, obj, methodID, args)    \
0148     (((*(env))->CallMethodIntV)(env, JRI_CallMethodInt_op_va_list, obj, methodID, args))
0149 #define JRI_CallMethodIntA(env, obj, methodID, args)    \
0150     (((*(env))->CallMethodIntA)(env, JRI_CallMethodInt_op_array, obj, methodID, args))
0151 
0152 #define JRI_CallMethodLong(env) ((*(env))->CallMethodLong)
0153 #define JRI_CallMethodLongV(env, obj, methodID, args)   \
0154     (((*(env))->CallMethodLongV)(env, JRI_CallMethodLong_op_va_list, obj, methodID, args))
0155 #define JRI_CallMethodLongA(env, obj, methodID, args)   \
0156     (((*(env))->CallMethodLongA)(env, JRI_CallMethodLong_op_array, obj, methodID, args))
0157 
0158 #define JRI_CallMethodFloat(env)    ((*(env))->CallMethodFloat)
0159 #define JRI_CallMethodFloatV(env, obj, methodID, args)  \
0160     (((*(env))->CallMethodFloatV)(env, JRI_CallMethodFloat_op_va_list, obj, methodID, args))
0161 #define JRI_CallMethodFloatA(env, obj, methodID, args)  \
0162     (((*(env))->CallMethodFloatA)(env, JRI_CallMethodFloat_op_array, obj, methodID, args))
0163 
0164 #define JRI_CallMethodDouble(env)   ((*(env))->CallMethodDouble)
0165 #define JRI_CallMethodDoubleV(env, obj, methodID, args) \
0166     (((*(env))->CallMethodDoubleV)(env, JRI_CallMethodDouble_op_va_list, obj, methodID, args))
0167 #define JRI_CallMethodDoubleA(env, obj, methodID, args) \
0168     (((*(env))->CallMethodDoubleA)(env, JRI_CallMethodDouble_op_array, obj, methodID, args))
0169 
0170 #define JRI_GetFieldID(env, clazz, name, sig)   \
0171     (((*(env))->GetFieldID)(env, JRI_GetFieldID_op, clazz, name, sig))
0172 
0173 #define JRI_GetField(env, obj, fieldID) \
0174     (((*(env))->GetField)(env, JRI_GetField_op, obj, fieldID))
0175 
0176 #define JRI_GetFieldBoolean(env, obj, fieldID)  \
0177     (((*(env))->GetFieldBoolean)(env, JRI_GetFieldBoolean_op, obj, fieldID))
0178 
0179 #define JRI_GetFieldByte(env, obj, fieldID) \
0180     (((*(env))->GetFieldByte)(env, JRI_GetFieldByte_op, obj, fieldID))
0181 
0182 #define JRI_GetFieldChar(env, obj, fieldID) \
0183     (((*(env))->GetFieldChar)(env, JRI_GetFieldChar_op, obj, fieldID))
0184 
0185 #define JRI_GetFieldShort(env, obj, fieldID)    \
0186     (((*(env))->GetFieldShort)(env, JRI_GetFieldShort_op, obj, fieldID))
0187 
0188 #define JRI_GetFieldInt(env, obj, fieldID)  \
0189     (((*(env))->GetFieldInt)(env, JRI_GetFieldInt_op, obj, fieldID))
0190 
0191 #define JRI_GetFieldLong(env, obj, fieldID) \
0192     (((*(env))->GetFieldLong)(env, JRI_GetFieldLong_op, obj, fieldID))
0193 
0194 #define JRI_GetFieldFloat(env, obj, fieldID)    \
0195     (((*(env))->GetFieldFloat)(env, JRI_GetFieldFloat_op, obj, fieldID))
0196 
0197 #define JRI_GetFieldDouble(env, obj, fieldID)   \
0198     (((*(env))->GetFieldDouble)(env, JRI_GetFieldDouble_op, obj, fieldID))
0199 
0200 #define JRI_SetField(env, obj, fieldID, value)  \
0201     (((*(env))->SetField)(env, JRI_SetField_op, obj, fieldID, value))
0202 
0203 #define JRI_SetFieldBoolean(env, obj, fieldID, value)   \
0204     (((*(env))->SetFieldBoolean)(env, JRI_SetFieldBoolean_op, obj, fieldID, value))
0205 
0206 #define JRI_SetFieldByte(env, obj, fieldID, value)  \
0207     (((*(env))->SetFieldByte)(env, JRI_SetFieldByte_op, obj, fieldID, value))
0208 
0209 #define JRI_SetFieldChar(env, obj, fieldID, value)  \
0210     (((*(env))->SetFieldChar)(env, JRI_SetFieldChar_op, obj, fieldID, value))
0211 
0212 #define JRI_SetFieldShort(env, obj, fieldID, value) \
0213     (((*(env))->SetFieldShort)(env, JRI_SetFieldShort_op, obj, fieldID, value))
0214 
0215 #define JRI_SetFieldInt(env, obj, fieldID, value)   \
0216     (((*(env))->SetFieldInt)(env, JRI_SetFieldInt_op, obj, fieldID, value))
0217 
0218 #define JRI_SetFieldLong(env, obj, fieldID, value)  \
0219     (((*(env))->SetFieldLong)(env, JRI_SetFieldLong_op, obj, fieldID, value))
0220 
0221 #define JRI_SetFieldFloat(env, obj, fieldID, value) \
0222     (((*(env))->SetFieldFloat)(env, JRI_SetFieldFloat_op, obj, fieldID, value))
0223 
0224 #define JRI_SetFieldDouble(env, obj, fieldID, value)    \
0225     (((*(env))->SetFieldDouble)(env, JRI_SetFieldDouble_op, obj, fieldID, value))
0226 
0227 #define JRI_IsSubclassOf(env, a, b) \
0228     (((*(env))->IsSubclassOf)(env, JRI_IsSubclassOf_op, a, b))
0229 
0230 #define JRI_GetStaticMethodID(env, clazz, name, sig)    \
0231     (((*(env))->GetStaticMethodID)(env, JRI_GetStaticMethodID_op, clazz, name, sig))
0232 
0233 #define JRI_CallStaticMethod(env)   ((*(env))->CallStaticMethod)
0234 #define JRI_CallStaticMethodV(env, clazz, methodID, args)   \
0235     (((*(env))->CallStaticMethodV)(env, JRI_CallStaticMethod_op_va_list, clazz, methodID, args))
0236 #define JRI_CallStaticMethodA(env, clazz, methodID, args)   \
0237     (((*(env))->CallStaticMethodA)(env, JRI_CallStaticMethod_op_array, clazz, methodID, args))
0238 
0239 #define JRI_CallStaticMethodBoolean(env)    ((*(env))->CallStaticMethodBoolean)
0240 #define JRI_CallStaticMethodBooleanV(env, clazz, methodID, args)    \
0241     (((*(env))->CallStaticMethodBooleanV)(env, JRI_CallStaticMethodBoolean_op_va_list, clazz, methodID, args))
0242 #define JRI_CallStaticMethodBooleanA(env, clazz, methodID, args)    \
0243     (((*(env))->CallStaticMethodBooleanA)(env, JRI_CallStaticMethodBoolean_op_array, clazz, methodID, args))
0244 
0245 #define JRI_CallStaticMethodByte(env)   ((*(env))->CallStaticMethodByte)
0246 #define JRI_CallStaticMethodByteV(env, clazz, methodID, args)   \
0247     (((*(env))->CallStaticMethodByteV)(env, JRI_CallStaticMethodByte_op_va_list, clazz, methodID, args))
0248 #define JRI_CallStaticMethodByteA(env, clazz, methodID, args)   \
0249     (((*(env))->CallStaticMethodByteA)(env, JRI_CallStaticMethodByte_op_array, clazz, methodID, args))
0250 
0251 #define JRI_CallStaticMethodChar(env)   ((*(env))->CallStaticMethodChar)
0252 #define JRI_CallStaticMethodCharV(env, clazz, methodID, args)   \
0253     (((*(env))->CallStaticMethodCharV)(env, JRI_CallStaticMethodChar_op_va_list, clazz, methodID, args))
0254 #define JRI_CallStaticMethodCharA(env, clazz, methodID, args)   \
0255     (((*(env))->CallStaticMethodCharA)(env, JRI_CallStaticMethodChar_op_array, clazz, methodID, args))
0256 
0257 #define JRI_CallStaticMethodShort(env)  ((*(env))->CallStaticMethodShort)
0258 #define JRI_CallStaticMethodShortV(env, clazz, methodID, args)  \
0259     (((*(env))->CallStaticMethodShortV)(env, JRI_CallStaticMethodShort_op_va_list, clazz, methodID, args))
0260 #define JRI_CallStaticMethodShortA(env, clazz, methodID, args)  \
0261     (((*(env))->CallStaticMethodShortA)(env, JRI_CallStaticMethodShort_op_array, clazz, methodID, args))
0262 
0263 #define JRI_CallStaticMethodInt(env)    ((*(env))->CallStaticMethodInt)
0264 #define JRI_CallStaticMethodIntV(env, clazz, methodID, args)    \
0265     (((*(env))->CallStaticMethodIntV)(env, JRI_CallStaticMethodInt_op_va_list, clazz, methodID, args))
0266 #define JRI_CallStaticMethodIntA(env, clazz, methodID, args)    \
0267     (((*(env))->CallStaticMethodIntA)(env, JRI_CallStaticMethodInt_op_array, clazz, methodID, args))
0268 
0269 #define JRI_CallStaticMethodLong(env)   ((*(env))->CallStaticMethodLong)
0270 #define JRI_CallStaticMethodLongV(env, clazz, methodID, args)   \
0271     (((*(env))->CallStaticMethodLongV)(env, JRI_CallStaticMethodLong_op_va_list, clazz, methodID, args))
0272 #define JRI_CallStaticMethodLongA(env, clazz, methodID, args)   \
0273     (((*(env))->CallStaticMethodLongA)(env, JRI_CallStaticMethodLong_op_array, clazz, methodID, args))
0274 
0275 #define JRI_CallStaticMethodFloat(env)  ((*(env))->CallStaticMethodFloat)
0276 #define JRI_CallStaticMethodFloatV(env, clazz, methodID, args)  \
0277     (((*(env))->CallStaticMethodFloatV)(env, JRI_CallStaticMethodFloat_op_va_list, clazz, methodID, args))
0278 #define JRI_CallStaticMethodFloatA(env, clazz, methodID, args)  \
0279     (((*(env))->CallStaticMethodFloatA)(env, JRI_CallStaticMethodFloat_op_array, clazz, methodID, args))
0280 
0281 #define JRI_CallStaticMethodDouble(env) ((*(env))->CallStaticMethodDouble)
0282 #define JRI_CallStaticMethodDoubleV(env, clazz, methodID, args) \
0283     (((*(env))->CallStaticMethodDoubleV)(env, JRI_CallStaticMethodDouble_op_va_list, clazz, methodID, args))
0284 #define JRI_CallStaticMethodDoubleA(env, clazz, methodID, args) \
0285     (((*(env))->CallStaticMethodDoubleA)(env, JRI_CallStaticMethodDouble_op_array, clazz, methodID, args))
0286 
0287 #define JRI_GetStaticFieldID(env, clazz, name, sig) \
0288     (((*(env))->GetStaticFieldID)(env, JRI_GetStaticFieldID_op, clazz, name, sig))
0289 
0290 #define JRI_GetStaticField(env, clazz, fieldID) \
0291     (((*(env))->GetStaticField)(env, JRI_GetStaticField_op, clazz, fieldID))
0292 
0293 #define JRI_GetStaticFieldBoolean(env, clazz, fieldID)  \
0294     (((*(env))->GetStaticFieldBoolean)(env, JRI_GetStaticFieldBoolean_op, clazz, fieldID))
0295 
0296 #define JRI_GetStaticFieldByte(env, clazz, fieldID) \
0297     (((*(env))->GetStaticFieldByte)(env, JRI_GetStaticFieldByte_op, clazz, fieldID))
0298 
0299 #define JRI_GetStaticFieldChar(env, clazz, fieldID) \
0300     (((*(env))->GetStaticFieldChar)(env, JRI_GetStaticFieldChar_op, clazz, fieldID))
0301 
0302 #define JRI_GetStaticFieldShort(env, clazz, fieldID)    \
0303     (((*(env))->GetStaticFieldShort)(env, JRI_GetStaticFieldShort_op, clazz, fieldID))
0304 
0305 #define JRI_GetStaticFieldInt(env, clazz, fieldID)  \
0306     (((*(env))->GetStaticFieldInt)(env, JRI_GetStaticFieldInt_op, clazz, fieldID))
0307 
0308 #define JRI_GetStaticFieldLong(env, clazz, fieldID) \
0309     (((*(env))->GetStaticFieldLong)(env, JRI_GetStaticFieldLong_op, clazz, fieldID))
0310 
0311 #define JRI_GetStaticFieldFloat(env, clazz, fieldID)    \
0312     (((*(env))->GetStaticFieldFloat)(env, JRI_GetStaticFieldFloat_op, clazz, fieldID))
0313 
0314 #define JRI_GetStaticFieldDouble(env, clazz, fieldID)   \
0315     (((*(env))->GetStaticFieldDouble)(env, JRI_GetStaticFieldDouble_op, clazz, fieldID))
0316 
0317 #define JRI_SetStaticField(env, clazz, fieldID, value)  \
0318     (((*(env))->SetStaticField)(env, JRI_SetStaticField_op, clazz, fieldID, value))
0319 
0320 #define JRI_SetStaticFieldBoolean(env, clazz, fieldID, value)   \
0321     (((*(env))->SetStaticFieldBoolean)(env, JRI_SetStaticFieldBoolean_op, clazz, fieldID, value))
0322 
0323 #define JRI_SetStaticFieldByte(env, clazz, fieldID, value)  \
0324     (((*(env))->SetStaticFieldByte)(env, JRI_SetStaticFieldByte_op, clazz, fieldID, value))
0325 
0326 #define JRI_SetStaticFieldChar(env, clazz, fieldID, value)  \
0327     (((*(env))->SetStaticFieldChar)(env, JRI_SetStaticFieldChar_op, clazz, fieldID, value))
0328 
0329 #define JRI_SetStaticFieldShort(env, clazz, fieldID, value) \
0330     (((*(env))->SetStaticFieldShort)(env, JRI_SetStaticFieldShort_op, clazz, fieldID, value))
0331 
0332 #define JRI_SetStaticFieldInt(env, clazz, fieldID, value)   \
0333     (((*(env))->SetStaticFieldInt)(env, JRI_SetStaticFieldInt_op, clazz, fieldID, value))
0334 
0335 #define JRI_SetStaticFieldLong(env, clazz, fieldID, value)  \
0336     (((*(env))->SetStaticFieldLong)(env, JRI_SetStaticFieldLong_op, clazz, fieldID, value))
0337 
0338 #define JRI_SetStaticFieldFloat(env, clazz, fieldID, value) \
0339     (((*(env))->SetStaticFieldFloat)(env, JRI_SetStaticFieldFloat_op, clazz, fieldID, value))
0340 
0341 #define JRI_SetStaticFieldDouble(env, clazz, fieldID, value)    \
0342     (((*(env))->SetStaticFieldDouble)(env, JRI_SetStaticFieldDouble_op, clazz, fieldID, value))
0343 
0344 #define JRI_NewString(env, unicode, len)    \
0345     (((*(env))->NewString)(env, JRI_NewString_op, unicode, len))
0346 
0347 #define JRI_GetStringLength(env, string)    \
0348     (((*(env))->GetStringLength)(env, JRI_GetStringLength_op, string))
0349 
0350 #define JRI_GetStringChars(env, string) \
0351     (((*(env))->GetStringChars)(env, JRI_GetStringChars_op, string))
0352 
0353 #define JRI_NewStringUTF(env, utf, len) \
0354     (((*(env))->NewStringUTF)(env, JRI_NewStringUTF_op, utf, len))
0355 
0356 #define JRI_GetStringUTFLength(env, string) \
0357     (((*(env))->GetStringUTFLength)(env, JRI_GetStringUTFLength_op, string))
0358 
0359 #define JRI_GetStringUTFChars(env, string)  \
0360     (((*(env))->GetStringUTFChars)(env, JRI_GetStringUTFChars_op, string))
0361 
0362 #define JRI_NewScalarArray(env, length, elementSig, initialElements)    \
0363     (((*(env))->NewScalarArray)(env, JRI_NewScalarArray_op, length, elementSig, initialElements))
0364 
0365 #define JRI_GetScalarArrayLength(env, array)    \
0366     (((*(env))->GetScalarArrayLength)(env, JRI_GetScalarArrayLength_op, array))
0367 
0368 #define JRI_GetScalarArrayElements(env, array)  \
0369     (((*(env))->GetScalarArrayElements)(env, JRI_GetScalarArrayElements_op, array))
0370 
0371 #define JRI_NewObjectArray(env, length, elementClass, initialElement)   \
0372     (((*(env))->NewObjectArray)(env, JRI_NewObjectArray_op, length, elementClass, initialElement))
0373 
0374 #define JRI_GetObjectArrayLength(env, array)    \
0375     (((*(env))->GetObjectArrayLength)(env, JRI_GetObjectArrayLength_op, array))
0376 
0377 #define JRI_GetObjectArrayElement(env, array, index)    \
0378     (((*(env))->GetObjectArrayElement)(env, JRI_GetObjectArrayElement_op, array, index))
0379 
0380 #define JRI_SetObjectArrayElement(env, array, index, value) \
0381     (((*(env))->SetObjectArrayElement)(env, JRI_SetObjectArrayElement_op, array, index, value))
0382 
0383 #define JRI_RegisterNatives(env, clazz, nameAndSigArray, nativeProcArray)   \
0384     (((*(env))->RegisterNatives)(env, JRI_RegisterNatives_op, clazz, nameAndSigArray, nativeProcArray))
0385 
0386 #define JRI_UnregisterNatives(env, clazz)   \
0387     (((*(env))->UnregisterNatives)(env, JRI_UnregisterNatives_op, clazz))
0388 
0389 #define JRI_NewStringPlatform(env, string, len, encoding, encodingLength)   \
0390     (((*(env))->NewStringPlatform)(env, JRI_NewStringPlatform_op, string, len, encoding, encodingLength))
0391 
0392 #define JRI_GetStringPlatformChars(env, string, encoding, encodingLength)   \
0393     (((*(env))->GetStringPlatformChars)(env, JRI_GetStringPlatformChars_op, string, encoding, encodingLength))
0394 
0395 
0396 /*******************************************************************************
0397  * JRIEnv Interface
0398  ******************************************************************************/
0399 
0400 struct java_lang_ClassLoader;
0401 struct java_lang_Class;
0402 struct java_lang_Throwable;
0403 struct java_lang_Object;
0404 struct java_lang_String;
0405 
0406 struct JRIEnvInterface {
0407     void*   reserved0;
0408     void*   reserved1;
0409     void*   reserved2;
0410     void*   reserved3;
0411     struct java_lang_Class* (*FindClass)(JRIEnv* env, jint op, const char* a);
0412     void    (*Throw)(JRIEnv* env, jint op, struct java_lang_Throwable* a);
0413     void    (*ThrowNew)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b);
0414     struct java_lang_Throwable* (*ExceptionOccurred)(JRIEnv* env, jint op);
0415     void    (*ExceptionDescribe)(JRIEnv* env, jint op);
0416     void    (*ExceptionClear)(JRIEnv* env, jint op);
0417     jglobal (*NewGlobalRef)(JRIEnv* env, jint op, void* a);
0418     void    (*DisposeGlobalRef)(JRIEnv* env, jint op, jglobal a);
0419     void*   (*GetGlobalRef)(JRIEnv* env, jint op, jglobal a);
0420     void    (*SetGlobalRef)(JRIEnv* env, jint op, jglobal a, void* b);
0421     jbool   (*IsSameObject)(JRIEnv* env, jint op, void* a, void* b);
0422     void*   (*NewObject)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
0423     void*   (*NewObjectV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
0424     void*   (*NewObjectA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
0425     struct java_lang_Class* (*GetObjectClass)(JRIEnv* env, jint op, void* a);
0426     jbool   (*IsInstanceOf)(JRIEnv* env, jint op, void* a, struct java_lang_Class* b);
0427     jint    (*GetMethodID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
0428     void*   (*CallMethod)(JRIEnv* env, jint op, void* a, jint b, ...);
0429     void*   (*CallMethodV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
0430     void*   (*CallMethodA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
0431     jbool   (*CallMethodBoolean)(JRIEnv* env, jint op, void* a, jint b, ...);
0432     jbool   (*CallMethodBooleanV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
0433     jbool   (*CallMethodBooleanA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
0434     jbyte   (*CallMethodByte)(JRIEnv* env, jint op, void* a, jint b, ...);
0435     jbyte   (*CallMethodByteV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
0436     jbyte   (*CallMethodByteA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
0437     jchar   (*CallMethodChar)(JRIEnv* env, jint op, void* a, jint b, ...);
0438     jchar   (*CallMethodCharV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
0439     jchar   (*CallMethodCharA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
0440     jshort  (*CallMethodShort)(JRIEnv* env, jint op, void* a, jint b, ...);
0441     jshort  (*CallMethodShortV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
0442     jshort  (*CallMethodShortA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
0443     jint    (*CallMethodInt)(JRIEnv* env, jint op, void* a, jint b, ...);
0444     jint    (*CallMethodIntV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
0445     jint    (*CallMethodIntA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
0446     jlong   (*CallMethodLong)(JRIEnv* env, jint op, void* a, jint b, ...);
0447     jlong   (*CallMethodLongV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
0448     jlong   (*CallMethodLongA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
0449     jfloat  (*CallMethodFloat)(JRIEnv* env, jint op, void* a, jint b, ...);
0450     jfloat  (*CallMethodFloatV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
0451     jfloat  (*CallMethodFloatA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
0452     jdouble (*CallMethodDouble)(JRIEnv* env, jint op, void* a, jint b, ...);
0453     jdouble (*CallMethodDoubleV)(JRIEnv* env, jint op, void* a, jint b, va_list c);
0454     jdouble (*CallMethodDoubleA)(JRIEnv* env, jint op, void* a, jint b, JRIValue* c);
0455     jint    (*GetFieldID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
0456     void*   (*GetField)(JRIEnv* env, jint op, void* a, jint b);
0457     jbool   (*GetFieldBoolean)(JRIEnv* env, jint op, void* a, jint b);
0458     jbyte   (*GetFieldByte)(JRIEnv* env, jint op, void* a, jint b);
0459     jchar   (*GetFieldChar)(JRIEnv* env, jint op, void* a, jint b);
0460     jshort  (*GetFieldShort)(JRIEnv* env, jint op, void* a, jint b);
0461     jint    (*GetFieldInt)(JRIEnv* env, jint op, void* a, jint b);
0462     jlong   (*GetFieldLong)(JRIEnv* env, jint op, void* a, jint b);
0463     jfloat  (*GetFieldFloat)(JRIEnv* env, jint op, void* a, jint b);
0464     jdouble (*GetFieldDouble)(JRIEnv* env, jint op, void* a, jint b);
0465     void    (*SetField)(JRIEnv* env, jint op, void* a, jint b, void* c);
0466     void    (*SetFieldBoolean)(JRIEnv* env, jint op, void* a, jint b, jbool c);
0467     void    (*SetFieldByte)(JRIEnv* env, jint op, void* a, jint b, jbyte c);
0468     void    (*SetFieldChar)(JRIEnv* env, jint op, void* a, jint b, jchar c);
0469     void    (*SetFieldShort)(JRIEnv* env, jint op, void* a, jint b, jshort c);
0470     void    (*SetFieldInt)(JRIEnv* env, jint op, void* a, jint b, jint c);
0471     void    (*SetFieldLong)(JRIEnv* env, jint op, void* a, jint b, jlong c);
0472     void    (*SetFieldFloat)(JRIEnv* env, jint op, void* a, jint b, jfloat c);
0473     void    (*SetFieldDouble)(JRIEnv* env, jint op, void* a, jint b, jdouble c);
0474     jbool   (*IsSubclassOf)(JRIEnv* env, jint op, struct java_lang_Class* a, struct java_lang_Class* b);
0475     jint    (*GetStaticMethodID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
0476     void*   (*CallStaticMethod)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
0477     void*   (*CallStaticMethodV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
0478     void*   (*CallStaticMethodA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
0479     jbool   (*CallStaticMethodBoolean)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
0480     jbool   (*CallStaticMethodBooleanV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
0481     jbool   (*CallStaticMethodBooleanA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
0482     jbyte   (*CallStaticMethodByte)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
0483     jbyte   (*CallStaticMethodByteV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
0484     jbyte   (*CallStaticMethodByteA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
0485     jchar   (*CallStaticMethodChar)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
0486     jchar   (*CallStaticMethodCharV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
0487     jchar   (*CallStaticMethodCharA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
0488     jshort  (*CallStaticMethodShort)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
0489     jshort  (*CallStaticMethodShortV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
0490     jshort  (*CallStaticMethodShortA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
0491     jint    (*CallStaticMethodInt)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
0492     jint    (*CallStaticMethodIntV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
0493     jint    (*CallStaticMethodIntA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
0494     jlong   (*CallStaticMethodLong)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
0495     jlong   (*CallStaticMethodLongV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
0496     jlong   (*CallStaticMethodLongA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
0497     jfloat  (*CallStaticMethodFloat)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
0498     jfloat  (*CallStaticMethodFloatV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
0499     jfloat  (*CallStaticMethodFloatA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
0500     jdouble (*CallStaticMethodDouble)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, ...);
0501     jdouble (*CallStaticMethodDoubleV)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, va_list c);
0502     jdouble (*CallStaticMethodDoubleA)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, JRIValue* c);
0503     jint    (*GetStaticFieldID)(JRIEnv* env, jint op, struct java_lang_Class* a, const char* b, const char* c);
0504     void*   (*GetStaticField)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
0505     jbool   (*GetStaticFieldBoolean)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
0506     jbyte   (*GetStaticFieldByte)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
0507     jchar   (*GetStaticFieldChar)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
0508     jshort  (*GetStaticFieldShort)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
0509     jint    (*GetStaticFieldInt)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
0510     jlong   (*GetStaticFieldLong)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
0511     jfloat  (*GetStaticFieldFloat)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
0512     jdouble (*GetStaticFieldDouble)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b);
0513     void    (*SetStaticField)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, void* c);
0514     void    (*SetStaticFieldBoolean)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jbool c);
0515     void    (*SetStaticFieldByte)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jbyte c);
0516     void    (*SetStaticFieldChar)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jchar c);
0517     void    (*SetStaticFieldShort)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jshort c);
0518     void    (*SetStaticFieldInt)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jint c);
0519     void    (*SetStaticFieldLong)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jlong c);
0520     void    (*SetStaticFieldFloat)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jfloat c);
0521     void    (*SetStaticFieldDouble)(JRIEnv* env, jint op, struct java_lang_Class* a, jint b, jdouble c);
0522     struct java_lang_String*    (*NewString)(JRIEnv* env, jint op, const jchar* a, jint b);
0523     jint    (*GetStringLength)(JRIEnv* env, jint op, struct java_lang_String* a);
0524     const jchar*    (*GetStringChars)(JRIEnv* env, jint op, struct java_lang_String* a);
0525     struct java_lang_String*    (*NewStringUTF)(JRIEnv* env, jint op, const jbyte* a, jint b);
0526     jint    (*GetStringUTFLength)(JRIEnv* env, jint op, struct java_lang_String* a);
0527     const jbyte*    (*GetStringUTFChars)(JRIEnv* env, jint op, struct java_lang_String* a);
0528     void*   (*NewScalarArray)(JRIEnv* env, jint op, jint a, const char* b, const jbyte* c);
0529     jint    (*GetScalarArrayLength)(JRIEnv* env, jint op, void* a);
0530     jbyte*  (*GetScalarArrayElements)(JRIEnv* env, jint op, void* a);
0531     void*   (*NewObjectArray)(JRIEnv* env, jint op, jint a, struct java_lang_Class* b, void* c);
0532     jint    (*GetObjectArrayLength)(JRIEnv* env, jint op, void* a);
0533     void*   (*GetObjectArrayElement)(JRIEnv* env, jint op, void* a, jint b);
0534     void    (*SetObjectArrayElement)(JRIEnv* env, jint op, void* a, jint b, void* c);
0535     void    (*RegisterNatives)(JRIEnv* env, jint op, struct java_lang_Class* a, char** b, void** c);
0536     void    (*UnregisterNatives)(JRIEnv* env, jint op, struct java_lang_Class* a);
0537     struct java_lang_Class* (*DefineClass)(JRIEnv* env, jint op, struct java_lang_ClassLoader* a, jbyte* b, jsize bLen);
0538     struct java_lang_String*    (*NewStringPlatform)(JRIEnv* env, jint op, const jbyte* a, jint b, const jbyte* c, jint d);
0539     const jbyte*    (*GetStringPlatformChars)(JRIEnv* env, jint op, struct java_lang_String* a, const jbyte* b, jint c);
0540 };
0541 
0542 /*
0543 ** ****************************************************************************
0544 ** JRIEnv Operation IDs
0545 ** ***************************************************************************
0546 */
0547 
0548 typedef enum JRIEnvOperations {
0549     JRI_Reserved0_op,
0550     JRI_Reserved1_op,
0551     JRI_Reserved2_op,
0552     JRI_Reserved3_op,
0553     JRI_FindClass_op,
0554     JRI_Throw_op,
0555     JRI_ThrowNew_op,
0556     JRI_ExceptionOccurred_op,
0557     JRI_ExceptionDescribe_op,
0558     JRI_ExceptionClear_op,
0559     JRI_NewGlobalRef_op,
0560     JRI_DisposeGlobalRef_op,
0561     JRI_GetGlobalRef_op,
0562     JRI_SetGlobalRef_op,
0563     JRI_IsSameObject_op,
0564     JRI_NewObject_op,
0565     JRI_NewObject_op_va_list,
0566     JRI_NewObject_op_array,
0567     JRI_GetObjectClass_op,
0568     JRI_IsInstanceOf_op,
0569     JRI_GetMethodID_op,
0570     JRI_CallMethod_op,
0571     JRI_CallMethod_op_va_list,
0572     JRI_CallMethod_op_array,
0573     JRI_CallMethodBoolean_op,
0574     JRI_CallMethodBoolean_op_va_list,
0575     JRI_CallMethodBoolean_op_array,
0576     JRI_CallMethodByte_op,
0577     JRI_CallMethodByte_op_va_list,
0578     JRI_CallMethodByte_op_array,
0579     JRI_CallMethodChar_op,
0580     JRI_CallMethodChar_op_va_list,
0581     JRI_CallMethodChar_op_array,
0582     JRI_CallMethodShort_op,
0583     JRI_CallMethodShort_op_va_list,
0584     JRI_CallMethodShort_op_array,
0585     JRI_CallMethodInt_op,
0586     JRI_CallMethodInt_op_va_list,
0587     JRI_CallMethodInt_op_array,
0588     JRI_CallMethodLong_op,
0589     JRI_CallMethodLong_op_va_list,
0590     JRI_CallMethodLong_op_array,
0591     JRI_CallMethodFloat_op,
0592     JRI_CallMethodFloat_op_va_list,
0593     JRI_CallMethodFloat_op_array,
0594     JRI_CallMethodDouble_op,
0595     JRI_CallMethodDouble_op_va_list,
0596     JRI_CallMethodDouble_op_array,
0597     JRI_GetFieldID_op,
0598     JRI_GetField_op,
0599     JRI_GetFieldBoolean_op,
0600     JRI_GetFieldByte_op,
0601     JRI_GetFieldChar_op,
0602     JRI_GetFieldShort_op,
0603     JRI_GetFieldInt_op,
0604     JRI_GetFieldLong_op,
0605     JRI_GetFieldFloat_op,
0606     JRI_GetFieldDouble_op,
0607     JRI_SetField_op,
0608     JRI_SetFieldBoolean_op,
0609     JRI_SetFieldByte_op,
0610     JRI_SetFieldChar_op,
0611     JRI_SetFieldShort_op,
0612     JRI_SetFieldInt_op,
0613     JRI_SetFieldLong_op,
0614     JRI_SetFieldFloat_op,
0615     JRI_SetFieldDouble_op,
0616     JRI_IsSubclassOf_op,
0617     JRI_GetStaticMethodID_op,
0618     JRI_CallStaticMethod_op,
0619     JRI_CallStaticMethod_op_va_list,
0620     JRI_CallStaticMethod_op_array,
0621     JRI_CallStaticMethodBoolean_op,
0622     JRI_CallStaticMethodBoolean_op_va_list,
0623     JRI_CallStaticMethodBoolean_op_array,
0624     JRI_CallStaticMethodByte_op,
0625     JRI_CallStaticMethodByte_op_va_list,
0626     JRI_CallStaticMethodByte_op_array,
0627     JRI_CallStaticMethodChar_op,
0628     JRI_CallStaticMethodChar_op_va_list,
0629     JRI_CallStaticMethodChar_op_array,
0630     JRI_CallStaticMethodShort_op,
0631     JRI_CallStaticMethodShort_op_va_list,
0632     JRI_CallStaticMethodShort_op_array,
0633     JRI_CallStaticMethodInt_op,
0634     JRI_CallStaticMethodInt_op_va_list,
0635     JRI_CallStaticMethodInt_op_array,
0636     JRI_CallStaticMethodLong_op,
0637     JRI_CallStaticMethodLong_op_va_list,
0638     JRI_CallStaticMethodLong_op_array,
0639     JRI_CallStaticMethodFloat_op,
0640     JRI_CallStaticMethodFloat_op_va_list,
0641     JRI_CallStaticMethodFloat_op_array,
0642     JRI_CallStaticMethodDouble_op,
0643     JRI_CallStaticMethodDouble_op_va_list,
0644     JRI_CallStaticMethodDouble_op_array,
0645     JRI_GetStaticFieldID_op,
0646     JRI_GetStaticField_op,
0647     JRI_GetStaticFieldBoolean_op,
0648     JRI_GetStaticFieldByte_op,
0649     JRI_GetStaticFieldChar_op,
0650     JRI_GetStaticFieldShort_op,
0651     JRI_GetStaticFieldInt_op,
0652     JRI_GetStaticFieldLong_op,
0653     JRI_GetStaticFieldFloat_op,
0654     JRI_GetStaticFieldDouble_op,
0655     JRI_SetStaticField_op,
0656     JRI_SetStaticFieldBoolean_op,
0657     JRI_SetStaticFieldByte_op,
0658     JRI_SetStaticFieldChar_op,
0659     JRI_SetStaticFieldShort_op,
0660     JRI_SetStaticFieldInt_op,
0661     JRI_SetStaticFieldLong_op,
0662     JRI_SetStaticFieldFloat_op,
0663     JRI_SetStaticFieldDouble_op,
0664     JRI_NewString_op,
0665     JRI_GetStringLength_op,
0666     JRI_GetStringChars_op,
0667     JRI_NewStringUTF_op,
0668     JRI_GetStringUTFLength_op,
0669     JRI_GetStringUTFChars_op,
0670     JRI_NewScalarArray_op,
0671     JRI_GetScalarArrayLength_op,
0672     JRI_GetScalarArrayElements_op,
0673     JRI_NewObjectArray_op,
0674     JRI_GetObjectArrayLength_op,
0675     JRI_GetObjectArrayElement_op,
0676     JRI_SetObjectArrayElement_op,
0677     JRI_RegisterNatives_op,
0678     JRI_UnregisterNatives_op,
0679     JRI_DefineClass_op,
0680     JRI_NewStringPlatform_op,
0681     JRI_GetStringPlatformChars_op
0682 } JRIEnvOperations;
0683 
0684 #ifdef __cplusplus
0685 } /* extern "C" */
0686 #endif /* __cplusplus */
0687 
0688 #endif /* JRI_H */
0689 /******************************************************************************/