1 /** 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef PANDA_RUNTIME_INTEROP_ETS_NAPI_H 17 #define PANDA_RUNTIME_INTEROP_ETS_NAPI_H 18 19 // NOLINTBEGIN(modernize-use-using, readability-identifier-naming, cppcoreguidelines-pro-type-vararg) 20 21 #ifdef __cplusplus 22 #include <cstdint> 23 #include <cstdarg> 24 #else 25 #include <stdint.h> 26 #include <stdarg.h> 27 #endif 28 29 // NOLINTBEGIN(cppcoreguidelines-macro-usage) 30 31 // Version Constants 32 #define ETS_NAPI_VERSION_1_0 0x00010000 33 34 // General return value constants 35 #define ETS_OK 0 // success 36 #define ETS_ERR (-1) // unknown error 37 #define ETS_ERR_VER (-2) // ETS version error 38 #define ETS_ERR_NOMEM (-3) // not enough memory 39 #define ETS_ERR_EXIST (-4) // VM already created 40 #define ETS_ERR_INVAL (-5) // invalid arguments 41 42 // Boolean Constants 43 #define ETS_FALSE 0 44 #define ETS_TRUE 1 45 46 // Mode Constants 47 #define ETS_COMMIT 1 48 #define ETS_ABORT 2 49 50 // NOLINTEND(cppcoreguidelines-macro-usage) 51 52 // Primitive Types 53 typedef uint8_t ets_boolean; 54 typedef int8_t ets_byte; 55 typedef uint16_t ets_char; 56 typedef int16_t ets_short; 57 typedef int32_t ets_int; 58 typedef int64_t ets_long; 59 typedef float ets_float; 60 typedef double ets_double; 61 typedef ets_int ets_size; 62 63 // Reference Types 64 #ifdef __cplusplus 65 class __ets_object {}; 66 class __ets_void : public __ets_object {}; 67 class __ets_class : public __ets_object {}; 68 class __ets_string : public __ets_object {}; 69 class __ets_array : public __ets_object {}; 70 class __ets_objectArray : public __ets_array {}; 71 class __ets_booleanArray : public __ets_array {}; 72 class __ets_byteArray : public __ets_array {}; 73 class __ets_charArray : public __ets_array {}; 74 class __ets_shortArray : public __ets_array {}; 75 class __ets_intArray : public __ets_array {}; 76 class __ets_longArray : public __ets_array {}; 77 class __ets_floatArray : public __ets_array {}; 78 class __ets_doubleArray : public __ets_array {}; 79 class __ets_error : public __ets_object {}; 80 81 typedef __ets_object *ets_object; 82 typedef __ets_void *ets_void; 83 typedef __ets_class *ets_class; 84 typedef __ets_string *ets_string; 85 typedef __ets_array *ets_array; 86 typedef __ets_objectArray *ets_objectArray; 87 typedef __ets_booleanArray *ets_booleanArray; 88 typedef __ets_byteArray *ets_byteArray; 89 typedef __ets_charArray *ets_charArray; 90 typedef __ets_shortArray *ets_shortArray; 91 typedef __ets_intArray *ets_intArray; 92 typedef __ets_longArray *ets_longArray; 93 typedef __ets_floatArray *ets_floatArray; 94 typedef __ets_doubleArray *ets_doubleArray; 95 typedef __ets_error *ets_error; 96 typedef __ets_object *ets_weak; 97 98 #else // __cplusplus 99 100 struct __ets_object; 101 typedef struct __ets_object *ets_object; 102 typedef ets_object ets_class; 103 typedef ets_object ets_string; 104 typedef ets_object ets_error; 105 typedef ets_object ets_weak; 106 typedef ets_object ets_array; 107 typedef ets_array ets_objectArray; 108 typedef ets_array ets_booleanArray; 109 typedef ets_array ets_byteArray; 110 typedef ets_array ets_charArray; 111 typedef ets_array ets_shortArray; 112 typedef ets_array ets_intArray; 113 typedef ets_array ets_longArray; 114 typedef ets_array ets_floatArray; 115 typedef ets_array ets_doubleArray; 116 #endif // __cplusplus 117 118 struct __ets_deferred; 119 typedef struct __ets_deferred *ets_deferred; 120 121 // Field and Method IDs 122 struct __ets_method; 123 struct __ets_field; 124 typedef struct __ets_method *ets_method; 125 typedef struct __ets_field *ets_field; 126 127 // The Value Type 128 typedef union ets_value { 129 ets_boolean z; 130 ets_byte b; 131 ets_char c; 132 ets_short s; 133 ets_int i; 134 ets_long j; 135 ets_float f; 136 ets_double d; 137 ets_object l; 138 } ets_value; 139 140 // Describe native method by name, signature and function pointer 141 typedef struct { 142 const char *name; 143 const char *signature; 144 void *func; 145 } EtsNativeMethod; 146 147 // The object reference types 148 typedef enum { 149 ETS_INVALID_REF_TYPE = 0, 150 ETS_LOCAL_REF_TYPE = 1, 151 ETS_GLOBAL_REF_TYPE = 2, 152 ETS_WEAK_GLOBAL_REF_TYPE = 3 153 } ets_objectRefType; 154 155 #ifdef __cplusplus 156 typedef struct __EtsVM EtsVM; 157 typedef struct __EtsEnv ets_env; 158 #else 159 typedef const struct ETS_InvokeInterface *EtsVM; 160 typedef const struct ETS_NativeInterface *ets_env; 161 #endif 162 163 // Deprecated types: 164 typedef ets_env EtsEnv; 165 166 typedef enum { 167 ETS_OKAY, 168 ETS_INVALID_ARG, 169 ETS_GENERIC_FAILURE, 170 ETS_PENDING_EXCEPTION, 171 ETS_INVALID_VERSION, // NOTE(v.cherkashin): This status code doesn't match to napi interface. 172 // Should we probably delete this status code? 173 } ets_status; 174 175 // clang-format off 176 // Interface Function Table 177 struct ETS_NativeInterface { 178 // NOTE(a.urakov): solve the "Array" naming problem 179 ets_int (*GetVersion)(EtsEnv *env); 180 #ifdef ETS_NAPI_DESIGN_FINISHED 181 ets_class (*DefineClass)(EtsEnv *env, const char *name, ets_object loader, const ets_byte *buf, ets_size bufLen); 182 #endif 183 ets_class (*FindClass)(EtsEnv *env, const char *name); 184 #ifdef ETS_NAPI_DESIGN_FINISHED 185 ets_method (*FromReflectedMethod)(EtsEnv *env, ets_object method); 186 ets_field (*FromReflectedField)(EtsEnv *env, ets_object field); 187 ets_object (*ToReflectedMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ets_boolean isStatic); 188 #endif 189 ets_class (*GetSuperclass)(EtsEnv *env, ets_class cls); 190 ets_boolean (*IsAssignableFrom)(EtsEnv *env, ets_class cls1, ets_class cls2); 191 #ifdef ETS_NAPI_DESIGN_FINISHED 192 ets_object (*ToReflectedField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_boolean isStatic); 193 #endif 194 ets_int (*ThrowError)(EtsEnv *env, ets_error obj); 195 ets_int (*ThrowErrorNew)(EtsEnv *env, ets_class cls, const char *message); 196 ets_error (*ErrorOccurred)(EtsEnv *env); 197 void (*ErrorDescribe)(EtsEnv *env); 198 void (*ErrorClear)(EtsEnv *env); 199 void (*FatalError)(EtsEnv *env, const char *message); 200 ets_int (*PushLocalFrame)(EtsEnv *env, ets_int capacity); 201 ets_object (*PopLocalFrame)(EtsEnv *env, ets_object result); 202 ets_object (*NewGlobalRef)(EtsEnv *env, ets_object obj); 203 void (*DeleteGlobalRef)(EtsEnv *env, ets_object globalRef); 204 void (*DeleteLocalRef)(EtsEnv *env, ets_object localRef); 205 ets_boolean (*IsSameObject)(EtsEnv *env, ets_object ref1, ets_object ref2); 206 ets_object (*NewLocalRef)(EtsEnv *env, ets_object ref); 207 ets_int (*EnsureLocalCapacity)(EtsEnv *env, ets_int capacity); 208 ets_object (*AllocObject)(EtsEnv *env, ets_class cls); 209 ets_object (*NewObject)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 210 ets_object (*NewObjectList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 211 ets_object (*NewObjectArray)(EtsEnv *env, ets_class cls, ets_method p_method, const ets_value *args); 212 ets_class (*GetObjectClass)(EtsEnv *env, ets_object obj); 213 ets_boolean (*IsInstanceOf)(EtsEnv *env, ets_object obj, ets_class cls); 214 ets_method (*Getp_method)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 215 ets_object (*CallObjectMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 216 ets_object (*CallObjectMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 217 ets_object (*CallObjectMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 218 ets_boolean (*CallBooleanMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 219 ets_boolean (*CallBooleanMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 220 ets_boolean (*CallBooleanMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 221 ets_byte (*CallByteMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 222 ets_byte (*CallByteMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 223 ets_byte (*CallByteMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 224 ets_char (*CallCharMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 225 ets_char (*CallCharMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 226 ets_char (*CallCharMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 227 ets_short (*CallShortMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 228 ets_short (*CallShortMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 229 ets_short (*CallShortMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 230 ets_int (*CallIntMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 231 ets_int (*CallIntMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 232 ets_int (*CallIntMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 233 ets_long (*CallLongMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 234 ets_long (*CallLongMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 235 ets_long (*CallLongMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 236 ets_float (*CallFloatMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 237 ets_float (*CallFloatMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 238 ets_float (*CallFloatMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 239 ets_double (*CallDoubleMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 240 ets_double (*CallDoubleMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 241 ets_double (*CallDoubleMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 242 void (*CallVoidMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 243 void (*CallVoidMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 244 void (*CallVoidMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 245 246 ets_object (*CallNonvirtualObjectMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 247 ets_object (*CallNonvirtualObjectMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 248 va_list args); 249 ets_object (*CallNonvirtualObjectMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 250 const ets_value *args); 251 ets_boolean (*CallNonvirtualBooleanMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 252 ets_boolean (*CallNonvirtualBooleanMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 253 va_list args); 254 ets_boolean (*CallNonvirtualBooleanMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 255 const ets_value *args); 256 ets_byte (*CallNonvirtualByteMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 257 ets_byte (*CallNonvirtualByteMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 258 va_list args); 259 ets_byte (*CallNonvirtualByteMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 260 const ets_value *args); 261 ets_char (*CallNonvirtualCharMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 262 ets_char (*CallNonvirtualCharMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 263 va_list args); 264 ets_char (*CallNonvirtualCharMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 265 const ets_value *args); 266 ets_short (*CallNonvirtualShortMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 267 ets_short (*CallNonvirtualShortMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 268 va_list args); 269 ets_short (*CallNonvirtualShortMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 270 const ets_value *args); 271 ets_int (*CallNonvirtualIntMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 272 ets_int (*CallNonvirtualIntMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 273 va_list args); 274 ets_int (*CallNonvirtualIntMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 275 const ets_value *args); 276 ets_long (*CallNonvirtualLongMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 277 ets_long (*CallNonvirtualLongMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 278 va_list args); 279 ets_long (*CallNonvirtualLongMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 280 const ets_value *args); 281 ets_float (*CallNonvirtualFloatMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 282 ets_float (*CallNonvirtualFloatMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 283 va_list args); 284 ets_float (*CallNonvirtualFloatMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 285 const ets_value *args); 286 ets_double (*CallNonvirtualDoubleMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 287 ets_double (*CallNonvirtualDoubleMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 288 va_list args); 289 ets_double (*CallNonvirtualDoubleMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 290 const ets_value *args); 291 void (*CallNonvirtualVoidMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 292 void (*CallNonvirtualVoidMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, va_list args); 293 void (*CallNonvirtualVoidMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 294 const ets_value *args); 295 ets_field (*Getp_field)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 296 ets_object (*GetObjectField)(EtsEnv *env, ets_object obj, ets_field p_field); 297 ets_boolean (*GetBooleanField)(EtsEnv *env, ets_object obj, ets_field p_field); 298 ets_byte (*GetByteField)(EtsEnv *env, ets_object obj, ets_field p_field); 299 ets_char (*GetCharField)(EtsEnv *env, ets_object obj, ets_field p_field); 300 ets_short (*GetShortField)(EtsEnv *env, ets_object obj, ets_field p_field); 301 ets_int (*GetIntField)(EtsEnv *env, ets_object obj, ets_field p_field); 302 ets_long (*GetLongField)(EtsEnv *env, ets_object obj, ets_field p_field); 303 ets_float (*GetFloatField)(EtsEnv *env, ets_object obj, ets_field p_field); 304 ets_double (*GetDoubleField)(EtsEnv *env, ets_object obj, ets_field p_field); 305 void (*SetObjectField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_object value); 306 void (*SetBooleanField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_boolean value); 307 void (*SetByteField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_byte value); 308 void (*SetCharField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_char value); 309 void (*SetShortField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_short value); 310 void (*SetIntField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_int value); 311 void (*SetLongField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_long value); 312 void (*SetFloatField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_float value); 313 void (*SetDoubleField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_double value); 314 ets_method (*GetStaticp_method)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 315 ets_object (*CallStaticObjectMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 316 ets_object (*CallStaticObjectMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 317 ets_object (*CallStaticObjectMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 318 ets_boolean (*CallStaticBooleanMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 319 ets_boolean (*CallStaticBooleanMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 320 ets_boolean (*CallStaticBooleanMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 321 ets_byte (*CallStaticByteMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 322 ets_byte (*CallStaticByteMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 323 ets_byte (*CallStaticByteMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 324 ets_char (*CallStaticCharMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 325 ets_char (*CallStaticCharMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 326 ets_char (*CallStaticCharMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 327 ets_short (*CallStaticShortMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 328 ets_short (*CallStaticShortMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 329 ets_short (*CallStaticShortMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 330 ets_int (*CallStaticIntMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 331 ets_int (*CallStaticIntMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 332 ets_int (*CallStaticIntMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 333 ets_long (*CallStaticLongMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 334 ets_long (*CallStaticLongMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 335 ets_long (*CallStaticLongMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 336 ets_float (*CallStaticFloatMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 337 ets_float (*CallStaticFloatMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 338 ets_float (*CallStaticFloatMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 339 ets_double (*CallStaticDoubleMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 340 ets_double (*CallStaticDoubleMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 341 ets_double (*CallStaticDoubleMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 342 void (*CallStaticVoidMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 343 void (*CallStaticVoidMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 344 void (*CallStaticVoidMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 345 ets_field (*GetStaticp_field)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 346 ets_object (*GetStaticObjectField)(EtsEnv *env, ets_class cls, ets_field p_field); 347 ets_boolean (*GetStaticBooleanField)(EtsEnv *env, ets_class cls, ets_field p_field); 348 ets_byte (*GetStaticByteField)(EtsEnv *env, ets_class cls, ets_field p_field); 349 ets_char (*GetStaticCharField)(EtsEnv *env, ets_class cls, ets_field p_field); 350 ets_short (*GetStaticShortField)(EtsEnv *env, ets_class cls, ets_field p_field); 351 ets_int (*GetStaticIntField)(EtsEnv *env, ets_class cls, ets_field p_field); 352 ets_long (*GetStaticLongField)(EtsEnv *env, ets_class cls, ets_field p_field); 353 ets_float (*GetStaticFloatField)(EtsEnv *env, ets_class cls, ets_field p_field); 354 ets_double (*GetStaticDoubleField)(EtsEnv *env, ets_class cls, ets_field p_field); 355 void (*SetStaticObjectField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_object value); 356 void (*SetStaticBooleanField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_boolean value); 357 void (*SetStaticByteField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_byte value); 358 void (*SetStaticCharField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_char value); 359 void (*SetStaticShortField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_short value); 360 void (*SetStaticIntField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_int value); 361 void (*SetStaticLongField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_long value); 362 void (*SetStaticFloatField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_float value); 363 void (*SetStaticDoubleField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_double value); 364 ets_string (*NewString)(EtsEnv *env, const ets_char *unicodeChars, ets_size len); 365 ets_size (*GetStringLength)(EtsEnv *env, ets_string string); 366 const ets_char *(*GetStringChars)(EtsEnv *env, ets_string string, ets_boolean *isCopy); 367 void (*ReleaseStringChars)(EtsEnv *env, ets_string string, const ets_char *chars); 368 ets_string (*NewStringUTF)(EtsEnv *env, const char *bytes); 369 ets_size (*GetStringUTFLength)(EtsEnv *env, ets_string string); 370 const char *(*GetStringUTFChars)(EtsEnv *env, ets_string string, ets_boolean *isCopy); 371 void (*ReleaseStringUTFChars)(EtsEnv *env, ets_string string, const char *utf); 372 ets_size (*GetArrayLength)(EtsEnv *env, ets_array array); 373 ets_objectArray (*NewObjectsArray)(EtsEnv *env, ets_size length, ets_class element_class, 374 ets_object initial_element); 375 ets_object (*GetObjectArrayElement)(EtsEnv *env, ets_objectArray array, ets_size index); 376 void (*SetObjectArrayElement)(EtsEnv *env, ets_objectArray array, ets_size index, ets_object value); 377 ets_booleanArray (*NewBooleanArray)(EtsEnv *env, ets_size length); 378 ets_byteArray (*NewByteArray)(EtsEnv *env, ets_size length); 379 ets_charArray (*NewCharArray)(EtsEnv *env, ets_size length); 380 ets_shortArray (*NewShortArray)(EtsEnv *env, ets_size length); 381 ets_intArray (*NewIntArray)(EtsEnv *env, ets_size length); 382 ets_longArray (*NewLongArray)(EtsEnv *env, ets_size length); 383 ets_floatArray (*NewFloatArray)(EtsEnv *env, ets_size length); 384 ets_doubleArray (*NewDoubleArray)(EtsEnv *env, ets_size length); 385 ets_boolean *(*PinBooleanArray)(EtsEnv *env, ets_booleanArray array); 386 ets_byte *(*PinByteArray)(EtsEnv *env, ets_byteArray array); 387 ets_char *(*PinCharArray)(EtsEnv *env, ets_charArray array); 388 ets_short *(*PinShortArray)(EtsEnv *env, ets_shortArray array); 389 ets_int *(*PinIntArray)(EtsEnv *env, ets_intArray array); 390 ets_long *(*PinLongArray)(EtsEnv *env, ets_longArray array); 391 ets_float *(*PinFloatArray)(EtsEnv *env, ets_floatArray array); 392 ets_double *(*PinDoubleArray)(EtsEnv *env, ets_doubleArray array); 393 void (*UnpinBooleanArray)(EtsEnv *env, ets_booleanArray array); 394 void (*UnpinByteArray)(EtsEnv *env, ets_byteArray array); 395 void (*UnpinCharArray)(EtsEnv *env, ets_charArray array); 396 void (*UnpinShortArray)(EtsEnv *env, ets_shortArray array); 397 void (*UnpinIntArray)(EtsEnv *env, ets_intArray array); 398 void (*UnpinLongArray)(EtsEnv *env, ets_longArray array); 399 void (*UnpinFloatArray)(EtsEnv *env, ets_floatArray array); 400 void (*UnpinDoubleArray)(EtsEnv *env, ets_doubleArray array); 401 void (*GetBooleanArrayRegion)(EtsEnv *env, ets_booleanArray array, ets_size start, ets_size len, ets_boolean *buf); 402 void (*GetByteArrayRegion)(EtsEnv *env, ets_byteArray array, ets_size start, ets_size len, ets_byte *buf); 403 void (*GetCharArrayRegion)(EtsEnv *env, ets_charArray array, ets_size start, ets_size len, ets_char *buf); 404 void (*GetShortArrayRegion)(EtsEnv *env, ets_shortArray array, ets_size start, ets_size len, ets_short *buf); 405 void (*GetIntArrayRegion)(EtsEnv *env, ets_intArray array, ets_size start, ets_size len, ets_int *buf); 406 void (*GetLongArrayRegion)(EtsEnv *env, ets_longArray array, ets_size start, ets_size len, ets_long *buf); 407 void (*GetFloatArrayRegion)(EtsEnv *env, ets_floatArray array, ets_size start, ets_size len, ets_float *buf); 408 void (*GetDoubleArrayRegion)(EtsEnv *env, ets_doubleArray array, ets_size start, ets_size len, ets_double *buf); 409 void (*SetBooleanArrayRegion)(EtsEnv *env, ets_booleanArray array, ets_size start, ets_size len, 410 const ets_boolean *buf); 411 void (*SetByteArrayRegion)(EtsEnv *env, ets_byteArray array, ets_size start, ets_size len, const ets_byte *buf); 412 void (*SetCharArrayRegion)(EtsEnv *env, ets_charArray array, ets_size start, ets_size len, const ets_char *buf); 413 void (*SetShortArrayRegion)(EtsEnv *env, ets_shortArray array, ets_size start, ets_size len, const ets_short *buf); 414 void (*SetIntArrayRegion)(EtsEnv *env, ets_intArray array, ets_size start, ets_size len, const ets_int *buf); 415 void (*SetLongArrayRegion)(EtsEnv *env, ets_longArray array, ets_size start, ets_size len, const ets_long *buf); 416 void (*SetFloatArrayRegion)(EtsEnv *env, ets_floatArray array, ets_size start, ets_size len, const ets_float *buf); 417 void (*SetDoubleArrayRegion)(EtsEnv *env, ets_doubleArray array, ets_size start, ets_size len, 418 const ets_double *buf); 419 ets_int (*RegisterNatives)(EtsEnv *env, ets_class cls, const EtsNativeMethod *methods, ets_int nMethods); 420 ets_int (*UnregisterNatives)(EtsEnv *env, ets_class cls); 421 ets_int (*GetEtsVM)(EtsEnv *env, EtsVM **vm); 422 void (*GetStringRegion)(EtsEnv *env, ets_string str, ets_size start, ets_size len, ets_char *buf); 423 void (*GetStringUTFRegion)(EtsEnv *env, ets_string str, ets_size start, ets_size len, char *buf); 424 ets_weak (*NewWeakGlobalRef)(EtsEnv *env, ets_object obj); 425 void (*DeleteWeakGlobalRef)(EtsEnv *env, ets_weak obj); 426 ets_boolean (*ErrorCheck)(EtsEnv *env); 427 #ifdef ETS_NAPI_DESIGN_FINISHED 428 ets_object (*NewDirectByteBuffer)(EtsEnv *env, void *address, ets_long capacity); 429 void *(*GetDirectBufferAddress)(EtsEnv *env, ets_object buf); 430 ets_long (*GetDirectBufferCapacity)(EtsEnv *env, ets_object buf); 431 #endif 432 ets_objectRefType (*GetObjectRefType)(EtsEnv *env, ets_object obj); 433 434 /* 227 methods */ 435 436 // Promise API 437 ets_status (*PromiseCreate)(EtsEnv *env, ets_deferred *deferred, ets_object *promise); 438 ets_status (*DeferredResolve)(EtsEnv *env, ets_deferred deferred, ets_object resolution); 439 ets_status (*DeferredReject)(EtsEnv *env, ets_deferred deferred, ets_object rejection); 440 }; 441 // clang-format on 442 443 // Invocation API Functions 444 typedef enum { 445 ETS_LOG_LEVEL, 446 ETS_MOBILE_LOG, 447 ETS_BOOT_FILE, 448 ETS_AOT_FILE, 449 ETS_ARK_FILE, 450 ETS_JIT, 451 ETS_NO_JIT, 452 ETS_AOT, 453 ETS_NO_AOT, 454 ETS_GC_TRIGGER_TYPE, 455 ETS_GC_TYPE, 456 ETS_RUN_GC_IN_PLACE, 457 ETS_INTERPRETER_TYPE 458 } EtsOptionType; 459 460 typedef struct EtsVMOption { 461 EtsOptionType option; 462 const void *extraInfo; 463 } EtsVMOption; 464 465 typedef struct EtsVMInitArgs { 466 ets_int version; 467 ets_int nOptions; 468 EtsVMOption *options; 469 } EtsVMInitArgs; 470 471 typedef enum { 472 ETS_MOBILE_LOG_LEVEL_UNKNOWN = 0, 473 ETS_MOBILE_LOG_LEVEL_DEFAULT, 474 ETS_MOBILE_LOG_LEVEL_VERBOSE, 475 ETS_MOBILE_LOG_LEVEL_DEBUG, 476 ETS_MOBILE_LOG_LEVEL_INFO, 477 ETS_MOBILE_LOG_LEVEL_WARN, 478 ETS_MOBILE_LOG_LEVEL_ERROR, 479 ETS_MOBILE_LOG_LEVEL_FATAL, 480 ETS_MOBILE_LOG_LEVEL_SILENT 481 } EtsMobileLogggerLevel; 482 483 #ifdef __cplusplus 484 extern "C" { 485 #endif 486 487 #define ETS_EXPORT __attribute__((visibility("default"))) 488 #define ETS_IMPORT 489 #define ETS_CALL 490 491 ets_int ETS_GetDefaultVMInitArgs(EtsVMInitArgs *vmArgs); 492 ets_int ETS_GetCreatedVMs(EtsVM **vmBuf, ets_size bufLen, ets_size *nVms); 493 ets_int ETS_CreateVM(EtsVM **pVm, EtsEnv **pEnv, EtsVMInitArgs *vmArgs); 494 495 #ifdef __cplusplus 496 } 497 #endif 498 499 struct ETS_InvokeInterface { 500 ets_int (*DestroyEtsVM)(EtsVM *vm); 501 ets_int (*GetEnv)(EtsVM *vm, EtsEnv **pEnv, ets_int version); 502 }; 503 504 struct __EtsVM { 505 // NOLINTNEXTLINE(misc-non-private-member-variables-in-classes) 506 const struct ETS_InvokeInterface *invokeInterface; 507 508 #ifdef __cplusplus DestroyEtsVM__EtsVM509 ets_int DestroyEtsVM() 510 { 511 return invokeInterface->DestroyEtsVM(this); 512 } 513 GetEnv__EtsVM514 ets_int GetEnv(EtsEnv **pEnv, ets_int version) 515 { 516 return invokeInterface->GetEnv(this, pEnv, version); 517 } 518 #endif 519 }; 520 521 struct __EtsEnv { 522 // NOLINTNEXTLINE(misc-non-private-member-variables-in-classes) 523 const struct ETS_NativeInterface *nativeInterface; 524 525 #ifdef __cplusplus 526 GetVersion__EtsEnv527 ets_int GetVersion() 528 { 529 return nativeInterface->GetVersion(this); 530 } 531 // DefineClass, FindClass__EtsEnv532 ets_class FindClass(const char *name) 533 { 534 return nativeInterface->FindClass(this, name); 535 } 536 // FromReflectedMethod, 537 // FromReflectedField, 538 // ToReflectedMethod, GetSuperclass__EtsEnv539 ets_class GetSuperclass(ets_class cls) 540 { 541 return nativeInterface->GetSuperclass(this, cls); 542 } IsAssignableFrom__EtsEnv543 ets_boolean IsAssignableFrom(ets_class cls1, ets_class cls2) 544 { 545 return nativeInterface->IsAssignableFrom(this, cls1, cls2); 546 } 547 // ToReflectedField, ThrowError__EtsEnv548 ets_int ThrowError(ets_error obj) 549 { 550 return nativeInterface->ThrowError(this, obj); 551 } ThrowErrorNew__EtsEnv552 ets_int ThrowErrorNew(ets_class cls, const char *message) 553 { 554 return nativeInterface->ThrowErrorNew(this, cls, message); 555 } ErrorOccurred__EtsEnv556 ets_error ErrorOccurred() 557 { 558 return nativeInterface->ErrorOccurred(this); 559 } ErrorDescribe__EtsEnv560 void ErrorDescribe() 561 { 562 nativeInterface->ErrorDescribe(this); 563 } ErrorClear__EtsEnv564 void ErrorClear() 565 { 566 nativeInterface->ErrorClear(this); 567 } FatalError__EtsEnv568 void FatalError(const char *message) 569 { 570 nativeInterface->FatalError(this, message); 571 } PushLocalFrame__EtsEnv572 ets_int PushLocalFrame(ets_int capacity) 573 { 574 return nativeInterface->PushLocalFrame(this, capacity); 575 } PopLocalFrame__EtsEnv576 ets_object PopLocalFrame(ets_object result) 577 { 578 return nativeInterface->PopLocalFrame(this, result); 579 } NewGlobalRef__EtsEnv580 ets_object NewGlobalRef(ets_object obj) 581 { 582 return nativeInterface->NewGlobalRef(this, obj); 583 } DeleteGlobalRef__EtsEnv584 void DeleteGlobalRef(ets_object globalRef) 585 { 586 nativeInterface->DeleteGlobalRef(this, globalRef); 587 } DeleteLocalRef__EtsEnv588 void DeleteLocalRef(ets_object localRef) 589 { 590 nativeInterface->DeleteLocalRef(this, localRef); 591 } IsSameObject__EtsEnv592 ets_boolean IsSameObject(ets_object ref1, ets_object ref2) 593 { 594 return nativeInterface->IsSameObject(this, ref1, ref2); 595 } NewLocalRef__EtsEnv596 ets_object NewLocalRef(ets_object ref) 597 { 598 return nativeInterface->NewLocalRef(this, ref); 599 } EnsureLocalCapacity__EtsEnv600 ets_int EnsureLocalCapacity(ets_int capacity) 601 { 602 return nativeInterface->EnsureLocalCapacity(this, capacity); 603 } AllocObject__EtsEnv604 ets_object AllocObject(ets_class cls) 605 { 606 return nativeInterface->AllocObject(this, cls); 607 } NewObject__EtsEnv608 ets_object NewObject(ets_class cls, ets_method p_method, ...) 609 { 610 va_list args; 611 va_start(args, p_method); 612 ets_object ret = nativeInterface->NewObjectList(this, cls, p_method, args); 613 va_end(args); 614 return ret; 615 } NewObjectList__EtsEnv616 ets_object NewObjectList(ets_class cls, ets_method p_method, va_list args) 617 { 618 return nativeInterface->NewObjectList(this, cls, p_method, args); 619 } NewObjectArray__EtsEnv620 ets_object NewObjectArray(ets_class cls, ets_method p_method, const ets_value *args) 621 { 622 return nativeInterface->NewObjectArray(this, cls, p_method, args); 623 } GetObjectClass__EtsEnv624 ets_class GetObjectClass(ets_object obj) 625 { 626 return nativeInterface->GetObjectClass(this, obj); 627 } IsInstanceOf__EtsEnv628 ets_boolean IsInstanceOf(ets_object obj, ets_class cls) 629 { 630 return nativeInterface->IsInstanceOf(this, obj, cls); 631 } Getp_method__EtsEnv632 ets_method Getp_method(ets_class cls, const char *name, const char *sig) 633 { 634 return nativeInterface->Getp_method(this, cls, name, sig); 635 } CallObjectMethod__EtsEnv636 ets_object CallObjectMethod(ets_object obj, ets_method method_id, ...) 637 { 638 va_list args; 639 va_start(args, method_id); 640 ets_object res = nativeInterface->CallObjectMethodList(this, obj, method_id, args); 641 va_end(args); 642 return res; 643 } CallObjectMethodList__EtsEnv644 ets_object CallObjectMethodList(ets_object obj, ets_method method_id, va_list args) 645 { 646 return nativeInterface->CallObjectMethodList(this, obj, method_id, args); 647 } CallObjectMethodArray__EtsEnv648 ets_object CallObjectMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 649 { 650 return nativeInterface->CallObjectMethodArray(this, obj, method_id, args); 651 } CallBooleanMethod__EtsEnv652 ets_boolean CallBooleanMethod(ets_object obj, ets_method method_id, ...) 653 { 654 va_list args; 655 va_start(args, method_id); 656 ets_boolean res = nativeInterface->CallBooleanMethodList(this, obj, method_id, args); 657 va_end(args); 658 return res; 659 } CallBooleanMethodList__EtsEnv660 ets_boolean CallBooleanMethodList(ets_object obj, ets_method method_id, va_list args) 661 { 662 return nativeInterface->CallBooleanMethodList(this, obj, method_id, args); 663 } CallBooleanMethodArray__EtsEnv664 ets_boolean CallBooleanMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 665 { 666 return nativeInterface->CallBooleanMethodArray(this, obj, method_id, args); 667 } CallByteMethod__EtsEnv668 ets_byte CallByteMethod(ets_object obj, ets_method method_id, ...) 669 { 670 va_list args; 671 va_start(args, method_id); 672 ets_byte res = nativeInterface->CallByteMethodList(this, obj, method_id, args); 673 va_end(args); 674 return res; 675 } CallByteMethodList__EtsEnv676 ets_byte CallByteMethodList(ets_object obj, ets_method method_id, va_list args) 677 { 678 return nativeInterface->CallByteMethodList(this, obj, method_id, args); 679 } CallByteMethodArray__EtsEnv680 ets_byte CallByteMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 681 { 682 return nativeInterface->CallByteMethodArray(this, obj, method_id, args); 683 } CallCharMethod__EtsEnv684 ets_char CallCharMethod(ets_object obj, ets_method method_id, ...) 685 { 686 va_list args; 687 va_start(args, method_id); 688 ets_char res = nativeInterface->CallCharMethodList(this, obj, method_id, args); 689 va_end(args); 690 return res; 691 } CallCharMethodList__EtsEnv692 ets_char CallCharMethodList(ets_object obj, ets_method method_id, va_list args) 693 { 694 return nativeInterface->CallCharMethodList(this, obj, method_id, args); 695 } CallCharMethodArray__EtsEnv696 ets_char CallCharMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 697 { 698 return nativeInterface->CallCharMethodArray(this, obj, method_id, args); 699 } CallShortMethod__EtsEnv700 ets_short CallShortMethod(ets_object obj, ets_method method_id, ...) 701 { 702 va_list args; 703 va_start(args, method_id); 704 ets_short res = nativeInterface->CallShortMethodList(this, obj, method_id, args); 705 va_end(args); 706 return res; 707 } CallShortMethodList__EtsEnv708 ets_short CallShortMethodList(ets_object obj, ets_method method_id, va_list args) 709 { 710 return nativeInterface->CallShortMethodList(this, obj, method_id, args); 711 } CallShortMethodArray__EtsEnv712 ets_short CallShortMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 713 { 714 return nativeInterface->CallShortMethodArray(this, obj, method_id, args); 715 } CallIntMethod__EtsEnv716 ets_int CallIntMethod(ets_object obj, ets_method method_id, ...) 717 { 718 va_list args; 719 va_start(args, method_id); 720 ets_int res = nativeInterface->CallIntMethodList(this, obj, method_id, args); 721 va_end(args); 722 return res; 723 } CallIntMethodList__EtsEnv724 ets_int CallIntMethodList(ets_object obj, ets_method method_id, va_list args) 725 { 726 return nativeInterface->CallIntMethodList(this, obj, method_id, args); 727 } CallIntMethodArray__EtsEnv728 ets_int CallIntMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 729 { 730 return nativeInterface->CallIntMethodArray(this, obj, method_id, args); 731 } CallLongMethod__EtsEnv732 ets_long CallLongMethod(ets_object obj, ets_method method_id, ...) 733 { 734 va_list args; 735 va_start(args, method_id); 736 ets_long res = nativeInterface->CallLongMethodList(this, obj, method_id, args); 737 va_end(args); 738 return res; 739 } CallLongMethodList__EtsEnv740 ets_long CallLongMethodList(ets_object obj, ets_method method_id, va_list args) 741 { 742 return nativeInterface->CallLongMethodList(this, obj, method_id, args); 743 } CallLongMethodArray__EtsEnv744 ets_long CallLongMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 745 { 746 return nativeInterface->CallLongMethodArray(this, obj, method_id, args); 747 } CallFloatMethod__EtsEnv748 ets_float CallFloatMethod(ets_object obj, ets_method method_id, ...) 749 { 750 va_list args; 751 va_start(args, method_id); 752 ets_float res = nativeInterface->CallFloatMethodList(this, obj, method_id, args); 753 va_end(args); 754 return res; 755 } CallFloatMethodList__EtsEnv756 ets_float CallFloatMethodList(ets_object obj, ets_method method_id, va_list args) 757 { 758 return nativeInterface->CallFloatMethodList(this, obj, method_id, args); 759 } CallFloatMethodArray__EtsEnv760 ets_float CallFloatMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 761 { 762 return nativeInterface->CallFloatMethodArray(this, obj, method_id, args); 763 } CallDoubleMethod__EtsEnv764 ets_double CallDoubleMethod(ets_object obj, ets_method method_id, ...) 765 { 766 va_list args; 767 va_start(args, method_id); 768 ets_double res = nativeInterface->CallDoubleMethodList(this, obj, method_id, args); 769 va_end(args); 770 return res; 771 } CallDoubleMethodList__EtsEnv772 ets_double CallDoubleMethodList(ets_object obj, ets_method method_id, va_list args) 773 { 774 return nativeInterface->CallDoubleMethodList(this, obj, method_id, args); 775 } CallDoubleMethodArray__EtsEnv776 ets_double CallDoubleMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 777 { 778 return nativeInterface->CallDoubleMethodArray(this, obj, method_id, args); 779 } CallVoidMethod__EtsEnv780 void CallVoidMethod(ets_object obj, ets_method method_id, ...) 781 { 782 va_list args; 783 va_start(args, method_id); 784 nativeInterface->CallVoidMethodList(this, obj, method_id, args); 785 va_end(args); 786 } CallVoidMethodList__EtsEnv787 void CallVoidMethodList(ets_object obj, ets_method method_id, va_list args) 788 { 789 nativeInterface->CallVoidMethodList(this, obj, method_id, args); 790 } CallVoidMethodArray__EtsEnv791 void CallVoidMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 792 { 793 nativeInterface->CallVoidMethodArray(this, obj, method_id, args); 794 } CallNonvirtualObjectMethod__EtsEnv795 ets_object CallNonvirtualObjectMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 796 { 797 va_list args; 798 va_start(args, method_id); 799 ets_object res = nativeInterface->CallNonvirtualObjectMethodList(this, obj, cls, method_id, args); 800 va_end(args); 801 return res; 802 } CallNonvirtualObjectMethodList__EtsEnv803 ets_object CallNonvirtualObjectMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 804 { 805 return nativeInterface->CallNonvirtualObjectMethodList(this, obj, cls, method_id, args); 806 } CallNonvirtualObjectMethodArray__EtsEnv807 ets_object CallNonvirtualObjectMethodArray(ets_object obj, ets_class cls, ets_method method_id, 808 const ets_value *args) 809 { 810 return nativeInterface->CallNonvirtualObjectMethodArray(this, obj, cls, method_id, args); 811 } CallNonvirtualBooleanMethod__EtsEnv812 ets_boolean CallNonvirtualBooleanMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 813 { 814 va_list args; 815 va_start(args, method_id); 816 ets_boolean res = nativeInterface->CallNonvirtualBooleanMethodList(this, obj, cls, method_id, args); 817 va_end(args); 818 return res; 819 } CallNonvirtualBooleanMethodList__EtsEnv820 ets_boolean CallNonvirtualBooleanMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 821 { 822 return nativeInterface->CallNonvirtualBooleanMethodList(this, obj, cls, method_id, args); 823 } CallNonvirtualBooleanMethodArray__EtsEnv824 ets_boolean CallNonvirtualBooleanMethodArray(ets_object obj, ets_class cls, ets_method method_id, 825 const ets_value *args) 826 { 827 return nativeInterface->CallNonvirtualBooleanMethodArray(this, obj, cls, method_id, args); 828 } CallNonvirtualByteMethod__EtsEnv829 ets_byte CallNonvirtualByteMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 830 { 831 va_list args; 832 va_start(args, method_id); 833 ets_byte res = nativeInterface->CallNonvirtualByteMethodList(this, obj, cls, method_id, args); 834 va_end(args); 835 return res; 836 } CallNonvirtualByteMethodList__EtsEnv837 ets_byte CallNonvirtualByteMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 838 { 839 return nativeInterface->CallNonvirtualByteMethodList(this, obj, cls, method_id, args); 840 } CallNonvirtualByteMethodArray__EtsEnv841 ets_byte CallNonvirtualByteMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 842 { 843 return nativeInterface->CallNonvirtualByteMethodArray(this, obj, cls, method_id, args); 844 } CallNonvirtualCharMethod__EtsEnv845 ets_char CallNonvirtualCharMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 846 { 847 va_list args; 848 va_start(args, method_id); 849 ets_char res = nativeInterface->CallNonvirtualCharMethodList(this, obj, cls, method_id, args); 850 va_end(args); 851 return res; 852 } CallNonvirtualCharMethodList__EtsEnv853 ets_char CallNonvirtualCharMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 854 { 855 return nativeInterface->CallNonvirtualCharMethodList(this, obj, cls, method_id, args); 856 } CallNonvirtualCharMethodArray__EtsEnv857 ets_char CallNonvirtualCharMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 858 { 859 return nativeInterface->CallNonvirtualCharMethodArray(this, obj, cls, method_id, args); 860 } CallNonvirtualShortMethod__EtsEnv861 ets_short CallNonvirtualShortMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 862 { 863 va_list args; 864 va_start(args, method_id); 865 ets_short res = nativeInterface->CallNonvirtualShortMethodList(this, obj, cls, method_id, args); 866 va_end(args); 867 return res; 868 } CallNonvirtualShortMethodList__EtsEnv869 ets_short CallNonvirtualShortMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 870 { 871 return nativeInterface->CallNonvirtualShortMethodList(this, obj, cls, method_id, args); 872 } CallNonvirtualShortMethodArray__EtsEnv873 ets_short CallNonvirtualShortMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 874 { 875 return nativeInterface->CallNonvirtualShortMethodArray(this, obj, cls, method_id, args); 876 } CallNonvirtualIntMethod__EtsEnv877 ets_int CallNonvirtualIntMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 878 { 879 va_list args; 880 va_start(args, method_id); 881 ets_int res = nativeInterface->CallNonvirtualIntMethodList(this, obj, cls, method_id, args); 882 va_end(args); 883 return res; 884 } CallNonvirtualIntMethodList__EtsEnv885 ets_int CallNonvirtualIntMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 886 { 887 return nativeInterface->CallNonvirtualIntMethodList(this, obj, cls, method_id, args); 888 } CallNonvirtualIntMethodArray__EtsEnv889 ets_int CallNonvirtualIntMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 890 { 891 return nativeInterface->CallNonvirtualIntMethodArray(this, obj, cls, method_id, args); 892 } CallNonvirtualLongMethod__EtsEnv893 ets_long CallNonvirtualLongMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 894 { 895 va_list args; 896 va_start(args, method_id); 897 ets_long res = nativeInterface->CallNonvirtualLongMethodList(this, obj, cls, method_id, args); 898 va_end(args); 899 return res; 900 } CallNonvirtualLongMethodList__EtsEnv901 ets_long CallNonvirtualLongMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 902 { 903 return nativeInterface->CallNonvirtualLongMethodList(this, obj, cls, method_id, args); 904 } CallNonvirtualLongMethodArray__EtsEnv905 ets_long CallNonvirtualLongMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 906 { 907 return nativeInterface->CallNonvirtualLongMethodArray(this, obj, cls, method_id, args); 908 } CallNonvirtualFloatMethod__EtsEnv909 ets_float CallNonvirtualFloatMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 910 { 911 va_list args; 912 va_start(args, method_id); 913 ets_float res = nativeInterface->CallNonvirtualFloatMethodList(this, obj, cls, method_id, args); 914 va_end(args); 915 return res; 916 } CallNonvirtualFloatMethodList__EtsEnv917 ets_float CallNonvirtualFloatMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 918 { 919 return nativeInterface->CallNonvirtualFloatMethodList(this, obj, cls, method_id, args); 920 } CallNonvirtualFloatMethodArray__EtsEnv921 ets_float CallNonvirtualFloatMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 922 { 923 return nativeInterface->CallNonvirtualFloatMethodArray(this, obj, cls, method_id, args); 924 } CallNonvirtualDoubleMethod__EtsEnv925 ets_double CallNonvirtualDoubleMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 926 { 927 va_list args; 928 va_start(args, method_id); 929 ets_double res = nativeInterface->CallNonvirtualDoubleMethodList(this, obj, cls, method_id, args); 930 va_end(args); 931 return res; 932 } CallNonvirtualDoubleMethodList__EtsEnv933 ets_double CallNonvirtualDoubleMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 934 { 935 return nativeInterface->CallNonvirtualDoubleMethodList(this, obj, cls, method_id, args); 936 } CallNonvirtualDoubleMethodArray__EtsEnv937 ets_double CallNonvirtualDoubleMethodArray(ets_object obj, ets_class cls, ets_method method_id, 938 const ets_value *args) 939 { 940 return nativeInterface->CallNonvirtualDoubleMethodArray(this, obj, cls, method_id, args); 941 } CallNonvirtualVoidMethod__EtsEnv942 void CallNonvirtualVoidMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 943 { 944 va_list args; 945 va_start(args, method_id); 946 nativeInterface->CallNonvirtualVoidMethodList(this, obj, cls, method_id, args); 947 va_end(args); 948 } CallNonvirtualVoidMethodList__EtsEnv949 void CallNonvirtualVoidMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 950 { 951 nativeInterface->CallNonvirtualVoidMethodList(this, obj, cls, method_id, args); 952 } CallNonvirtualVoidMethodArray__EtsEnv953 void CallNonvirtualVoidMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 954 { 955 nativeInterface->CallNonvirtualVoidMethodArray(this, obj, cls, method_id, args); 956 } Getp_field__EtsEnv957 ets_field Getp_field(ets_class cls, const char *name, const char *sig) 958 { 959 return nativeInterface->Getp_field(this, cls, name, sig); 960 } GetObjectField__EtsEnv961 ets_object GetObjectField(ets_object obj, ets_field p_field) 962 { 963 return nativeInterface->GetObjectField(this, obj, p_field); 964 } GetBooleanField__EtsEnv965 ets_boolean GetBooleanField(ets_object obj, ets_field p_field) 966 { 967 return nativeInterface->GetBooleanField(this, obj, p_field); 968 } GetByteField__EtsEnv969 ets_byte GetByteField(ets_object obj, ets_field p_field) 970 { 971 return nativeInterface->GetByteField(this, obj, p_field); 972 } GetCharField__EtsEnv973 ets_char GetCharField(ets_object obj, ets_field p_field) 974 { 975 return nativeInterface->GetCharField(this, obj, p_field); 976 } GetShortField__EtsEnv977 ets_short GetShortField(ets_object obj, ets_field p_field) 978 { 979 return nativeInterface->GetShortField(this, obj, p_field); 980 } GetIntField__EtsEnv981 ets_int GetIntField(ets_object obj, ets_field p_field) 982 { 983 return nativeInterface->GetIntField(this, obj, p_field); 984 } GetLongField__EtsEnv985 ets_long GetLongField(ets_object obj, ets_field p_field) 986 { 987 return nativeInterface->GetLongField(this, obj, p_field); 988 } GetFloatField__EtsEnv989 ets_float GetFloatField(ets_object obj, ets_field p_field) 990 { 991 return nativeInterface->GetFloatField(this, obj, p_field); 992 } GetDoubleField__EtsEnv993 ets_double GetDoubleField(ets_object obj, ets_field p_field) 994 { 995 return nativeInterface->GetDoubleField(this, obj, p_field); 996 } SetObjectField__EtsEnv997 void SetObjectField(ets_object obj, ets_field p_field, ets_object value) 998 { 999 return nativeInterface->SetObjectField(this, obj, p_field, value); 1000 } SetBooleanField__EtsEnv1001 void SetBooleanField(ets_object obj, ets_field p_field, ets_boolean value) 1002 { 1003 return nativeInterface->SetBooleanField(this, obj, p_field, value); 1004 } SetByteField__EtsEnv1005 void SetByteField(ets_object obj, ets_field p_field, ets_byte value) 1006 { 1007 return nativeInterface->SetByteField(this, obj, p_field, value); 1008 } SetCharField__EtsEnv1009 void SetCharField(ets_object obj, ets_field p_field, ets_char value) 1010 { 1011 return nativeInterface->SetCharField(this, obj, p_field, value); 1012 } SetShortField__EtsEnv1013 void SetShortField(ets_object obj, ets_field p_field, ets_short value) 1014 { 1015 return nativeInterface->SetShortField(this, obj, p_field, value); 1016 } SetIntField__EtsEnv1017 void SetIntField(ets_object obj, ets_field p_field, ets_int value) 1018 { 1019 return nativeInterface->SetIntField(this, obj, p_field, value); 1020 } SetLongField__EtsEnv1021 void SetLongField(ets_object obj, ets_field p_field, ets_long value) 1022 { 1023 return nativeInterface->SetLongField(this, obj, p_field, value); 1024 } SetFloatField__EtsEnv1025 void SetFloatField(ets_object obj, ets_field p_field, ets_float value) 1026 { 1027 return nativeInterface->SetFloatField(this, obj, p_field, value); 1028 } SetDoubleField__EtsEnv1029 void SetDoubleField(ets_object obj, ets_field p_field, ets_double value) 1030 { 1031 return nativeInterface->SetDoubleField(this, obj, p_field, value); 1032 } GetStaticp_method__EtsEnv1033 ets_method GetStaticp_method(ets_class cls, const char *name, const char *sig) 1034 { 1035 return nativeInterface->GetStaticp_method(this, cls, name, sig); 1036 } CallStaticObjectMethod__EtsEnv1037 ets_object CallStaticObjectMethod(ets_class cls, ets_method method_id, ...) 1038 { 1039 va_list args; 1040 va_start(args, method_id); 1041 ets_object res = nativeInterface->CallStaticObjectMethodList(this, cls, method_id, args); 1042 va_end(args); 1043 return res; 1044 } CallStaticObjectMethodList__EtsEnv1045 ets_object CallStaticObjectMethodList(ets_class cls, ets_method method_id, va_list args) 1046 { 1047 return nativeInterface->CallStaticObjectMethodList(this, cls, method_id, args); 1048 } CallStaticObjectMethodArray__EtsEnv1049 ets_object CallStaticObjectMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1050 { 1051 return nativeInterface->CallStaticObjectMethodArray(this, cls, method_id, args); 1052 } CallStaticBooleanMethod__EtsEnv1053 ets_boolean CallStaticBooleanMethod(ets_class cls, ets_method method_id, ...) 1054 { 1055 va_list args; 1056 va_start(args, method_id); 1057 ets_boolean res = nativeInterface->CallStaticBooleanMethodList(this, cls, method_id, args); 1058 va_end(args); 1059 return res; 1060 } CallStaticBooleanMethodList__EtsEnv1061 ets_boolean CallStaticBooleanMethodList(ets_class cls, ets_method method_id, va_list args) 1062 { 1063 return nativeInterface->CallStaticBooleanMethodList(this, cls, method_id, args); 1064 } CallStaticBooleanMethodArray__EtsEnv1065 ets_boolean CallStaticBooleanMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1066 { 1067 return nativeInterface->CallStaticBooleanMethodArray(this, cls, method_id, args); 1068 } CallStaticByteMethod__EtsEnv1069 ets_byte CallStaticByteMethod(ets_class cls, ets_method method_id, ...) 1070 { 1071 va_list args; 1072 va_start(args, method_id); 1073 ets_byte res = nativeInterface->CallStaticByteMethodList(this, cls, method_id, args); 1074 va_end(args); 1075 return res; 1076 } CallStaticByteMethodList__EtsEnv1077 ets_byte CallStaticByteMethodList(ets_class cls, ets_method method_id, va_list args) 1078 { 1079 return nativeInterface->CallStaticByteMethodList(this, cls, method_id, args); 1080 } CallStaticByteMethodArray__EtsEnv1081 ets_byte CallStaticByteMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1082 { 1083 return nativeInterface->CallStaticByteMethodArray(this, cls, method_id, args); 1084 } CallStaticCharMethod__EtsEnv1085 ets_char CallStaticCharMethod(ets_class cls, ets_method method_id, ...) 1086 { 1087 va_list args; 1088 va_start(args, method_id); 1089 ets_char res = nativeInterface->CallStaticCharMethodList(this, cls, method_id, args); 1090 va_end(args); 1091 return res; 1092 } CallStaticCharMethodList__EtsEnv1093 ets_char CallStaticCharMethodList(ets_class cls, ets_method method_id, va_list args) 1094 { 1095 return nativeInterface->CallStaticCharMethodList(this, cls, method_id, args); 1096 } CallStaticCharMethodArray__EtsEnv1097 ets_char CallStaticCharMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1098 { 1099 return nativeInterface->CallStaticCharMethodArray(this, cls, method_id, args); 1100 } CallStaticShortMethod__EtsEnv1101 ets_short CallStaticShortMethod(ets_class cls, ets_method method_id, ...) 1102 { 1103 va_list args; 1104 va_start(args, method_id); 1105 ets_short res = nativeInterface->CallStaticShortMethodList(this, cls, method_id, args); 1106 va_end(args); 1107 return res; 1108 } CallStaticShortMethodList__EtsEnv1109 ets_short CallStaticShortMethodList(ets_class cls, ets_method method_id, va_list args) 1110 { 1111 return nativeInterface->CallStaticShortMethodList(this, cls, method_id, args); 1112 } CallStaticShortMethodArray__EtsEnv1113 ets_short CallStaticShortMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1114 { 1115 return nativeInterface->CallStaticShortMethodArray(this, cls, method_id, args); 1116 } CallStaticIntMethod__EtsEnv1117 ets_int CallStaticIntMethod(ets_class cls, ets_method method_id, ...) 1118 { 1119 va_list args; 1120 va_start(args, method_id); 1121 ets_int res = nativeInterface->CallStaticIntMethodList(this, cls, method_id, args); 1122 va_end(args); 1123 return res; 1124 } CallStaticIntMethodList__EtsEnv1125 ets_int CallStaticIntMethodList(ets_class cls, ets_method method_id, va_list args) 1126 { 1127 return nativeInterface->CallStaticIntMethodList(this, cls, method_id, args); 1128 } CallStaticIntMethodArray__EtsEnv1129 ets_int CallStaticIntMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1130 { 1131 return nativeInterface->CallStaticIntMethodArray(this, cls, method_id, args); 1132 } CallStaticLongMethod__EtsEnv1133 ets_long CallStaticLongMethod(ets_class cls, ets_method method_id, ...) 1134 { 1135 va_list args; 1136 va_start(args, method_id); 1137 ets_long res = nativeInterface->CallStaticLongMethodList(this, cls, method_id, args); 1138 va_end(args); 1139 return res; 1140 } CallStaticLongMethodList__EtsEnv1141 ets_long CallStaticLongMethodList(ets_class cls, ets_method method_id, va_list args) 1142 { 1143 return nativeInterface->CallStaticLongMethodList(this, cls, method_id, args); 1144 } CallStaticLongMethodArray__EtsEnv1145 ets_long CallStaticLongMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1146 { 1147 return nativeInterface->CallStaticLongMethodArray(this, cls, method_id, args); 1148 } CallStaticFloatMethod__EtsEnv1149 ets_float CallStaticFloatMethod(ets_class cls, ets_method method_id, ...) 1150 { 1151 va_list args; 1152 va_start(args, method_id); 1153 ets_float res = nativeInterface->CallStaticFloatMethodList(this, cls, method_id, args); 1154 va_end(args); 1155 return res; 1156 } CallStaticFloatMethodList__EtsEnv1157 ets_float CallStaticFloatMethodList(ets_class cls, ets_method method_id, va_list args) 1158 { 1159 return nativeInterface->CallStaticFloatMethodList(this, cls, method_id, args); 1160 } CallStaticFloatMethodArray__EtsEnv1161 ets_float CallStaticFloatMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1162 { 1163 return nativeInterface->CallStaticFloatMethodArray(this, cls, method_id, args); 1164 } CallStaticDoubleMethod__EtsEnv1165 ets_double CallStaticDoubleMethod(ets_class cls, ets_method method_id, ...) 1166 { 1167 va_list args; 1168 va_start(args, method_id); 1169 ets_double res = nativeInterface->CallStaticDoubleMethodList(this, cls, method_id, args); 1170 va_end(args); 1171 return res; 1172 } CallStaticDoubleMethodList__EtsEnv1173 ets_double CallStaticDoubleMethodList(ets_class cls, ets_method method_id, va_list args) 1174 { 1175 return nativeInterface->CallStaticDoubleMethodList(this, cls, method_id, args); 1176 } CallStaticDoubleMethodArray__EtsEnv1177 ets_double CallStaticDoubleMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1178 { 1179 return nativeInterface->CallStaticDoubleMethodArray(this, cls, method_id, args); 1180 } CallStaticVoidMethod__EtsEnv1181 void CallStaticVoidMethod(ets_class cls, ets_method method_id, ...) 1182 { 1183 va_list args; 1184 va_start(args, method_id); 1185 nativeInterface->CallStaticVoidMethodList(this, cls, method_id, args); 1186 va_end(args); 1187 } CallStaticVoidMethodList__EtsEnv1188 void CallStaticVoidMethodList(ets_class cls, ets_method method_id, va_list args) 1189 { 1190 nativeInterface->CallStaticVoidMethodList(this, cls, method_id, args); 1191 } CallStaticVoidMethodArray__EtsEnv1192 void CallStaticVoidMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1193 { 1194 nativeInterface->CallStaticVoidMethodArray(this, cls, method_id, args); 1195 } GetStaticp_field__EtsEnv1196 ets_field GetStaticp_field(ets_class cls, const char *name, const char *sig) 1197 { 1198 return nativeInterface->GetStaticp_field(this, cls, name, sig); 1199 } GetStaticObjectField__EtsEnv1200 ets_object GetStaticObjectField(ets_class cls, ets_field p_field) 1201 { 1202 return nativeInterface->GetStaticObjectField(this, cls, p_field); 1203 } GetStaticBooleanField__EtsEnv1204 ets_boolean GetStaticBooleanField(ets_class cls, ets_field p_field) 1205 { 1206 return nativeInterface->GetStaticBooleanField(this, cls, p_field); 1207 } GetStaticByteField__EtsEnv1208 ets_byte GetStaticByteField(ets_class cls, ets_field p_field) 1209 { 1210 return nativeInterface->GetStaticByteField(this, cls, p_field); 1211 } GetStaticCharField__EtsEnv1212 ets_char GetStaticCharField(ets_class cls, ets_field p_field) 1213 { 1214 return nativeInterface->GetStaticCharField(this, cls, p_field); 1215 } GetStaticShortField__EtsEnv1216 ets_short GetStaticShortField(ets_class cls, ets_field p_field) 1217 { 1218 return nativeInterface->GetStaticShortField(this, cls, p_field); 1219 } GetStaticIntField__EtsEnv1220 ets_int GetStaticIntField(ets_class cls, ets_field p_field) 1221 { 1222 return nativeInterface->GetStaticIntField(this, cls, p_field); 1223 } GetStaticLongField__EtsEnv1224 ets_long GetStaticLongField(ets_class cls, ets_field p_field) 1225 { 1226 return nativeInterface->GetStaticLongField(this, cls, p_field); 1227 } GetStaticFloatField__EtsEnv1228 ets_float GetStaticFloatField(ets_class cls, ets_field p_field) 1229 { 1230 return nativeInterface->GetStaticFloatField(this, cls, p_field); 1231 } GetStaticDoubleField__EtsEnv1232 ets_double GetStaticDoubleField(ets_class cls, ets_field p_field) 1233 { 1234 return nativeInterface->GetStaticDoubleField(this, cls, p_field); 1235 } SetStaticObjectField__EtsEnv1236 void SetStaticObjectField(ets_class cls, ets_field p_field, ets_object value) 1237 { 1238 return nativeInterface->SetStaticObjectField(this, cls, p_field, value); 1239 } SetStaticBooleanField__EtsEnv1240 void SetStaticBooleanField(ets_class cls, ets_field p_field, ets_boolean value) 1241 { 1242 return nativeInterface->SetStaticBooleanField(this, cls, p_field, value); 1243 } SetStaticByteField__EtsEnv1244 void SetStaticByteField(ets_class cls, ets_field p_field, ets_byte value) 1245 { 1246 return nativeInterface->SetStaticByteField(this, cls, p_field, value); 1247 } SetStaticCharField__EtsEnv1248 void SetStaticCharField(ets_class cls, ets_field p_field, ets_char value) 1249 { 1250 return nativeInterface->SetStaticCharField(this, cls, p_field, value); 1251 } SetStaticShortField__EtsEnv1252 void SetStaticShortField(ets_class cls, ets_field p_field, ets_short value) 1253 { 1254 return nativeInterface->SetStaticShortField(this, cls, p_field, value); 1255 } SetStaticIntField__EtsEnv1256 void SetStaticIntField(ets_class cls, ets_field p_field, ets_int value) 1257 { 1258 return nativeInterface->SetStaticIntField(this, cls, p_field, value); 1259 } SetStaticLongField__EtsEnv1260 void SetStaticLongField(ets_class cls, ets_field p_field, ets_long value) 1261 { 1262 return nativeInterface->SetStaticLongField(this, cls, p_field, value); 1263 } SetStaticFloatField__EtsEnv1264 void SetStaticFloatField(ets_class cls, ets_field p_field, ets_float value) 1265 { 1266 return nativeInterface->SetStaticFloatField(this, cls, p_field, value); 1267 } SetStaticDoubleField__EtsEnv1268 void SetStaticDoubleField(ets_class cls, ets_field p_field, ets_double value) 1269 { 1270 return nativeInterface->SetStaticDoubleField(this, cls, p_field, value); 1271 } NewString__EtsEnv1272 ets_string NewString(const ets_char *unicode_chars, ets_size len) 1273 { 1274 return nativeInterface->NewString(this, unicode_chars, len); 1275 } GetStringLength__EtsEnv1276 ets_size GetStringLength(ets_string string) 1277 { 1278 return nativeInterface->GetStringLength(this, string); 1279 } GetStringChars__EtsEnv1280 const ets_char *GetStringChars(ets_string string, ets_boolean *is_copy) 1281 { 1282 return nativeInterface->GetStringChars(this, string, is_copy); 1283 } ReleaseStringChars__EtsEnv1284 void ReleaseStringChars(ets_string string, const ets_char *chars) 1285 { 1286 nativeInterface->ReleaseStringChars(this, string, chars); 1287 } NewStringUTF__EtsEnv1288 ets_string NewStringUTF(const char *bytes) 1289 { 1290 return nativeInterface->NewStringUTF(this, bytes); 1291 } GetStringUTFLength__EtsEnv1292 ets_size GetStringUTFLength(ets_string string) 1293 { 1294 return nativeInterface->GetStringUTFLength(this, string); 1295 } GetStringUTFChars__EtsEnv1296 const char *GetStringUTFChars(ets_string string, ets_boolean *is_copy) 1297 { 1298 return nativeInterface->GetStringUTFChars(this, string, is_copy); 1299 } ReleaseStringUTFChars__EtsEnv1300 void ReleaseStringUTFChars(ets_string string, const char *chars) 1301 { 1302 nativeInterface->ReleaseStringUTFChars(this, string, chars); 1303 } GetArrayLength__EtsEnv1304 ets_size GetArrayLength(ets_array array) 1305 { 1306 return nativeInterface->GetArrayLength(this, array); 1307 } NewObjectsArray__EtsEnv1308 ets_objectArray NewObjectsArray(ets_size length, ets_class element_class, ets_object initial_element) 1309 { 1310 return nativeInterface->NewObjectsArray(this, length, element_class, initial_element); 1311 } GetObjectArrayElement__EtsEnv1312 ets_object GetObjectArrayElement(ets_objectArray array, ets_size index) 1313 { 1314 return nativeInterface->GetObjectArrayElement(this, array, index); 1315 } 1316 SetObjectArrayElement__EtsEnv1317 void SetObjectArrayElement(ets_objectArray array, ets_size index, ets_object value) 1318 { 1319 nativeInterface->SetObjectArrayElement(this, array, index, value); 1320 } 1321 1322 // SetObjectArrayElement, NewBooleanArray__EtsEnv1323 ets_booleanArray NewBooleanArray(ets_size length) 1324 { 1325 return nativeInterface->NewBooleanArray(this, length); 1326 } NewByteArray__EtsEnv1327 ets_byteArray NewByteArray(ets_size length) 1328 { 1329 return nativeInterface->NewByteArray(this, length); 1330 } NewCharArray__EtsEnv1331 ets_charArray NewCharArray(ets_size length) 1332 { 1333 return nativeInterface->NewCharArray(this, length); 1334 } NewShortArray__EtsEnv1335 ets_shortArray NewShortArray(ets_size length) 1336 { 1337 return nativeInterface->NewShortArray(this, length); 1338 } NewIntArray__EtsEnv1339 ets_intArray NewIntArray(ets_size length) 1340 { 1341 return nativeInterface->NewIntArray(this, length); 1342 } NewLongArray__EtsEnv1343 ets_longArray NewLongArray(ets_size length) 1344 { 1345 return nativeInterface->NewLongArray(this, length); 1346 } NewFloatArray__EtsEnv1347 ets_floatArray NewFloatArray(ets_size length) 1348 { 1349 return nativeInterface->NewFloatArray(this, length); 1350 } NewDoubleArray__EtsEnv1351 ets_doubleArray NewDoubleArray(ets_size length) 1352 { 1353 return nativeInterface->NewDoubleArray(this, length); 1354 } PinBooleanArray__EtsEnv1355 ets_boolean *PinBooleanArray(ets_booleanArray array) 1356 { 1357 return nativeInterface->PinBooleanArray(this, array); 1358 } PinByteArray__EtsEnv1359 ets_byte *PinByteArray(ets_byteArray array) 1360 { 1361 return nativeInterface->PinByteArray(this, array); 1362 } PinCharArray__EtsEnv1363 ets_char *PinCharArray(ets_charArray array) 1364 { 1365 return nativeInterface->PinCharArray(this, array); 1366 } PinShortArray__EtsEnv1367 ets_short *PinShortArray(ets_shortArray array) 1368 { 1369 return nativeInterface->PinShortArray(this, array); 1370 } PinIntArray__EtsEnv1371 ets_int *PinIntArray(ets_intArray array) 1372 { 1373 return nativeInterface->PinIntArray(this, array); 1374 } PinLongArray__EtsEnv1375 ets_long *PinLongArray(ets_longArray array) 1376 { 1377 return nativeInterface->PinLongArray(this, array); 1378 } PinFloatArray__EtsEnv1379 ets_float *PinFloatArray(ets_floatArray array) 1380 { 1381 return nativeInterface->PinFloatArray(this, array); 1382 } PinDoubleArray__EtsEnv1383 ets_double *PinDoubleArray(ets_doubleArray array) 1384 { 1385 return nativeInterface->PinDoubleArray(this, array); 1386 } UnpinBooleanArray__EtsEnv1387 void UnpinBooleanArray(ets_booleanArray array) 1388 { 1389 return nativeInterface->UnpinBooleanArray(this, array); 1390 } UnpinByteArray__EtsEnv1391 void UnpinByteArray(ets_byteArray array) 1392 { 1393 return nativeInterface->UnpinByteArray(this, array); 1394 } UnpinCharArray__EtsEnv1395 void UnpinCharArray(ets_charArray array) 1396 { 1397 return nativeInterface->UnpinCharArray(this, array); 1398 } UnpinShortArray__EtsEnv1399 void UnpinShortArray(ets_shortArray array) 1400 { 1401 return nativeInterface->UnpinShortArray(this, array); 1402 } UnpinIntArray__EtsEnv1403 void UnpinIntArray(ets_intArray array) 1404 { 1405 return nativeInterface->UnpinIntArray(this, array); 1406 } UnpinLongArray__EtsEnv1407 void UnpinLongArray(ets_longArray array) 1408 { 1409 return nativeInterface->UnpinLongArray(this, array); 1410 } UnpinFloatArray__EtsEnv1411 void UnpinFloatArray(ets_floatArray array) 1412 { 1413 return nativeInterface->UnpinFloatArray(this, array); 1414 } UnpinDoubleArray__EtsEnv1415 void UnpinDoubleArray(ets_doubleArray array) 1416 { 1417 return nativeInterface->UnpinDoubleArray(this, array); 1418 } GetBooleanArrayRegion__EtsEnv1419 void GetBooleanArrayRegion(ets_booleanArray array, ets_size start, ets_size len, ets_boolean *buf) 1420 { 1421 return nativeInterface->GetBooleanArrayRegion(this, array, start, len, buf); 1422 } GetByteArrayRegion__EtsEnv1423 void GetByteArrayRegion(ets_byteArray array, ets_size start, ets_size len, ets_byte *buf) 1424 { 1425 return nativeInterface->GetByteArrayRegion(this, array, start, len, buf); 1426 } GetCharArrayRegion__EtsEnv1427 void GetCharArrayRegion(ets_charArray array, ets_size start, ets_size len, ets_char *buf) 1428 { 1429 return nativeInterface->GetCharArrayRegion(this, array, start, len, buf); 1430 } GetShortArrayRegion__EtsEnv1431 void GetShortArrayRegion(ets_shortArray array, ets_size start, ets_size len, ets_short *buf) 1432 { 1433 return nativeInterface->GetShortArrayRegion(this, array, start, len, buf); 1434 } GetIntArrayRegion__EtsEnv1435 void GetIntArrayRegion(ets_intArray array, ets_size start, ets_size len, ets_int *buf) 1436 { 1437 return nativeInterface->GetIntArrayRegion(this, array, start, len, buf); 1438 } GetLongArrayRegion__EtsEnv1439 void GetLongArrayRegion(ets_longArray array, ets_size start, ets_size len, ets_long *buf) 1440 { 1441 return nativeInterface->GetLongArrayRegion(this, array, start, len, buf); 1442 } GetFloatArrayRegion__EtsEnv1443 void GetFloatArrayRegion(ets_floatArray array, ets_size start, ets_size len, ets_float *buf) 1444 { 1445 return nativeInterface->GetFloatArrayRegion(this, array, start, len, buf); 1446 } GetDoubleArrayRegion__EtsEnv1447 void GetDoubleArrayRegion(ets_doubleArray array, ets_size start, ets_size len, ets_double *buf) 1448 { 1449 return nativeInterface->GetDoubleArrayRegion(this, array, start, len, buf); 1450 } SetBooleanArrayRegion__EtsEnv1451 void SetBooleanArrayRegion(ets_booleanArray array, ets_size start, ets_size length, const ets_boolean *buf) 1452 { 1453 nativeInterface->SetBooleanArrayRegion(this, array, start, length, buf); 1454 } SetByteArrayRegion__EtsEnv1455 void SetByteArrayRegion(ets_byteArray array, ets_size start, ets_size length, const ets_byte *buf) 1456 { 1457 nativeInterface->SetByteArrayRegion(this, array, start, length, buf); 1458 } SetCharArrayRegion__EtsEnv1459 void SetCharArrayRegion(ets_charArray array, ets_size start, ets_size length, const ets_char *buf) 1460 { 1461 nativeInterface->SetCharArrayRegion(this, array, start, length, buf); 1462 } SetShortArrayRegion__EtsEnv1463 void SetShortArrayRegion(ets_shortArray array, ets_size start, ets_size length, const ets_short *buf) 1464 { 1465 nativeInterface->SetShortArrayRegion(this, array, start, length, buf); 1466 } SetIntArrayRegion__EtsEnv1467 void SetIntArrayRegion(ets_intArray array, ets_size start, ets_size length, const ets_int *buf) 1468 { 1469 nativeInterface->SetIntArrayRegion(this, array, start, length, buf); 1470 } SetLongArrayRegion__EtsEnv1471 void SetLongArrayRegion(ets_longArray array, ets_size start, ets_size length, const ets_long *buf) 1472 { 1473 nativeInterface->SetLongArrayRegion(this, array, start, length, buf); 1474 } SetFloatArrayRegion__EtsEnv1475 void SetFloatArrayRegion(ets_floatArray array, ets_size start, ets_size length, const ets_float *buf) 1476 { 1477 nativeInterface->SetFloatArrayRegion(this, array, start, length, buf); 1478 } SetDoubleArrayRegion__EtsEnv1479 void SetDoubleArrayRegion(ets_doubleArray array, ets_size start, ets_size length, const ets_double *buf) 1480 { 1481 nativeInterface->SetDoubleArrayRegion(this, array, start, length, buf); 1482 } RegisterNatives__EtsEnv1483 ets_int RegisterNatives(ets_class cls, const EtsNativeMethod *methods, ets_int nMethods) 1484 { 1485 return nativeInterface->RegisterNatives(this, cls, methods, nMethods); 1486 } UnregisterNatives__EtsEnv1487 ets_int UnregisterNatives(ets_class cls) 1488 { 1489 return nativeInterface->UnregisterNatives(this, cls); 1490 } GetEtsVM__EtsEnv1491 ets_int GetEtsVM(EtsVM **vm) 1492 { 1493 return nativeInterface->GetEtsVM(this, vm); 1494 } GetStringRegion__EtsEnv1495 void GetStringRegion(ets_string str, ets_size start, ets_size len, ets_char *buf) 1496 { 1497 nativeInterface->GetStringRegion(this, str, start, len, buf); 1498 } GetStringUTFRegion__EtsEnv1499 void GetStringUTFRegion(ets_string str, ets_size start, ets_size len, char *buf) 1500 { 1501 nativeInterface->GetStringUTFRegion(this, str, start, len, buf); 1502 } NewWeakGlobalRef__EtsEnv1503 ets_weak NewWeakGlobalRef(ets_object obj) 1504 { 1505 return nativeInterface->NewWeakGlobalRef(this, obj); 1506 } DeleteWeakGlobalRef__EtsEnv1507 void DeleteWeakGlobalRef(ets_weak obj) 1508 { 1509 nativeInterface->DeleteWeakGlobalRef(this, obj); 1510 } ErrorCheck__EtsEnv1511 ets_boolean ErrorCheck() 1512 { 1513 return nativeInterface->ErrorCheck(this); 1514 } 1515 // NewDirectByteBuffer, 1516 // GetDirectBufferAddress, 1517 // GetDirectBufferCapacity, GetObjectRefType__EtsEnv1518 ets_objectRefType GetObjectRefType(ets_object obj) 1519 { 1520 return nativeInterface->GetObjectRefType(this, obj); 1521 } 1522 1523 // Promise PromiseCreate__EtsEnv1524 ets_status PromiseCreate(ets_deferred *deferred, ets_object *promise) 1525 { 1526 return nativeInterface->PromiseCreate(this, deferred, promise); 1527 } DeferredResolve__EtsEnv1528 ets_status DeferredResolve(ets_deferred deferred, ets_object resolution) 1529 { 1530 return nativeInterface->DeferredResolve(this, deferred, resolution); 1531 } DeferredReject__EtsEnv1532 ets_status DeferredReject(ets_deferred deferred, ets_object rejection) 1533 { 1534 return nativeInterface->DeferredReject(this, deferred, rejection); 1535 } 1536 #endif 1537 }; 1538 1539 // NOLINTEND(modernize-use-using, readability-identifier-naming, cppcoreguidelines-pro-type-vararg) 1540 1541 #endif // PANDA_RUNTIME_INTEROP_ETS_NAPI_H 1542