1 /** 2 * Copyright (c) 2021-2025 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 <cstddef> 23 #include <cstdint> 24 #include <cstdarg> 25 #else 26 #include <stddef.h> 27 #include <stdint.h> 28 #include <stdarg.h> 29 #endif 30 31 // NOLINTBEGIN(cppcoreguidelines-macro-usage) 32 33 // Version Constants 34 #define ETS_NAPI_VERSION_1_0 0x00010000 35 36 // General return value constants 37 #define ETS_OK 0 // success 38 #define ETS_ERR (-1) // unknown error 39 #define ETS_ERR_VER (-2) // ETS version error 40 #define ETS_ERR_NOMEM (-3) // not enough memory 41 #define ETS_ERR_EXIST (-4) // VM already created 42 #define ETS_ERR_INVAL (-5) // invalid arguments 43 44 // Boolean Constants 45 #define ETS_FALSE 0 46 #define ETS_TRUE 1 47 48 // Mode Constants 49 #define ETS_COMMIT 1 50 #define ETS_ABORT 2 51 52 // NOLINTEND(cppcoreguidelines-macro-usage) 53 54 // Primitive Types 55 typedef uint8_t ets_boolean; 56 typedef int8_t ets_byte; 57 typedef uint16_t ets_char; 58 typedef int16_t ets_short; 59 typedef int32_t ets_int; 60 typedef int64_t ets_long; 61 typedef float ets_float; 62 typedef double ets_double; 63 typedef ets_int ets_size; 64 65 // Reference Types 66 #ifdef __cplusplus 67 class __ets_object {}; 68 class __ets_class : public __ets_object {}; 69 class __ets_string : public __ets_object {}; 70 class __ets_array : public __ets_object {}; 71 class __ets_arraybuffer : public __ets_object {}; 72 class __ets_objectArray : public __ets_array {}; 73 class __ets_booleanArray : public __ets_array {}; 74 class __ets_byteArray : public __ets_array {}; 75 class __ets_charArray : public __ets_array {}; 76 class __ets_shortArray : public __ets_array {}; 77 class __ets_intArray : public __ets_array {}; 78 class __ets_longArray : public __ets_array {}; 79 class __ets_floatArray : public __ets_array {}; 80 class __ets_doubleArray : public __ets_array {}; 81 class __ets_error : public __ets_object {}; 82 83 typedef __ets_object *ets_object; 84 typedef __ets_class *ets_class; 85 typedef __ets_string *ets_string; 86 typedef __ets_array *ets_array; 87 typedef __ets_arraybuffer *ets_arraybuffer; 88 typedef __ets_objectArray *ets_objectArray; 89 typedef __ets_booleanArray *ets_booleanArray; 90 typedef __ets_byteArray *ets_byteArray; 91 typedef __ets_charArray *ets_charArray; 92 typedef __ets_shortArray *ets_shortArray; 93 typedef __ets_intArray *ets_intArray; 94 typedef __ets_longArray *ets_longArray; 95 typedef __ets_floatArray *ets_floatArray; 96 typedef __ets_doubleArray *ets_doubleArray; 97 typedef __ets_error *ets_error; 98 typedef __ets_object *ets_weak; 99 100 #else // __cplusplus 101 102 struct __ets_object; 103 typedef struct __ets_object *ets_object; 104 typedef ets_object ets_class; 105 typedef ets_object ets_string; 106 typedef ets_object ets_error; 107 typedef ets_object ets_weak; 108 typedef ets_object ets_array; 109 typedef ets_object ets_arraybuffer; 110 typedef ets_array ets_objectArray; 111 typedef ets_array ets_booleanArray; 112 typedef ets_array ets_byteArray; 113 typedef ets_array ets_charArray; 114 typedef ets_array ets_shortArray; 115 typedef ets_array ets_intArray; 116 typedef ets_array ets_longArray; 117 typedef ets_array ets_floatArray; 118 typedef ets_array ets_doubleArray; 119 #endif // __cplusplus 120 121 struct __ets_deferred; 122 typedef struct __ets_deferred *ets_deferred; 123 124 // Field and Method IDs 125 struct __ets_method; 126 struct __ets_field; 127 typedef struct __ets_method *ets_method; 128 typedef struct __ets_field *ets_field; 129 130 // The Value Type 131 typedef union ets_value { 132 ets_boolean z; 133 ets_byte b; 134 ets_char c; 135 ets_short s; 136 ets_int i; 137 ets_long j; 138 ets_float f; 139 ets_double d; 140 ets_object l; 141 } ets_value; 142 143 // Describe native method by name, signature and function pointer 144 typedef struct { 145 const char *name; 146 const char *signature; 147 void *func; 148 } EtsNativeMethod; 149 150 // The object reference types 151 typedef enum { 152 ETS_INVALID_REF_TYPE = 0, 153 ETS_LOCAL_REF_TYPE = 1, 154 ETS_GLOBAL_REF_TYPE = 2, 155 ETS_WEAK_GLOBAL_REF_TYPE = 3 156 } ets_objectRefType; 157 158 #ifdef __cplusplus 159 typedef struct __EtsVM EtsVM; 160 typedef struct __EtsEnv ets_env; 161 #else 162 typedef const struct ETS_InvokeInterface *EtsVM; 163 typedef const struct ETS_NativeInterface *ets_env; 164 #endif 165 166 // Deprecated types: 167 typedef ets_env EtsEnv; 168 169 typedef void (*EtsFinalize)(void *finalizeData, void *finalizeHint); 170 171 typedef enum { 172 ETS_OKAY, 173 ETS_INVALID_ARG, 174 ETS_GENERIC_FAILURE, 175 ETS_PENDING_EXCEPTION, 176 ETS_DETACHABLE_ARRAYBUFFER_EXPECTED, 177 ETS_INVALID_VERSION, // NOTE(v.cherkashin): This status code doesn't match to napi interface. 178 // Should we probably delete this status code? 179 } ets_status; 180 181 // clang-format off 182 // Interface Function Table 183 struct ETS_NativeInterface { 184 // NOTE(a.urakov): solve the "Array" naming problem 185 ets_int (*GetVersion)(EtsEnv *env); 186 #ifdef ETS_NAPI_DESIGN_FINISHED 187 ets_class (*DefineClass)(EtsEnv *env, const char *name, ets_object loader, const ets_byte *buf, ets_size bufLen); 188 #endif 189 ets_class (*FindClass)(EtsEnv *env, const char *name); 190 #ifdef ETS_NAPI_DESIGN_FINISHED 191 ets_method (*FromReflectedMethod)(EtsEnv *env, ets_object method); 192 ets_field (*FromReflectedField)(EtsEnv *env, ets_object field); 193 ets_object (*ToReflectedMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ets_boolean isStatic); 194 #endif 195 ets_class (*GetSuperclass)(EtsEnv *env, ets_class cls); 196 ets_boolean (*IsAssignableFrom)(EtsEnv *env, ets_class cls1, ets_class cls2); 197 #ifdef ETS_NAPI_DESIGN_FINISHED 198 ets_object (*ToReflectedField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_boolean isStatic); 199 #endif 200 ets_int (*ThrowError)(EtsEnv *env, ets_error obj); 201 ets_int (*ThrowErrorNew)(EtsEnv *env, ets_class cls, const char *message); 202 ets_error (*ErrorOccurred)(EtsEnv *env); 203 void (*ErrorDescribe)(EtsEnv *env); 204 void (*ErrorClear)(EtsEnv *env); 205 void (*FatalError)(EtsEnv *env, const char *message); 206 ets_int (*PushLocalFrame)(EtsEnv *env, ets_int capacity); 207 ets_object (*PopLocalFrame)(EtsEnv *env, ets_object result); 208 ets_object (*NewGlobalRef)(EtsEnv *env, ets_object obj); 209 void (*DeleteGlobalRef)(EtsEnv *env, ets_object globalRef); 210 void (*DeleteLocalRef)(EtsEnv *env, ets_object localRef); 211 ets_boolean (*IsSameObject)(EtsEnv *env, ets_object ref1, ets_object ref2); 212 ets_object (*NewLocalRef)(EtsEnv *env, ets_object ref); 213 ets_int (*EnsureLocalCapacity)(EtsEnv *env, ets_int capacity); 214 ets_object (*AllocObject)(EtsEnv *env, ets_class cls); 215 ets_object (*NewObject)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 216 ets_object (*NewObjectList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 217 ets_object (*NewObjectArray)(EtsEnv *env, ets_class cls, ets_method p_method, const ets_value *args); 218 ets_class (*GetObjectClass)(EtsEnv *env, ets_object obj); 219 ets_boolean (*IsInstanceOf)(EtsEnv *env, ets_object obj, ets_class cls); 220 ets_method (*Getp_method)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 221 ets_object (*CallObjectMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 222 ets_object (*CallObjectMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 223 ets_object (*CallObjectMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 224 ets_boolean (*CallBooleanMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 225 ets_boolean (*CallBooleanMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 226 ets_boolean (*CallBooleanMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 227 ets_byte (*CallByteMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 228 ets_byte (*CallByteMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 229 ets_byte (*CallByteMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 230 ets_char (*CallCharMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 231 ets_char (*CallCharMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 232 ets_char (*CallCharMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 233 ets_short (*CallShortMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 234 ets_short (*CallShortMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 235 ets_short (*CallShortMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 236 ets_int (*CallIntMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 237 ets_int (*CallIntMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 238 ets_int (*CallIntMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 239 ets_long (*CallLongMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 240 ets_long (*CallLongMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 241 ets_long (*CallLongMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 242 ets_float (*CallFloatMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 243 ets_float (*CallFloatMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 244 ets_float (*CallFloatMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 245 ets_double (*CallDoubleMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 246 ets_double (*CallDoubleMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 247 ets_double (*CallDoubleMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 248 void (*CallVoidMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 249 void (*CallVoidMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 250 void (*CallVoidMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 251 252 ets_object (*CallNonvirtualObjectMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 253 ets_object (*CallNonvirtualObjectMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 254 va_list args); 255 ets_object (*CallNonvirtualObjectMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 256 const ets_value *args); 257 ets_boolean (*CallNonvirtualBooleanMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 258 ets_boolean (*CallNonvirtualBooleanMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 259 va_list args); 260 ets_boolean (*CallNonvirtualBooleanMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 261 const ets_value *args); 262 ets_byte (*CallNonvirtualByteMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 263 ets_byte (*CallNonvirtualByteMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 264 va_list args); 265 ets_byte (*CallNonvirtualByteMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 266 const ets_value *args); 267 ets_char (*CallNonvirtualCharMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 268 ets_char (*CallNonvirtualCharMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 269 va_list args); 270 ets_char (*CallNonvirtualCharMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 271 const ets_value *args); 272 ets_short (*CallNonvirtualShortMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 273 ets_short (*CallNonvirtualShortMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 274 va_list args); 275 ets_short (*CallNonvirtualShortMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 276 const ets_value *args); 277 ets_int (*CallNonvirtualIntMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 278 ets_int (*CallNonvirtualIntMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 279 va_list args); 280 ets_int (*CallNonvirtualIntMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 281 const ets_value *args); 282 ets_long (*CallNonvirtualLongMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 283 ets_long (*CallNonvirtualLongMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 284 va_list args); 285 ets_long (*CallNonvirtualLongMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 286 const ets_value *args); 287 ets_float (*CallNonvirtualFloatMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 288 ets_float (*CallNonvirtualFloatMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 289 va_list args); 290 ets_float (*CallNonvirtualFloatMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 291 const ets_value *args); 292 ets_double (*CallNonvirtualDoubleMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 293 ets_double (*CallNonvirtualDoubleMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 294 va_list args); 295 ets_double (*CallNonvirtualDoubleMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 296 const ets_value *args); 297 void (*CallNonvirtualVoidMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 298 void (*CallNonvirtualVoidMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, va_list args); 299 void (*CallNonvirtualVoidMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 300 const ets_value *args); 301 ets_field (*Getp_field)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 302 ets_object (*GetObjectField)(EtsEnv *env, ets_object obj, ets_field p_field); 303 ets_boolean (*GetBooleanField)(EtsEnv *env, ets_object obj, ets_field p_field); 304 ets_byte (*GetByteField)(EtsEnv *env, ets_object obj, ets_field p_field); 305 ets_char (*GetCharField)(EtsEnv *env, ets_object obj, ets_field p_field); 306 ets_short (*GetShortField)(EtsEnv *env, ets_object obj, ets_field p_field); 307 ets_int (*GetIntField)(EtsEnv *env, ets_object obj, ets_field p_field); 308 ets_long (*GetLongField)(EtsEnv *env, ets_object obj, ets_field p_field); 309 ets_float (*GetFloatField)(EtsEnv *env, ets_object obj, ets_field p_field); 310 ets_double (*GetDoubleField)(EtsEnv *env, ets_object obj, ets_field p_field); 311 void (*SetObjectField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_object value); 312 void (*SetBooleanField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_boolean value); 313 void (*SetByteField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_byte value); 314 void (*SetCharField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_char value); 315 void (*SetShortField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_short value); 316 void (*SetIntField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_int value); 317 void (*SetLongField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_long value); 318 void (*SetFloatField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_float value); 319 void (*SetDoubleField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_double value); 320 ets_method (*GetStaticp_method)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 321 ets_object (*CallStaticObjectMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 322 ets_object (*CallStaticObjectMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 323 ets_object (*CallStaticObjectMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 324 ets_boolean (*CallStaticBooleanMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 325 ets_boolean (*CallStaticBooleanMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 326 ets_boolean (*CallStaticBooleanMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 327 ets_byte (*CallStaticByteMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 328 ets_byte (*CallStaticByteMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 329 ets_byte (*CallStaticByteMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 330 ets_char (*CallStaticCharMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 331 ets_char (*CallStaticCharMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 332 ets_char (*CallStaticCharMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 333 ets_short (*CallStaticShortMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 334 ets_short (*CallStaticShortMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 335 ets_short (*CallStaticShortMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 336 ets_int (*CallStaticIntMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 337 ets_int (*CallStaticIntMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 338 ets_int (*CallStaticIntMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 339 ets_long (*CallStaticLongMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 340 ets_long (*CallStaticLongMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 341 ets_long (*CallStaticLongMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 342 ets_float (*CallStaticFloatMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 343 ets_float (*CallStaticFloatMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 344 ets_float (*CallStaticFloatMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 345 ets_double (*CallStaticDoubleMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 346 ets_double (*CallStaticDoubleMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 347 ets_double (*CallStaticDoubleMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 348 void (*CallStaticVoidMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 349 void (*CallStaticVoidMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 350 void (*CallStaticVoidMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 351 ets_field (*GetStaticp_field)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 352 ets_object (*GetStaticObjectField)(EtsEnv *env, ets_class cls, ets_field p_field); 353 ets_boolean (*GetStaticBooleanField)(EtsEnv *env, ets_class cls, ets_field p_field); 354 ets_byte (*GetStaticByteField)(EtsEnv *env, ets_class cls, ets_field p_field); 355 ets_char (*GetStaticCharField)(EtsEnv *env, ets_class cls, ets_field p_field); 356 ets_short (*GetStaticShortField)(EtsEnv *env, ets_class cls, ets_field p_field); 357 ets_int (*GetStaticIntField)(EtsEnv *env, ets_class cls, ets_field p_field); 358 ets_long (*GetStaticLongField)(EtsEnv *env, ets_class cls, ets_field p_field); 359 ets_float (*GetStaticFloatField)(EtsEnv *env, ets_class cls, ets_field p_field); 360 ets_double (*GetStaticDoubleField)(EtsEnv *env, ets_class cls, ets_field p_field); 361 void (*SetStaticObjectField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_object value); 362 void (*SetStaticBooleanField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_boolean value); 363 void (*SetStaticByteField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_byte value); 364 void (*SetStaticCharField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_char value); 365 void (*SetStaticShortField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_short value); 366 void (*SetStaticIntField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_int value); 367 void (*SetStaticLongField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_long value); 368 void (*SetStaticFloatField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_float value); 369 void (*SetStaticDoubleField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_double value); 370 ets_string (*NewString)(EtsEnv *env, const ets_char *unicodeChars, ets_size len); 371 ets_size (*GetStringLength)(EtsEnv *env, ets_string string); 372 const ets_char *(*GetStringChars)(EtsEnv *env, ets_string string, ets_boolean *isCopy); 373 void (*ReleaseStringChars)(EtsEnv *env, ets_string string, const ets_char *chars); 374 ets_string (*NewStringUTF)(EtsEnv *env, const char *bytes); 375 ets_size (*GetStringUTFLength)(EtsEnv *env, ets_string string); 376 const char *(*GetStringUTFChars)(EtsEnv *env, ets_string string, ets_boolean *isCopy); 377 void (*ReleaseStringUTFChars)(EtsEnv *env, ets_string string, const char *utf); 378 ets_size (*GetArrayLength)(EtsEnv *env, ets_array array); 379 ets_objectArray (*NewObjectsArray)(EtsEnv *env, ets_size length, ets_class element_class, 380 ets_object initial_element); 381 ets_object (*GetObjectArrayElement)(EtsEnv *env, ets_objectArray array, ets_size index); 382 void (*SetObjectArrayElement)(EtsEnv *env, ets_objectArray array, ets_size index, ets_object value); 383 ets_booleanArray (*NewBooleanArray)(EtsEnv *env, ets_size length); 384 ets_byteArray (*NewByteArray)(EtsEnv *env, ets_size length); 385 ets_charArray (*NewCharArray)(EtsEnv *env, ets_size length); 386 ets_shortArray (*NewShortArray)(EtsEnv *env, ets_size length); 387 ets_intArray (*NewIntArray)(EtsEnv *env, ets_size length); 388 ets_longArray (*NewLongArray)(EtsEnv *env, ets_size length); 389 ets_floatArray (*NewFloatArray)(EtsEnv *env, ets_size length); 390 ets_doubleArray (*NewDoubleArray)(EtsEnv *env, ets_size length); 391 ets_boolean *(*PinBooleanArray)(EtsEnv *env, ets_booleanArray array); 392 ets_byte *(*PinByteArray)(EtsEnv *env, ets_byteArray array); 393 ets_char *(*PinCharArray)(EtsEnv *env, ets_charArray array); 394 ets_short *(*PinShortArray)(EtsEnv *env, ets_shortArray array); 395 ets_int *(*PinIntArray)(EtsEnv *env, ets_intArray array); 396 ets_long *(*PinLongArray)(EtsEnv *env, ets_longArray array); 397 ets_float *(*PinFloatArray)(EtsEnv *env, ets_floatArray array); 398 ets_double *(*PinDoubleArray)(EtsEnv *env, ets_doubleArray array); 399 void (*UnpinBooleanArray)(EtsEnv *env, ets_booleanArray array); 400 void (*UnpinByteArray)(EtsEnv *env, ets_byteArray array); 401 void (*UnpinCharArray)(EtsEnv *env, ets_charArray array); 402 void (*UnpinShortArray)(EtsEnv *env, ets_shortArray array); 403 void (*UnpinIntArray)(EtsEnv *env, ets_intArray array); 404 void (*UnpinLongArray)(EtsEnv *env, ets_longArray array); 405 void (*UnpinFloatArray)(EtsEnv *env, ets_floatArray array); 406 void (*UnpinDoubleArray)(EtsEnv *env, ets_doubleArray array); 407 void (*GetBooleanArrayRegion)(EtsEnv *env, ets_booleanArray array, ets_size start, ets_size len, ets_boolean *buf); 408 void (*GetByteArrayRegion)(EtsEnv *env, ets_byteArray array, ets_size start, ets_size len, ets_byte *buf); 409 void (*GetCharArrayRegion)(EtsEnv *env, ets_charArray array, ets_size start, ets_size len, ets_char *buf); 410 void (*GetShortArrayRegion)(EtsEnv *env, ets_shortArray array, ets_size start, ets_size len, ets_short *buf); 411 void (*GetIntArrayRegion)(EtsEnv *env, ets_intArray array, ets_size start, ets_size len, ets_int *buf); 412 void (*GetLongArrayRegion)(EtsEnv *env, ets_longArray array, ets_size start, ets_size len, ets_long *buf); 413 void (*GetFloatArrayRegion)(EtsEnv *env, ets_floatArray array, ets_size start, ets_size len, ets_float *buf); 414 void (*GetDoubleArrayRegion)(EtsEnv *env, ets_doubleArray array, ets_size start, ets_size len, ets_double *buf); 415 void (*SetBooleanArrayRegion)(EtsEnv *env, ets_booleanArray array, ets_size start, ets_size len, 416 const ets_boolean *buf); 417 void (*SetByteArrayRegion)(EtsEnv *env, ets_byteArray array, ets_size start, ets_size len, const ets_byte *buf); 418 void (*SetCharArrayRegion)(EtsEnv *env, ets_charArray array, ets_size start, ets_size len, const ets_char *buf); 419 void (*SetShortArrayRegion)(EtsEnv *env, ets_shortArray array, ets_size start, ets_size len, const ets_short *buf); 420 void (*SetIntArrayRegion)(EtsEnv *env, ets_intArray array, ets_size start, ets_size len, const ets_int *buf); 421 void (*SetLongArrayRegion)(EtsEnv *env, ets_longArray array, ets_size start, ets_size len, const ets_long *buf); 422 void (*SetFloatArrayRegion)(EtsEnv *env, ets_floatArray array, ets_size start, ets_size len, const ets_float *buf); 423 void (*SetDoubleArrayRegion)(EtsEnv *env, ets_doubleArray array, ets_size start, ets_size len, 424 const ets_double *buf); 425 ets_int (*RegisterNatives)(EtsEnv *env, ets_class cls, const EtsNativeMethod *methods, ets_int nMethods); 426 ets_int (*UnregisterNatives)(EtsEnv *env, ets_class cls); 427 ets_int (*GetEtsVM)(EtsEnv *env, EtsVM **vm); 428 void (*GetStringRegion)(EtsEnv *env, ets_string str, ets_size start, ets_size len, ets_char *buf); 429 void (*GetStringUTFRegion)(EtsEnv *env, ets_string str, ets_size start, ets_size len, char *buf); 430 ets_weak (*NewWeakGlobalRef)(EtsEnv *env, ets_object obj); 431 void (*DeleteWeakGlobalRef)(EtsEnv *env, ets_weak obj); 432 ets_boolean (*ErrorCheck)(EtsEnv *env); 433 #ifdef ETS_NAPI_DESIGN_FINISHED 434 ets_object (*NewDirectByteBuffer)(EtsEnv *env, void *address, ets_long capacity); 435 void *(*GetDirectBufferAddress)(EtsEnv *env, ets_object buf); 436 ets_long (*GetDirectBufferCapacity)(EtsEnv *env, ets_object buf); 437 #endif 438 ets_objectRefType (*GetObjectRefType)(EtsEnv *env, ets_object obj); 439 440 /* 227 methods */ 441 442 // Promise API 443 ets_status (*PromiseCreate)(EtsEnv *env, ets_deferred *deferred, ets_object *promise); 444 ets_status (*DeferredResolve)(EtsEnv *env, ets_deferred deferred, ets_object resolution); 445 ets_status (*DeferredReject)(EtsEnv *env, ets_deferred deferred, ets_object rejection); 446 447 // ArrayBuffer 448 ets_status (*ArrayBufferCreate)(EtsEnv *env, size_t byteLength, void **data, ets_arraybuffer *result); 449 ets_status (*ArrayBufferCreateExternal)(EtsEnv *env, void *externalData, size_t byteLength, 450 EtsFinalize finalizeCb, void *finalizeHint, ets_arraybuffer *result); 451 ets_status (*ArrayBufferGetInfo)(EtsEnv *env, ets_arraybuffer buffer, void **resultData, 452 size_t *resultByteLength); 453 ets_status (*ArrayBufferDetach)(EtsEnv *env, ets_arraybuffer buffer); 454 ets_status (*ArrayBufferIsDetached)(EtsEnv *env, ets_arraybuffer buffer, bool *result); 455 }; 456 // clang-format on 457 458 // Invocation API Functions 459 typedef enum { 460 ETS_LOG_LEVEL, 461 ETS_MOBILE_LOG, 462 ETS_BOOT_FILE, 463 ETS_AOT_FILE, 464 ETS_ARK_FILE, 465 ETS_JIT, 466 ETS_NO_JIT, 467 ETS_AOT, 468 ETS_NO_AOT, 469 ETS_GC_TRIGGER_TYPE, 470 ETS_GC_TYPE, 471 ETS_RUN_GC_IN_PLACE, 472 ETS_INTERPRETER_TYPE, 473 ETS_NATIVE_LIBRARY_PATH, 474 ETS_VERIFICATION_MODE 475 } EtsOptionType; 476 477 typedef struct EtsVMOption { 478 EtsOptionType option; 479 const void *extraInfo; 480 } EtsVMOption; 481 482 typedef struct EtsVMInitArgs { 483 ets_int version; 484 ets_int nOptions; 485 EtsVMOption *options; 486 } EtsVMInitArgs; 487 488 typedef enum { 489 ETS_MOBILE_LOG_LEVEL_UNKNOWN = 0, 490 ETS_MOBILE_LOG_LEVEL_DEFAULT, 491 ETS_MOBILE_LOG_LEVEL_VERBOSE, 492 ETS_MOBILE_LOG_LEVEL_DEBUG, 493 ETS_MOBILE_LOG_LEVEL_INFO, 494 ETS_MOBILE_LOG_LEVEL_WARN, 495 ETS_MOBILE_LOG_LEVEL_ERROR, 496 ETS_MOBILE_LOG_LEVEL_FATAL, 497 ETS_MOBILE_LOG_LEVEL_SILENT 498 } EtsMobileLogggerLevel; 499 500 #ifdef __cplusplus 501 extern "C" { 502 #endif 503 504 #define ETS_EXPORT __attribute__((visibility("default"))) 505 #define ETS_IMPORT 506 #define ETS_CALL 507 508 ETS_EXPORT ets_int ETS_GetDefaultVMInitArgs(EtsVMInitArgs *vmArgs); 509 ETS_EXPORT ets_int ETS_GetCreatedVMs(EtsVM **vmBuf, ets_size bufLen, ets_size *nVms); 510 ETS_EXPORT ets_int ETS_CreateVM(EtsVM **pVm, EtsEnv **pEnv, EtsVMInitArgs *vmArgs); 511 512 #ifdef __cplusplus 513 } 514 #endif 515 516 struct ETS_InvokeInterface { 517 ets_int (*DestroyEtsVM)(EtsVM *vm); 518 ets_int (*GetEnv)(EtsVM *vm, EtsEnv **pEnv, ets_int version); 519 // CC-OFFNXT(G.NAM.03-CPP) project code style 520 ets_int (*AttachThread)(EtsVM *vm, EtsEnv **resultEnv, void **resultJsEnv); 521 ets_int (*DetachThread)(EtsVM *vm); 522 }; 523 524 struct __EtsVM { 525 // NOLINTNEXTLINE(misc-non-private-member-variables-in-classes) 526 const struct ETS_InvokeInterface *invoke_interface; 527 528 #ifdef __cplusplus DestroyEtsVM__EtsVM529 ets_int DestroyEtsVM() 530 { 531 return invoke_interface->DestroyEtsVM(this); 532 } 533 GetEnv__EtsVM534 ets_int GetEnv(EtsEnv **pEnv, ets_int version) 535 { 536 return invoke_interface->GetEnv(this, pEnv, version); 537 } 538 AttachThread__EtsVM539 ets_int AttachThread(EtsEnv **resultEnv, void **resultJsEnv) 540 { 541 return invoke_interface->AttachThread(this, resultEnv, resultJsEnv); 542 } 543 DetachThread__EtsVM544 ets_int DetachThread() 545 { 546 return invoke_interface->DetachThread(this); 547 } 548 #endif 549 }; 550 551 struct __EtsEnv { 552 // NOLINTNEXTLINE(misc-non-private-member-variables-in-classes) 553 const struct ETS_NativeInterface *native_interface; 554 555 #ifdef __cplusplus 556 GetVersion__EtsEnv557 ets_int GetVersion() 558 { 559 return native_interface->GetVersion(this); 560 } 561 // DefineClass, FindClass__EtsEnv562 ets_class FindClass(const char *name) 563 { 564 return native_interface->FindClass(this, name); 565 } 566 // FromReflectedMethod, 567 // FromReflectedField, 568 // ToReflectedMethod, GetSuperclass__EtsEnv569 ets_class GetSuperclass(ets_class cls) 570 { 571 return native_interface->GetSuperclass(this, cls); 572 } IsAssignableFrom__EtsEnv573 ets_boolean IsAssignableFrom(ets_class cls1, ets_class cls2) 574 { 575 return native_interface->IsAssignableFrom(this, cls1, cls2); 576 } 577 // ToReflectedField, ThrowError__EtsEnv578 ets_int ThrowError(ets_error obj) 579 { 580 return native_interface->ThrowError(this, obj); 581 } ThrowErrorNew__EtsEnv582 ets_int ThrowErrorNew(ets_class cls, const char *message) 583 { 584 return native_interface->ThrowErrorNew(this, cls, message); 585 } ErrorOccurred__EtsEnv586 ets_error ErrorOccurred() 587 { 588 return native_interface->ErrorOccurred(this); 589 } ErrorDescribe__EtsEnv590 void ErrorDescribe() 591 { 592 native_interface->ErrorDescribe(this); 593 } ErrorClear__EtsEnv594 void ErrorClear() 595 { 596 native_interface->ErrorClear(this); 597 } FatalError__EtsEnv598 void FatalError(const char *message) 599 { 600 native_interface->FatalError(this, message); 601 } PushLocalFrame__EtsEnv602 ets_int PushLocalFrame(ets_int capacity) 603 { 604 return native_interface->PushLocalFrame(this, capacity); 605 } PopLocalFrame__EtsEnv606 ets_object PopLocalFrame(ets_object result) 607 { 608 return native_interface->PopLocalFrame(this, result); 609 } NewGlobalRef__EtsEnv610 ets_object NewGlobalRef(ets_object obj) 611 { 612 return native_interface->NewGlobalRef(this, obj); 613 } DeleteGlobalRef__EtsEnv614 void DeleteGlobalRef(ets_object globalRef) 615 { 616 native_interface->DeleteGlobalRef(this, globalRef); 617 } DeleteLocalRef__EtsEnv618 void DeleteLocalRef(ets_object localRef) 619 { 620 native_interface->DeleteLocalRef(this, localRef); 621 } IsSameObject__EtsEnv622 ets_boolean IsSameObject(ets_object ref1, ets_object ref2) 623 { 624 return native_interface->IsSameObject(this, ref1, ref2); 625 } NewLocalRef__EtsEnv626 ets_object NewLocalRef(ets_object ref) 627 { 628 return native_interface->NewLocalRef(this, ref); 629 } EnsureLocalCapacity__EtsEnv630 ets_int EnsureLocalCapacity(ets_int capacity) 631 { 632 return native_interface->EnsureLocalCapacity(this, capacity); 633 } AllocObject__EtsEnv634 ets_object AllocObject(ets_class cls) 635 { 636 return native_interface->AllocObject(this, cls); 637 } NewObject__EtsEnv638 ets_object NewObject(ets_class cls, ets_method p_method, ...) 639 { 640 va_list args; 641 va_start(args, p_method); 642 ets_object ret = native_interface->NewObjectList(this, cls, p_method, args); 643 va_end(args); 644 return ret; 645 } NewObjectList__EtsEnv646 ets_object NewObjectList(ets_class cls, ets_method p_method, va_list args) 647 { 648 return native_interface->NewObjectList(this, cls, p_method, args); 649 } NewObjectArray__EtsEnv650 ets_object NewObjectArray(ets_class cls, ets_method p_method, const ets_value *args) 651 { 652 return native_interface->NewObjectArray(this, cls, p_method, args); 653 } GetObjectClass__EtsEnv654 ets_class GetObjectClass(ets_object obj) 655 { 656 return native_interface->GetObjectClass(this, obj); 657 } IsInstanceOf__EtsEnv658 ets_boolean IsInstanceOf(ets_object obj, ets_class cls) 659 { 660 return native_interface->IsInstanceOf(this, obj, cls); 661 } Getp_method__EtsEnv662 ets_method Getp_method(ets_class cls, const char *name, const char *sig) 663 { 664 return native_interface->Getp_method(this, cls, name, sig); 665 } CallObjectMethod__EtsEnv666 ets_object CallObjectMethod(ets_object obj, ets_method method_id, ...) 667 { 668 va_list args; 669 va_start(args, method_id); 670 ets_object res = native_interface->CallObjectMethodList(this, obj, method_id, args); 671 va_end(args); 672 return res; 673 } CallObjectMethodList__EtsEnv674 ets_object CallObjectMethodList(ets_object obj, ets_method method_id, va_list args) 675 { 676 return native_interface->CallObjectMethodList(this, obj, method_id, args); 677 } CallObjectMethodArray__EtsEnv678 ets_object CallObjectMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 679 { 680 return native_interface->CallObjectMethodArray(this, obj, method_id, args); 681 } CallBooleanMethod__EtsEnv682 ets_boolean CallBooleanMethod(ets_object obj, ets_method method_id, ...) 683 { 684 va_list args; 685 va_start(args, method_id); 686 ets_boolean res = native_interface->CallBooleanMethodList(this, obj, method_id, args); 687 va_end(args); 688 return res; 689 } CallBooleanMethodList__EtsEnv690 ets_boolean CallBooleanMethodList(ets_object obj, ets_method method_id, va_list args) 691 { 692 return native_interface->CallBooleanMethodList(this, obj, method_id, args); 693 } CallBooleanMethodArray__EtsEnv694 ets_boolean CallBooleanMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 695 { 696 return native_interface->CallBooleanMethodArray(this, obj, method_id, args); 697 } CallByteMethod__EtsEnv698 ets_byte CallByteMethod(ets_object obj, ets_method method_id, ...) 699 { 700 va_list args; 701 va_start(args, method_id); 702 ets_byte res = native_interface->CallByteMethodList(this, obj, method_id, args); 703 va_end(args); 704 return res; 705 } CallByteMethodList__EtsEnv706 ets_byte CallByteMethodList(ets_object obj, ets_method method_id, va_list args) 707 { 708 return native_interface->CallByteMethodList(this, obj, method_id, args); 709 } CallByteMethodArray__EtsEnv710 ets_byte CallByteMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 711 { 712 return native_interface->CallByteMethodArray(this, obj, method_id, args); 713 } CallCharMethod__EtsEnv714 ets_char CallCharMethod(ets_object obj, ets_method method_id, ...) 715 { 716 va_list args; 717 va_start(args, method_id); 718 ets_char res = native_interface->CallCharMethodList(this, obj, method_id, args); 719 va_end(args); 720 return res; 721 } CallCharMethodList__EtsEnv722 ets_char CallCharMethodList(ets_object obj, ets_method method_id, va_list args) 723 { 724 return native_interface->CallCharMethodList(this, obj, method_id, args); 725 } CallCharMethodArray__EtsEnv726 ets_char CallCharMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 727 { 728 return native_interface->CallCharMethodArray(this, obj, method_id, args); 729 } CallShortMethod__EtsEnv730 ets_short CallShortMethod(ets_object obj, ets_method method_id, ...) 731 { 732 va_list args; 733 va_start(args, method_id); 734 ets_short res = native_interface->CallShortMethodList(this, obj, method_id, args); 735 va_end(args); 736 return res; 737 } CallShortMethodList__EtsEnv738 ets_short CallShortMethodList(ets_object obj, ets_method method_id, va_list args) 739 { 740 return native_interface->CallShortMethodList(this, obj, method_id, args); 741 } CallShortMethodArray__EtsEnv742 ets_short CallShortMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 743 { 744 return native_interface->CallShortMethodArray(this, obj, method_id, args); 745 } CallIntMethod__EtsEnv746 ets_int CallIntMethod(ets_object obj, ets_method method_id, ...) 747 { 748 va_list args; 749 va_start(args, method_id); 750 ets_int res = native_interface->CallIntMethodList(this, obj, method_id, args); 751 va_end(args); 752 return res; 753 } CallIntMethodList__EtsEnv754 ets_int CallIntMethodList(ets_object obj, ets_method method_id, va_list args) 755 { 756 return native_interface->CallIntMethodList(this, obj, method_id, args); 757 } CallIntMethodArray__EtsEnv758 ets_int CallIntMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 759 { 760 return native_interface->CallIntMethodArray(this, obj, method_id, args); 761 } CallLongMethod__EtsEnv762 ets_long CallLongMethod(ets_object obj, ets_method method_id, ...) 763 { 764 va_list args; 765 va_start(args, method_id); 766 ets_long res = native_interface->CallLongMethodList(this, obj, method_id, args); 767 va_end(args); 768 return res; 769 } CallLongMethodList__EtsEnv770 ets_long CallLongMethodList(ets_object obj, ets_method method_id, va_list args) 771 { 772 return native_interface->CallLongMethodList(this, obj, method_id, args); 773 } CallLongMethodArray__EtsEnv774 ets_long CallLongMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 775 { 776 return native_interface->CallLongMethodArray(this, obj, method_id, args); 777 } CallFloatMethod__EtsEnv778 ets_float CallFloatMethod(ets_object obj, ets_method method_id, ...) 779 { 780 va_list args; 781 va_start(args, method_id); 782 ets_float res = native_interface->CallFloatMethodList(this, obj, method_id, args); 783 va_end(args); 784 return res; 785 } CallFloatMethodList__EtsEnv786 ets_float CallFloatMethodList(ets_object obj, ets_method method_id, va_list args) 787 { 788 return native_interface->CallFloatMethodList(this, obj, method_id, args); 789 } CallFloatMethodArray__EtsEnv790 ets_float CallFloatMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 791 { 792 return native_interface->CallFloatMethodArray(this, obj, method_id, args); 793 } CallDoubleMethod__EtsEnv794 ets_double CallDoubleMethod(ets_object obj, ets_method method_id, ...) 795 { 796 va_list args; 797 va_start(args, method_id); 798 ets_double res = native_interface->CallDoubleMethodList(this, obj, method_id, args); 799 va_end(args); 800 return res; 801 } CallDoubleMethodList__EtsEnv802 ets_double CallDoubleMethodList(ets_object obj, ets_method method_id, va_list args) 803 { 804 return native_interface->CallDoubleMethodList(this, obj, method_id, args); 805 } CallDoubleMethodArray__EtsEnv806 ets_double CallDoubleMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 807 { 808 return native_interface->CallDoubleMethodArray(this, obj, method_id, args); 809 } CallVoidMethod__EtsEnv810 void CallVoidMethod(ets_object obj, ets_method method_id, ...) 811 { 812 va_list args; 813 va_start(args, method_id); 814 native_interface->CallVoidMethodList(this, obj, method_id, args); 815 va_end(args); 816 } CallVoidMethodList__EtsEnv817 void CallVoidMethodList(ets_object obj, ets_method method_id, va_list args) 818 { 819 native_interface->CallVoidMethodList(this, obj, method_id, args); 820 } CallVoidMethodArray__EtsEnv821 void CallVoidMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 822 { 823 native_interface->CallVoidMethodArray(this, obj, method_id, args); 824 } CallNonvirtualObjectMethod__EtsEnv825 ets_object CallNonvirtualObjectMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 826 { 827 va_list args; 828 va_start(args, method_id); 829 ets_object res = native_interface->CallNonvirtualObjectMethodList(this, obj, cls, method_id, args); 830 va_end(args); 831 return res; 832 } CallNonvirtualObjectMethodList__EtsEnv833 ets_object CallNonvirtualObjectMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 834 { 835 return native_interface->CallNonvirtualObjectMethodList(this, obj, cls, method_id, args); 836 } CallNonvirtualObjectMethodArray__EtsEnv837 ets_object CallNonvirtualObjectMethodArray(ets_object obj, ets_class cls, ets_method method_id, 838 const ets_value *args) 839 { 840 return native_interface->CallNonvirtualObjectMethodArray(this, obj, cls, method_id, args); 841 } CallNonvirtualBooleanMethod__EtsEnv842 ets_boolean CallNonvirtualBooleanMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 843 { 844 va_list args; 845 va_start(args, method_id); 846 ets_boolean res = native_interface->CallNonvirtualBooleanMethodList(this, obj, cls, method_id, args); 847 va_end(args); 848 return res; 849 } CallNonvirtualBooleanMethodList__EtsEnv850 ets_boolean CallNonvirtualBooleanMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 851 { 852 return native_interface->CallNonvirtualBooleanMethodList(this, obj, cls, method_id, args); 853 } CallNonvirtualBooleanMethodArray__EtsEnv854 ets_boolean CallNonvirtualBooleanMethodArray(ets_object obj, ets_class cls, ets_method method_id, 855 const ets_value *args) 856 { 857 return native_interface->CallNonvirtualBooleanMethodArray(this, obj, cls, method_id, args); 858 } CallNonvirtualByteMethod__EtsEnv859 ets_byte CallNonvirtualByteMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 860 { 861 va_list args; 862 va_start(args, method_id); 863 ets_byte res = native_interface->CallNonvirtualByteMethodList(this, obj, cls, method_id, args); 864 va_end(args); 865 return res; 866 } CallNonvirtualByteMethodList__EtsEnv867 ets_byte CallNonvirtualByteMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 868 { 869 return native_interface->CallNonvirtualByteMethodList(this, obj, cls, method_id, args); 870 } CallNonvirtualByteMethodArray__EtsEnv871 ets_byte CallNonvirtualByteMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 872 { 873 return native_interface->CallNonvirtualByteMethodArray(this, obj, cls, method_id, args); 874 } CallNonvirtualCharMethod__EtsEnv875 ets_char CallNonvirtualCharMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 876 { 877 va_list args; 878 va_start(args, method_id); 879 ets_char res = native_interface->CallNonvirtualCharMethodList(this, obj, cls, method_id, args); 880 va_end(args); 881 return res; 882 } CallNonvirtualCharMethodList__EtsEnv883 ets_char CallNonvirtualCharMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 884 { 885 return native_interface->CallNonvirtualCharMethodList(this, obj, cls, method_id, args); 886 } CallNonvirtualCharMethodArray__EtsEnv887 ets_char CallNonvirtualCharMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 888 { 889 return native_interface->CallNonvirtualCharMethodArray(this, obj, cls, method_id, args); 890 } CallNonvirtualShortMethod__EtsEnv891 ets_short CallNonvirtualShortMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 892 { 893 va_list args; 894 va_start(args, method_id); 895 ets_short res = native_interface->CallNonvirtualShortMethodList(this, obj, cls, method_id, args); 896 va_end(args); 897 return res; 898 } CallNonvirtualShortMethodList__EtsEnv899 ets_short CallNonvirtualShortMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 900 { 901 return native_interface->CallNonvirtualShortMethodList(this, obj, cls, method_id, args); 902 } CallNonvirtualShortMethodArray__EtsEnv903 ets_short CallNonvirtualShortMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 904 { 905 return native_interface->CallNonvirtualShortMethodArray(this, obj, cls, method_id, args); 906 } CallNonvirtualIntMethod__EtsEnv907 ets_int CallNonvirtualIntMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 908 { 909 va_list args; 910 va_start(args, method_id); 911 ets_int res = native_interface->CallNonvirtualIntMethodList(this, obj, cls, method_id, args); 912 va_end(args); 913 return res; 914 } CallNonvirtualIntMethodList__EtsEnv915 ets_int CallNonvirtualIntMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 916 { 917 return native_interface->CallNonvirtualIntMethodList(this, obj, cls, method_id, args); 918 } CallNonvirtualIntMethodArray__EtsEnv919 ets_int CallNonvirtualIntMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 920 { 921 return native_interface->CallNonvirtualIntMethodArray(this, obj, cls, method_id, args); 922 } CallNonvirtualLongMethod__EtsEnv923 ets_long CallNonvirtualLongMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 924 { 925 va_list args; 926 va_start(args, method_id); 927 ets_long res = native_interface->CallNonvirtualLongMethodList(this, obj, cls, method_id, args); 928 va_end(args); 929 return res; 930 } CallNonvirtualLongMethodList__EtsEnv931 ets_long CallNonvirtualLongMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 932 { 933 return native_interface->CallNonvirtualLongMethodList(this, obj, cls, method_id, args); 934 } CallNonvirtualLongMethodArray__EtsEnv935 ets_long CallNonvirtualLongMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 936 { 937 return native_interface->CallNonvirtualLongMethodArray(this, obj, cls, method_id, args); 938 } CallNonvirtualFloatMethod__EtsEnv939 ets_float CallNonvirtualFloatMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 940 { 941 va_list args; 942 va_start(args, method_id); 943 ets_float res = native_interface->CallNonvirtualFloatMethodList(this, obj, cls, method_id, args); 944 va_end(args); 945 return res; 946 } CallNonvirtualFloatMethodList__EtsEnv947 ets_float CallNonvirtualFloatMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 948 { 949 return native_interface->CallNonvirtualFloatMethodList(this, obj, cls, method_id, args); 950 } CallNonvirtualFloatMethodArray__EtsEnv951 ets_float CallNonvirtualFloatMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 952 { 953 return native_interface->CallNonvirtualFloatMethodArray(this, obj, cls, method_id, args); 954 } CallNonvirtualDoubleMethod__EtsEnv955 ets_double CallNonvirtualDoubleMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 956 { 957 va_list args; 958 va_start(args, method_id); 959 ets_double res = native_interface->CallNonvirtualDoubleMethodList(this, obj, cls, method_id, args); 960 va_end(args); 961 return res; 962 } CallNonvirtualDoubleMethodList__EtsEnv963 ets_double CallNonvirtualDoubleMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 964 { 965 return native_interface->CallNonvirtualDoubleMethodList(this, obj, cls, method_id, args); 966 } CallNonvirtualDoubleMethodArray__EtsEnv967 ets_double CallNonvirtualDoubleMethodArray(ets_object obj, ets_class cls, ets_method method_id, 968 const ets_value *args) 969 { 970 return native_interface->CallNonvirtualDoubleMethodArray(this, obj, cls, method_id, args); 971 } CallNonvirtualVoidMethod__EtsEnv972 void CallNonvirtualVoidMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 973 { 974 va_list args; 975 va_start(args, method_id); 976 native_interface->CallNonvirtualVoidMethodList(this, obj, cls, method_id, args); 977 va_end(args); 978 } CallNonvirtualVoidMethodList__EtsEnv979 void CallNonvirtualVoidMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 980 { 981 native_interface->CallNonvirtualVoidMethodList(this, obj, cls, method_id, args); 982 } CallNonvirtualVoidMethodArray__EtsEnv983 void CallNonvirtualVoidMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 984 { 985 native_interface->CallNonvirtualVoidMethodArray(this, obj, cls, method_id, args); 986 } Getp_field__EtsEnv987 ets_field Getp_field(ets_class cls, const char *name, const char *sig) 988 { 989 return native_interface->Getp_field(this, cls, name, sig); 990 } GetObjectField__EtsEnv991 ets_object GetObjectField(ets_object obj, ets_field p_field) 992 { 993 return native_interface->GetObjectField(this, obj, p_field); 994 } GetBooleanField__EtsEnv995 ets_boolean GetBooleanField(ets_object obj, ets_field p_field) 996 { 997 return native_interface->GetBooleanField(this, obj, p_field); 998 } GetByteField__EtsEnv999 ets_byte GetByteField(ets_object obj, ets_field p_field) 1000 { 1001 return native_interface->GetByteField(this, obj, p_field); 1002 } GetCharField__EtsEnv1003 ets_char GetCharField(ets_object obj, ets_field p_field) 1004 { 1005 return native_interface->GetCharField(this, obj, p_field); 1006 } GetShortField__EtsEnv1007 ets_short GetShortField(ets_object obj, ets_field p_field) 1008 { 1009 return native_interface->GetShortField(this, obj, p_field); 1010 } GetIntField__EtsEnv1011 ets_int GetIntField(ets_object obj, ets_field p_field) 1012 { 1013 return native_interface->GetIntField(this, obj, p_field); 1014 } GetLongField__EtsEnv1015 ets_long GetLongField(ets_object obj, ets_field p_field) 1016 { 1017 return native_interface->GetLongField(this, obj, p_field); 1018 } GetFloatField__EtsEnv1019 ets_float GetFloatField(ets_object obj, ets_field p_field) 1020 { 1021 return native_interface->GetFloatField(this, obj, p_field); 1022 } GetDoubleField__EtsEnv1023 ets_double GetDoubleField(ets_object obj, ets_field p_field) 1024 { 1025 return native_interface->GetDoubleField(this, obj, p_field); 1026 } SetObjectField__EtsEnv1027 void SetObjectField(ets_object obj, ets_field p_field, ets_object value) 1028 { 1029 return native_interface->SetObjectField(this, obj, p_field, value); 1030 } SetBooleanField__EtsEnv1031 void SetBooleanField(ets_object obj, ets_field p_field, ets_boolean value) 1032 { 1033 return native_interface->SetBooleanField(this, obj, p_field, value); 1034 } SetByteField__EtsEnv1035 void SetByteField(ets_object obj, ets_field p_field, ets_byte value) 1036 { 1037 return native_interface->SetByteField(this, obj, p_field, value); 1038 } SetCharField__EtsEnv1039 void SetCharField(ets_object obj, ets_field p_field, ets_char value) 1040 { 1041 return native_interface->SetCharField(this, obj, p_field, value); 1042 } SetShortField__EtsEnv1043 void SetShortField(ets_object obj, ets_field p_field, ets_short value) 1044 { 1045 return native_interface->SetShortField(this, obj, p_field, value); 1046 } SetIntField__EtsEnv1047 void SetIntField(ets_object obj, ets_field p_field, ets_int value) 1048 { 1049 return native_interface->SetIntField(this, obj, p_field, value); 1050 } SetLongField__EtsEnv1051 void SetLongField(ets_object obj, ets_field p_field, ets_long value) 1052 { 1053 return native_interface->SetLongField(this, obj, p_field, value); 1054 } SetFloatField__EtsEnv1055 void SetFloatField(ets_object obj, ets_field p_field, ets_float value) 1056 { 1057 return native_interface->SetFloatField(this, obj, p_field, value); 1058 } SetDoubleField__EtsEnv1059 void SetDoubleField(ets_object obj, ets_field p_field, ets_double value) 1060 { 1061 return native_interface->SetDoubleField(this, obj, p_field, value); 1062 } GetStaticp_method__EtsEnv1063 ets_method GetStaticp_method(ets_class cls, const char *name, const char *sig) 1064 { 1065 return native_interface->GetStaticp_method(this, cls, name, sig); 1066 } CallStaticObjectMethod__EtsEnv1067 ets_object CallStaticObjectMethod(ets_class cls, ets_method method_id, ...) 1068 { 1069 va_list args; 1070 va_start(args, method_id); 1071 ets_object res = native_interface->CallStaticObjectMethodList(this, cls, method_id, args); 1072 va_end(args); 1073 return res; 1074 } CallStaticObjectMethodList__EtsEnv1075 ets_object CallStaticObjectMethodList(ets_class cls, ets_method method_id, va_list args) 1076 { 1077 return native_interface->CallStaticObjectMethodList(this, cls, method_id, args); 1078 } CallStaticObjectMethodArray__EtsEnv1079 ets_object CallStaticObjectMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1080 { 1081 return native_interface->CallStaticObjectMethodArray(this, cls, method_id, args); 1082 } CallStaticBooleanMethod__EtsEnv1083 ets_boolean CallStaticBooleanMethod(ets_class cls, ets_method method_id, ...) 1084 { 1085 va_list args; 1086 va_start(args, method_id); 1087 ets_boolean res = native_interface->CallStaticBooleanMethodList(this, cls, method_id, args); 1088 va_end(args); 1089 return res; 1090 } CallStaticBooleanMethodList__EtsEnv1091 ets_boolean CallStaticBooleanMethodList(ets_class cls, ets_method method_id, va_list args) 1092 { 1093 return native_interface->CallStaticBooleanMethodList(this, cls, method_id, args); 1094 } CallStaticBooleanMethodArray__EtsEnv1095 ets_boolean CallStaticBooleanMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1096 { 1097 return native_interface->CallStaticBooleanMethodArray(this, cls, method_id, args); 1098 } CallStaticByteMethod__EtsEnv1099 ets_byte CallStaticByteMethod(ets_class cls, ets_method method_id, ...) 1100 { 1101 va_list args; 1102 va_start(args, method_id); 1103 ets_byte res = native_interface->CallStaticByteMethodList(this, cls, method_id, args); 1104 va_end(args); 1105 return res; 1106 } CallStaticByteMethodList__EtsEnv1107 ets_byte CallStaticByteMethodList(ets_class cls, ets_method method_id, va_list args) 1108 { 1109 return native_interface->CallStaticByteMethodList(this, cls, method_id, args); 1110 } CallStaticByteMethodArray__EtsEnv1111 ets_byte CallStaticByteMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1112 { 1113 return native_interface->CallStaticByteMethodArray(this, cls, method_id, args); 1114 } CallStaticCharMethod__EtsEnv1115 ets_char CallStaticCharMethod(ets_class cls, ets_method method_id, ...) 1116 { 1117 va_list args; 1118 va_start(args, method_id); 1119 ets_char res = native_interface->CallStaticCharMethodList(this, cls, method_id, args); 1120 va_end(args); 1121 return res; 1122 } CallStaticCharMethodList__EtsEnv1123 ets_char CallStaticCharMethodList(ets_class cls, ets_method method_id, va_list args) 1124 { 1125 return native_interface->CallStaticCharMethodList(this, cls, method_id, args); 1126 } CallStaticCharMethodArray__EtsEnv1127 ets_char CallStaticCharMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1128 { 1129 return native_interface->CallStaticCharMethodArray(this, cls, method_id, args); 1130 } CallStaticShortMethod__EtsEnv1131 ets_short CallStaticShortMethod(ets_class cls, ets_method method_id, ...) 1132 { 1133 va_list args; 1134 va_start(args, method_id); 1135 ets_short res = native_interface->CallStaticShortMethodList(this, cls, method_id, args); 1136 va_end(args); 1137 return res; 1138 } CallStaticShortMethodList__EtsEnv1139 ets_short CallStaticShortMethodList(ets_class cls, ets_method method_id, va_list args) 1140 { 1141 return native_interface->CallStaticShortMethodList(this, cls, method_id, args); 1142 } CallStaticShortMethodArray__EtsEnv1143 ets_short CallStaticShortMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1144 { 1145 return native_interface->CallStaticShortMethodArray(this, cls, method_id, args); 1146 } CallStaticIntMethod__EtsEnv1147 ets_int CallStaticIntMethod(ets_class cls, ets_method method_id, ...) 1148 { 1149 va_list args; 1150 va_start(args, method_id); 1151 ets_int res = native_interface->CallStaticIntMethodList(this, cls, method_id, args); 1152 va_end(args); 1153 return res; 1154 } CallStaticIntMethodList__EtsEnv1155 ets_int CallStaticIntMethodList(ets_class cls, ets_method method_id, va_list args) 1156 { 1157 return native_interface->CallStaticIntMethodList(this, cls, method_id, args); 1158 } CallStaticIntMethodArray__EtsEnv1159 ets_int CallStaticIntMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1160 { 1161 return native_interface->CallStaticIntMethodArray(this, cls, method_id, args); 1162 } CallStaticLongMethod__EtsEnv1163 ets_long CallStaticLongMethod(ets_class cls, ets_method method_id, ...) 1164 { 1165 va_list args; 1166 va_start(args, method_id); 1167 ets_long res = native_interface->CallStaticLongMethodList(this, cls, method_id, args); 1168 va_end(args); 1169 return res; 1170 } CallStaticLongMethodList__EtsEnv1171 ets_long CallStaticLongMethodList(ets_class cls, ets_method method_id, va_list args) 1172 { 1173 return native_interface->CallStaticLongMethodList(this, cls, method_id, args); 1174 } CallStaticLongMethodArray__EtsEnv1175 ets_long CallStaticLongMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1176 { 1177 return native_interface->CallStaticLongMethodArray(this, cls, method_id, args); 1178 } CallStaticFloatMethod__EtsEnv1179 ets_float CallStaticFloatMethod(ets_class cls, ets_method method_id, ...) 1180 { 1181 va_list args; 1182 va_start(args, method_id); 1183 ets_float res = native_interface->CallStaticFloatMethodList(this, cls, method_id, args); 1184 va_end(args); 1185 return res; 1186 } CallStaticFloatMethodList__EtsEnv1187 ets_float CallStaticFloatMethodList(ets_class cls, ets_method method_id, va_list args) 1188 { 1189 return native_interface->CallStaticFloatMethodList(this, cls, method_id, args); 1190 } CallStaticFloatMethodArray__EtsEnv1191 ets_float CallStaticFloatMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1192 { 1193 return native_interface->CallStaticFloatMethodArray(this, cls, method_id, args); 1194 } CallStaticDoubleMethod__EtsEnv1195 ets_double CallStaticDoubleMethod(ets_class cls, ets_method method_id, ...) 1196 { 1197 va_list args; 1198 va_start(args, method_id); 1199 ets_double res = native_interface->CallStaticDoubleMethodList(this, cls, method_id, args); 1200 va_end(args); 1201 return res; 1202 } CallStaticDoubleMethodList__EtsEnv1203 ets_double CallStaticDoubleMethodList(ets_class cls, ets_method method_id, va_list args) 1204 { 1205 return native_interface->CallStaticDoubleMethodList(this, cls, method_id, args); 1206 } CallStaticDoubleMethodArray__EtsEnv1207 ets_double CallStaticDoubleMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1208 { 1209 return native_interface->CallStaticDoubleMethodArray(this, cls, method_id, args); 1210 } CallStaticVoidMethod__EtsEnv1211 void CallStaticVoidMethod(ets_class cls, ets_method method_id, ...) 1212 { 1213 va_list args; 1214 va_start(args, method_id); 1215 native_interface->CallStaticVoidMethodList(this, cls, method_id, args); 1216 va_end(args); 1217 } CallStaticVoidMethodList__EtsEnv1218 void CallStaticVoidMethodList(ets_class cls, ets_method method_id, va_list args) 1219 { 1220 native_interface->CallStaticVoidMethodList(this, cls, method_id, args); 1221 } CallStaticVoidMethodArray__EtsEnv1222 void CallStaticVoidMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1223 { 1224 native_interface->CallStaticVoidMethodArray(this, cls, method_id, args); 1225 } GetStaticp_field__EtsEnv1226 ets_field GetStaticp_field(ets_class cls, const char *name, const char *sig) 1227 { 1228 return native_interface->GetStaticp_field(this, cls, name, sig); 1229 } GetStaticObjectField__EtsEnv1230 ets_object GetStaticObjectField(ets_class cls, ets_field p_field) 1231 { 1232 return native_interface->GetStaticObjectField(this, cls, p_field); 1233 } GetStaticBooleanField__EtsEnv1234 ets_boolean GetStaticBooleanField(ets_class cls, ets_field p_field) 1235 { 1236 return native_interface->GetStaticBooleanField(this, cls, p_field); 1237 } GetStaticByteField__EtsEnv1238 ets_byte GetStaticByteField(ets_class cls, ets_field p_field) 1239 { 1240 return native_interface->GetStaticByteField(this, cls, p_field); 1241 } GetStaticCharField__EtsEnv1242 ets_char GetStaticCharField(ets_class cls, ets_field p_field) 1243 { 1244 return native_interface->GetStaticCharField(this, cls, p_field); 1245 } GetStaticShortField__EtsEnv1246 ets_short GetStaticShortField(ets_class cls, ets_field p_field) 1247 { 1248 return native_interface->GetStaticShortField(this, cls, p_field); 1249 } GetStaticIntField__EtsEnv1250 ets_int GetStaticIntField(ets_class cls, ets_field p_field) 1251 { 1252 return native_interface->GetStaticIntField(this, cls, p_field); 1253 } GetStaticLongField__EtsEnv1254 ets_long GetStaticLongField(ets_class cls, ets_field p_field) 1255 { 1256 return native_interface->GetStaticLongField(this, cls, p_field); 1257 } GetStaticFloatField__EtsEnv1258 ets_float GetStaticFloatField(ets_class cls, ets_field p_field) 1259 { 1260 return native_interface->GetStaticFloatField(this, cls, p_field); 1261 } GetStaticDoubleField__EtsEnv1262 ets_double GetStaticDoubleField(ets_class cls, ets_field p_field) 1263 { 1264 return native_interface->GetStaticDoubleField(this, cls, p_field); 1265 } SetStaticObjectField__EtsEnv1266 void SetStaticObjectField(ets_class cls, ets_field p_field, ets_object value) 1267 { 1268 return native_interface->SetStaticObjectField(this, cls, p_field, value); 1269 } SetStaticBooleanField__EtsEnv1270 void SetStaticBooleanField(ets_class cls, ets_field p_field, ets_boolean value) 1271 { 1272 return native_interface->SetStaticBooleanField(this, cls, p_field, value); 1273 } SetStaticByteField__EtsEnv1274 void SetStaticByteField(ets_class cls, ets_field p_field, ets_byte value) 1275 { 1276 return native_interface->SetStaticByteField(this, cls, p_field, value); 1277 } SetStaticCharField__EtsEnv1278 void SetStaticCharField(ets_class cls, ets_field p_field, ets_char value) 1279 { 1280 return native_interface->SetStaticCharField(this, cls, p_field, value); 1281 } SetStaticShortField__EtsEnv1282 void SetStaticShortField(ets_class cls, ets_field p_field, ets_short value) 1283 { 1284 return native_interface->SetStaticShortField(this, cls, p_field, value); 1285 } SetStaticIntField__EtsEnv1286 void SetStaticIntField(ets_class cls, ets_field p_field, ets_int value) 1287 { 1288 return native_interface->SetStaticIntField(this, cls, p_field, value); 1289 } SetStaticLongField__EtsEnv1290 void SetStaticLongField(ets_class cls, ets_field p_field, ets_long value) 1291 { 1292 return native_interface->SetStaticLongField(this, cls, p_field, value); 1293 } SetStaticFloatField__EtsEnv1294 void SetStaticFloatField(ets_class cls, ets_field p_field, ets_float value) 1295 { 1296 return native_interface->SetStaticFloatField(this, cls, p_field, value); 1297 } SetStaticDoubleField__EtsEnv1298 void SetStaticDoubleField(ets_class cls, ets_field p_field, ets_double value) 1299 { 1300 return native_interface->SetStaticDoubleField(this, cls, p_field, value); 1301 } NewString__EtsEnv1302 ets_string NewString(const ets_char *unicode_chars, ets_size len) 1303 { 1304 return native_interface->NewString(this, unicode_chars, len); 1305 } GetStringLength__EtsEnv1306 ets_size GetStringLength(ets_string string) 1307 { 1308 return native_interface->GetStringLength(this, string); 1309 } GetStringChars__EtsEnv1310 const ets_char *GetStringChars(ets_string string, ets_boolean *is_copy) 1311 { 1312 return native_interface->GetStringChars(this, string, is_copy); 1313 } ReleaseStringChars__EtsEnv1314 void ReleaseStringChars(ets_string string, const ets_char *chars) 1315 { 1316 native_interface->ReleaseStringChars(this, string, chars); 1317 } NewStringUTF__EtsEnv1318 ets_string NewStringUTF(const char *bytes) 1319 { 1320 return native_interface->NewStringUTF(this, bytes); 1321 } GetStringUTFLength__EtsEnv1322 ets_size GetStringUTFLength(ets_string string) 1323 { 1324 return native_interface->GetStringUTFLength(this, string); 1325 } GetStringUTFChars__EtsEnv1326 const char *GetStringUTFChars(ets_string string, ets_boolean *is_copy) 1327 { 1328 return native_interface->GetStringUTFChars(this, string, is_copy); 1329 } ReleaseStringUTFChars__EtsEnv1330 void ReleaseStringUTFChars(ets_string string, const char *chars) 1331 { 1332 native_interface->ReleaseStringUTFChars(this, string, chars); 1333 } GetArrayLength__EtsEnv1334 ets_size GetArrayLength(ets_array array) 1335 { 1336 return native_interface->GetArrayLength(this, array); 1337 } NewObjectsArray__EtsEnv1338 ets_objectArray NewObjectsArray(ets_size length, ets_class element_class, ets_object initial_element) 1339 { 1340 return native_interface->NewObjectsArray(this, length, element_class, initial_element); 1341 } GetObjectArrayElement__EtsEnv1342 ets_object GetObjectArrayElement(ets_objectArray array, ets_size index) 1343 { 1344 return native_interface->GetObjectArrayElement(this, array, index); 1345 } 1346 SetObjectArrayElement__EtsEnv1347 void SetObjectArrayElement(ets_objectArray array, ets_size index, ets_object value) 1348 { 1349 native_interface->SetObjectArrayElement(this, array, index, value); 1350 } 1351 1352 // SetObjectArrayElement, NewBooleanArray__EtsEnv1353 ets_booleanArray NewBooleanArray(ets_size length) 1354 { 1355 return native_interface->NewBooleanArray(this, length); 1356 } NewByteArray__EtsEnv1357 ets_byteArray NewByteArray(ets_size length) 1358 { 1359 return native_interface->NewByteArray(this, length); 1360 } NewCharArray__EtsEnv1361 ets_charArray NewCharArray(ets_size length) 1362 { 1363 return native_interface->NewCharArray(this, length); 1364 } NewShortArray__EtsEnv1365 ets_shortArray NewShortArray(ets_size length) 1366 { 1367 return native_interface->NewShortArray(this, length); 1368 } NewIntArray__EtsEnv1369 ets_intArray NewIntArray(ets_size length) 1370 { 1371 return native_interface->NewIntArray(this, length); 1372 } NewLongArray__EtsEnv1373 ets_longArray NewLongArray(ets_size length) 1374 { 1375 return native_interface->NewLongArray(this, length); 1376 } NewFloatArray__EtsEnv1377 ets_floatArray NewFloatArray(ets_size length) 1378 { 1379 return native_interface->NewFloatArray(this, length); 1380 } NewDoubleArray__EtsEnv1381 ets_doubleArray NewDoubleArray(ets_size length) 1382 { 1383 return native_interface->NewDoubleArray(this, length); 1384 } PinBooleanArray__EtsEnv1385 ets_boolean *PinBooleanArray(ets_booleanArray array) 1386 { 1387 return native_interface->PinBooleanArray(this, array); 1388 } PinByteArray__EtsEnv1389 ets_byte *PinByteArray(ets_byteArray array) 1390 { 1391 return native_interface->PinByteArray(this, array); 1392 } PinCharArray__EtsEnv1393 ets_char *PinCharArray(ets_charArray array) 1394 { 1395 return native_interface->PinCharArray(this, array); 1396 } PinShortArray__EtsEnv1397 ets_short *PinShortArray(ets_shortArray array) 1398 { 1399 return native_interface->PinShortArray(this, array); 1400 } PinIntArray__EtsEnv1401 ets_int *PinIntArray(ets_intArray array) 1402 { 1403 return native_interface->PinIntArray(this, array); 1404 } PinLongArray__EtsEnv1405 ets_long *PinLongArray(ets_longArray array) 1406 { 1407 return native_interface->PinLongArray(this, array); 1408 } PinFloatArray__EtsEnv1409 ets_float *PinFloatArray(ets_floatArray array) 1410 { 1411 return native_interface->PinFloatArray(this, array); 1412 } PinDoubleArray__EtsEnv1413 ets_double *PinDoubleArray(ets_doubleArray array) 1414 { 1415 return native_interface->PinDoubleArray(this, array); 1416 } UnpinBooleanArray__EtsEnv1417 void UnpinBooleanArray(ets_booleanArray array) 1418 { 1419 return native_interface->UnpinBooleanArray(this, array); 1420 } UnpinByteArray__EtsEnv1421 void UnpinByteArray(ets_byteArray array) 1422 { 1423 return native_interface->UnpinByteArray(this, array); 1424 } UnpinCharArray__EtsEnv1425 void UnpinCharArray(ets_charArray array) 1426 { 1427 return native_interface->UnpinCharArray(this, array); 1428 } UnpinShortArray__EtsEnv1429 void UnpinShortArray(ets_shortArray array) 1430 { 1431 return native_interface->UnpinShortArray(this, array); 1432 } UnpinIntArray__EtsEnv1433 void UnpinIntArray(ets_intArray array) 1434 { 1435 return native_interface->UnpinIntArray(this, array); 1436 } UnpinLongArray__EtsEnv1437 void UnpinLongArray(ets_longArray array) 1438 { 1439 return native_interface->UnpinLongArray(this, array); 1440 } UnpinFloatArray__EtsEnv1441 void UnpinFloatArray(ets_floatArray array) 1442 { 1443 return native_interface->UnpinFloatArray(this, array); 1444 } UnpinDoubleArray__EtsEnv1445 void UnpinDoubleArray(ets_doubleArray array) 1446 { 1447 return native_interface->UnpinDoubleArray(this, array); 1448 } GetBooleanArrayRegion__EtsEnv1449 void GetBooleanArrayRegion(ets_booleanArray array, ets_size start, ets_size len, ets_boolean *buf) 1450 { 1451 return native_interface->GetBooleanArrayRegion(this, array, start, len, buf); 1452 } GetByteArrayRegion__EtsEnv1453 void GetByteArrayRegion(ets_byteArray array, ets_size start, ets_size len, ets_byte *buf) 1454 { 1455 return native_interface->GetByteArrayRegion(this, array, start, len, buf); 1456 } GetCharArrayRegion__EtsEnv1457 void GetCharArrayRegion(ets_charArray array, ets_size start, ets_size len, ets_char *buf) 1458 { 1459 return native_interface->GetCharArrayRegion(this, array, start, len, buf); 1460 } GetShortArrayRegion__EtsEnv1461 void GetShortArrayRegion(ets_shortArray array, ets_size start, ets_size len, ets_short *buf) 1462 { 1463 return native_interface->GetShortArrayRegion(this, array, start, len, buf); 1464 } GetIntArrayRegion__EtsEnv1465 void GetIntArrayRegion(ets_intArray array, ets_size start, ets_size len, ets_int *buf) 1466 { 1467 return native_interface->GetIntArrayRegion(this, array, start, len, buf); 1468 } GetLongArrayRegion__EtsEnv1469 void GetLongArrayRegion(ets_longArray array, ets_size start, ets_size len, ets_long *buf) 1470 { 1471 return native_interface->GetLongArrayRegion(this, array, start, len, buf); 1472 } GetFloatArrayRegion__EtsEnv1473 void GetFloatArrayRegion(ets_floatArray array, ets_size start, ets_size len, ets_float *buf) 1474 { 1475 return native_interface->GetFloatArrayRegion(this, array, start, len, buf); 1476 } GetDoubleArrayRegion__EtsEnv1477 void GetDoubleArrayRegion(ets_doubleArray array, ets_size start, ets_size len, ets_double *buf) 1478 { 1479 return native_interface->GetDoubleArrayRegion(this, array, start, len, buf); 1480 } SetBooleanArrayRegion__EtsEnv1481 void SetBooleanArrayRegion(ets_booleanArray array, ets_size start, ets_size length, const ets_boolean *buf) 1482 { 1483 native_interface->SetBooleanArrayRegion(this, array, start, length, buf); 1484 } SetByteArrayRegion__EtsEnv1485 void SetByteArrayRegion(ets_byteArray array, ets_size start, ets_size length, const ets_byte *buf) 1486 { 1487 native_interface->SetByteArrayRegion(this, array, start, length, buf); 1488 } SetCharArrayRegion__EtsEnv1489 void SetCharArrayRegion(ets_charArray array, ets_size start, ets_size length, const ets_char *buf) 1490 { 1491 native_interface->SetCharArrayRegion(this, array, start, length, buf); 1492 } SetShortArrayRegion__EtsEnv1493 void SetShortArrayRegion(ets_shortArray array, ets_size start, ets_size length, const ets_short *buf) 1494 { 1495 native_interface->SetShortArrayRegion(this, array, start, length, buf); 1496 } SetIntArrayRegion__EtsEnv1497 void SetIntArrayRegion(ets_intArray array, ets_size start, ets_size length, const ets_int *buf) 1498 { 1499 native_interface->SetIntArrayRegion(this, array, start, length, buf); 1500 } SetLongArrayRegion__EtsEnv1501 void SetLongArrayRegion(ets_longArray array, ets_size start, ets_size length, const ets_long *buf) 1502 { 1503 native_interface->SetLongArrayRegion(this, array, start, length, buf); 1504 } SetFloatArrayRegion__EtsEnv1505 void SetFloatArrayRegion(ets_floatArray array, ets_size start, ets_size length, const ets_float *buf) 1506 { 1507 native_interface->SetFloatArrayRegion(this, array, start, length, buf); 1508 } SetDoubleArrayRegion__EtsEnv1509 void SetDoubleArrayRegion(ets_doubleArray array, ets_size start, ets_size length, const ets_double *buf) 1510 { 1511 native_interface->SetDoubleArrayRegion(this, array, start, length, buf); 1512 } RegisterNatives__EtsEnv1513 ets_int RegisterNatives(ets_class cls, const EtsNativeMethod *methods, ets_int nMethods) 1514 { 1515 return native_interface->RegisterNatives(this, cls, methods, nMethods); 1516 } UnregisterNatives__EtsEnv1517 ets_int UnregisterNatives(ets_class cls) 1518 { 1519 return native_interface->UnregisterNatives(this, cls); 1520 } GetEtsVM__EtsEnv1521 ets_int GetEtsVM(EtsVM **vm) 1522 { 1523 return native_interface->GetEtsVM(this, vm); 1524 } GetStringRegion__EtsEnv1525 void GetStringRegion(ets_string str, ets_size start, ets_size len, ets_char *buf) 1526 { 1527 native_interface->GetStringRegion(this, str, start, len, buf); 1528 } GetStringUTFRegion__EtsEnv1529 void GetStringUTFRegion(ets_string str, ets_size start, ets_size len, char *buf) 1530 { 1531 native_interface->GetStringUTFRegion(this, str, start, len, buf); 1532 } NewWeakGlobalRef__EtsEnv1533 ets_weak NewWeakGlobalRef(ets_object obj) 1534 { 1535 return native_interface->NewWeakGlobalRef(this, obj); 1536 } DeleteWeakGlobalRef__EtsEnv1537 void DeleteWeakGlobalRef(ets_weak obj) 1538 { 1539 native_interface->DeleteWeakGlobalRef(this, obj); 1540 } ErrorCheck__EtsEnv1541 ets_boolean ErrorCheck() 1542 { 1543 return native_interface->ErrorCheck(this); 1544 } 1545 // NewDirectByteBuffer, 1546 // GetDirectBufferAddress, 1547 // GetDirectBufferCapacity, GetObjectRefType__EtsEnv1548 ets_objectRefType GetObjectRefType(ets_object obj) 1549 { 1550 return native_interface->GetObjectRefType(this, obj); 1551 } 1552 1553 // Promise PromiseCreate__EtsEnv1554 ets_status PromiseCreate(ets_deferred *deferred, ets_object *promise) 1555 { 1556 return native_interface->PromiseCreate(this, deferred, promise); 1557 } DeferredResolve__EtsEnv1558 ets_status DeferredResolve(ets_deferred deferred, ets_object resolution) 1559 { 1560 return native_interface->DeferredResolve(this, deferred, resolution); 1561 } DeferredReject__EtsEnv1562 ets_status DeferredReject(ets_deferred deferred, ets_object rejection) 1563 { 1564 return native_interface->DeferredReject(this, deferred, rejection); 1565 } 1566 1567 // ArrayBuffer ArrayBufferCreate__EtsEnv1568 ets_status ArrayBufferCreate(size_t byteLength, void **data, ets_arraybuffer *result) 1569 { 1570 return native_interface->ArrayBufferCreate(this, byteLength, data, result); 1571 } ArrayBufferCreateExternal__EtsEnv1572 ets_status ArrayBufferCreateExternal(void *externalData, size_t byteLength, EtsFinalize finalizeCb, 1573 void *finalizeHint, ets_arraybuffer *result) 1574 { 1575 return native_interface->ArrayBufferCreateExternal(this, externalData, byteLength, finalizeCb, finalizeHint, 1576 result); 1577 } ArrayBufferGetInfo__EtsEnv1578 ets_status ArrayBufferGetInfo(ets_arraybuffer buffer, void **resultData, size_t *resultByteLength) 1579 { 1580 return native_interface->ArrayBufferGetInfo(this, buffer, resultData, resultByteLength); 1581 } ArrayBufferDetach__EtsEnv1582 ets_status ArrayBufferDetach(ets_arraybuffer buffer) 1583 { 1584 return native_interface->ArrayBufferDetach(this, buffer); 1585 } ArrayBufferIsDetached__EtsEnv1586 ets_status ArrayBufferIsDetached(ets_arraybuffer buffer, bool *result) 1587 { 1588 return native_interface->ArrayBufferIsDetached(this, buffer, result); 1589 } 1590 #endif 1591 }; 1592 1593 // NOLINTEND(modernize-use-using, readability-identifier-naming, cppcoreguidelines-pro-type-vararg) 1594 1595 #endif // PANDA_RUNTIME_INTEROP_ETS_NAPI_H 1596