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 <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_class : public __ets_object {}; 67 class __ets_string : public __ets_object {}; 68 class __ets_array : public __ets_object {}; 69 class __ets_objectArray : public __ets_array {}; 70 class __ets_booleanArray : public __ets_array {}; 71 class __ets_byteArray : public __ets_array {}; 72 class __ets_charArray : public __ets_array {}; 73 class __ets_shortArray : public __ets_array {}; 74 class __ets_intArray : public __ets_array {}; 75 class __ets_longArray : public __ets_array {}; 76 class __ets_floatArray : public __ets_array {}; 77 class __ets_doubleArray : public __ets_array {}; 78 class __ets_error : public __ets_object {}; 79 80 typedef __ets_object *ets_object; 81 typedef __ets_class *ets_class; 82 typedef __ets_string *ets_string; 83 typedef __ets_array *ets_array; 84 typedef __ets_objectArray *ets_objectArray; 85 typedef __ets_booleanArray *ets_booleanArray; 86 typedef __ets_byteArray *ets_byteArray; 87 typedef __ets_charArray *ets_charArray; 88 typedef __ets_shortArray *ets_shortArray; 89 typedef __ets_intArray *ets_intArray; 90 typedef __ets_longArray *ets_longArray; 91 typedef __ets_floatArray *ets_floatArray; 92 typedef __ets_doubleArray *ets_doubleArray; 93 typedef __ets_error *ets_error; 94 typedef __ets_object *ets_weak; 95 96 #else // __cplusplus 97 98 struct __ets_object; 99 typedef struct __ets_object *ets_object; 100 typedef ets_object ets_class; 101 typedef ets_object ets_string; 102 typedef ets_object ets_error; 103 typedef ets_object ets_weak; 104 typedef ets_object ets_array; 105 typedef ets_array ets_objectArray; 106 typedef ets_array ets_booleanArray; 107 typedef ets_array ets_byteArray; 108 typedef ets_array ets_charArray; 109 typedef ets_array ets_shortArray; 110 typedef ets_array ets_intArray; 111 typedef ets_array ets_longArray; 112 typedef ets_array ets_floatArray; 113 typedef ets_array ets_doubleArray; 114 #endif // __cplusplus 115 116 struct __ets_deferred; 117 typedef struct __ets_deferred *ets_deferred; 118 119 // Field and Method IDs 120 struct __ets_method; 121 struct __ets_field; 122 typedef struct __ets_method *ets_method; 123 typedef struct __ets_field *ets_field; 124 125 // The Value Type 126 typedef union ets_value { 127 ets_boolean z; 128 ets_byte b; 129 ets_char c; 130 ets_short s; 131 ets_int i; 132 ets_long j; 133 ets_float f; 134 ets_double d; 135 ets_object l; 136 } ets_value; 137 138 // Describe native method by name, signature and function pointer 139 typedef struct { 140 const char *name; 141 const char *signature; 142 void *func; 143 } EtsNativeMethod; 144 145 // The object reference types 146 typedef enum { 147 ETS_INVALID_REF_TYPE = 0, 148 ETS_LOCAL_REF_TYPE = 1, 149 ETS_GLOBAL_REF_TYPE = 2, 150 ETS_WEAK_GLOBAL_REF_TYPE = 3 151 } ets_objectRefType; 152 153 #ifdef __cplusplus 154 typedef struct __EtsVM EtsVM; 155 typedef struct __EtsEnv ets_env; 156 #else 157 typedef const struct ETS_InvokeInterface *EtsVM; 158 typedef const struct ETS_NativeInterface *ets_env; 159 #endif 160 161 // Deprecated types: 162 typedef ets_env EtsEnv; 163 164 typedef enum { 165 ETS_OKAY, 166 ETS_INVALID_ARG, 167 ETS_GENERIC_FAILURE, 168 ETS_PENDING_EXCEPTION, 169 ETS_INVALID_VERSION, // NOTE(v.cherkashin): This status code doesn't match to napi interface. 170 // Should we probably delete this status code? 171 } ets_status; 172 173 // clang-format off 174 // Interface Function Table 175 struct ETS_NativeInterface { 176 // NOTE(a.urakov): solve the "Array" naming problem 177 ets_int (*GetVersion)(EtsEnv *env); 178 #ifdef ETS_NAPI_DESIGN_FINISHED 179 ets_class (*DefineClass)(EtsEnv *env, const char *name, ets_object loader, const ets_byte *buf, ets_size bufLen); 180 #endif 181 ets_class (*FindClass)(EtsEnv *env, const char *name); 182 #ifdef ETS_NAPI_DESIGN_FINISHED 183 ets_method (*FromReflectedMethod)(EtsEnv *env, ets_object method); 184 ets_field (*FromReflectedField)(EtsEnv *env, ets_object field); 185 ets_object (*ToReflectedMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ets_boolean isStatic); 186 #endif 187 ets_class (*GetSuperclass)(EtsEnv *env, ets_class cls); 188 ets_boolean (*IsAssignableFrom)(EtsEnv *env, ets_class cls1, ets_class cls2); 189 #ifdef ETS_NAPI_DESIGN_FINISHED 190 ets_object (*ToReflectedField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_boolean isStatic); 191 #endif 192 ets_int (*ThrowError)(EtsEnv *env, ets_error obj); 193 ets_int (*ThrowErrorNew)(EtsEnv *env, ets_class cls, const char *message); 194 ets_error (*ErrorOccurred)(EtsEnv *env); 195 void (*ErrorDescribe)(EtsEnv *env); 196 void (*ErrorClear)(EtsEnv *env); 197 void (*FatalError)(EtsEnv *env, const char *message); 198 ets_int (*PushLocalFrame)(EtsEnv *env, ets_int capacity); 199 ets_object (*PopLocalFrame)(EtsEnv *env, ets_object result); 200 ets_object (*NewGlobalRef)(EtsEnv *env, ets_object obj); 201 void (*DeleteGlobalRef)(EtsEnv *env, ets_object globalRef); 202 void (*DeleteLocalRef)(EtsEnv *env, ets_object localRef); 203 ets_boolean (*IsSameObject)(EtsEnv *env, ets_object ref1, ets_object ref2); 204 ets_object (*NewLocalRef)(EtsEnv *env, ets_object ref); 205 ets_int (*EnsureLocalCapacity)(EtsEnv *env, ets_int capacity); 206 ets_object (*AllocObject)(EtsEnv *env, ets_class cls); 207 ets_object (*NewObject)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 208 ets_object (*NewObjectList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 209 ets_object (*NewObjectArray)(EtsEnv *env, ets_class cls, ets_method p_method, const ets_value *args); 210 ets_class (*GetObjectClass)(EtsEnv *env, ets_object obj); 211 ets_boolean (*IsInstanceOf)(EtsEnv *env, ets_object obj, ets_class cls); 212 ets_method (*Getp_method)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 213 ets_object (*CallObjectMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 214 ets_object (*CallObjectMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 215 ets_object (*CallObjectMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 216 ets_boolean (*CallBooleanMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 217 ets_boolean (*CallBooleanMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 218 ets_boolean (*CallBooleanMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 219 ets_byte (*CallByteMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 220 ets_byte (*CallByteMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 221 ets_byte (*CallByteMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 222 ets_char (*CallCharMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 223 ets_char (*CallCharMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 224 ets_char (*CallCharMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 225 ets_short (*CallShortMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 226 ets_short (*CallShortMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 227 ets_short (*CallShortMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 228 ets_int (*CallIntMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 229 ets_int (*CallIntMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 230 ets_int (*CallIntMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 231 ets_long (*CallLongMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 232 ets_long (*CallLongMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 233 ets_long (*CallLongMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 234 ets_float (*CallFloatMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 235 ets_float (*CallFloatMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 236 ets_float (*CallFloatMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 237 ets_double (*CallDoubleMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 238 ets_double (*CallDoubleMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 239 ets_double (*CallDoubleMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 240 void (*CallVoidMethod)(EtsEnv *env, ets_object obj, ets_method p_method, ...); 241 void (*CallVoidMethodList)(EtsEnv *env, ets_object obj, ets_method p_method, va_list args); 242 void (*CallVoidMethodArray)(EtsEnv *env, ets_object obj, ets_method p_method, const ets_value *args); 243 244 ets_object (*CallNonvirtualObjectMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 245 ets_object (*CallNonvirtualObjectMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 246 va_list args); 247 ets_object (*CallNonvirtualObjectMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 248 const ets_value *args); 249 ets_boolean (*CallNonvirtualBooleanMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 250 ets_boolean (*CallNonvirtualBooleanMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 251 va_list args); 252 ets_boolean (*CallNonvirtualBooleanMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 253 const ets_value *args); 254 ets_byte (*CallNonvirtualByteMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 255 ets_byte (*CallNonvirtualByteMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 256 va_list args); 257 ets_byte (*CallNonvirtualByteMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 258 const ets_value *args); 259 ets_char (*CallNonvirtualCharMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 260 ets_char (*CallNonvirtualCharMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 261 va_list args); 262 ets_char (*CallNonvirtualCharMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 263 const ets_value *args); 264 ets_short (*CallNonvirtualShortMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 265 ets_short (*CallNonvirtualShortMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 266 va_list args); 267 ets_short (*CallNonvirtualShortMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 268 const ets_value *args); 269 ets_int (*CallNonvirtualIntMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 270 ets_int (*CallNonvirtualIntMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 271 va_list args); 272 ets_int (*CallNonvirtualIntMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 273 const ets_value *args); 274 ets_long (*CallNonvirtualLongMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 275 ets_long (*CallNonvirtualLongMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 276 va_list args); 277 ets_long (*CallNonvirtualLongMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 278 const ets_value *args); 279 ets_float (*CallNonvirtualFloatMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 280 ets_float (*CallNonvirtualFloatMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 281 va_list args); 282 ets_float (*CallNonvirtualFloatMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 283 const ets_value *args); 284 ets_double (*CallNonvirtualDoubleMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 285 ets_double (*CallNonvirtualDoubleMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 286 va_list args); 287 ets_double (*CallNonvirtualDoubleMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 288 const ets_value *args); 289 void (*CallNonvirtualVoidMethod)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, ...); 290 void (*CallNonvirtualVoidMethodList)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, va_list args); 291 void (*CallNonvirtualVoidMethodArray)(EtsEnv *env, ets_object obj, ets_class cls, ets_method p_method, 292 const ets_value *args); 293 ets_field (*Getp_field)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 294 ets_object (*GetObjectField)(EtsEnv *env, ets_object obj, ets_field p_field); 295 ets_boolean (*GetBooleanField)(EtsEnv *env, ets_object obj, ets_field p_field); 296 ets_byte (*GetByteField)(EtsEnv *env, ets_object obj, ets_field p_field); 297 ets_char (*GetCharField)(EtsEnv *env, ets_object obj, ets_field p_field); 298 ets_short (*GetShortField)(EtsEnv *env, ets_object obj, ets_field p_field); 299 ets_int (*GetIntField)(EtsEnv *env, ets_object obj, ets_field p_field); 300 ets_long (*GetLongField)(EtsEnv *env, ets_object obj, ets_field p_field); 301 ets_float (*GetFloatField)(EtsEnv *env, ets_object obj, ets_field p_field); 302 ets_double (*GetDoubleField)(EtsEnv *env, ets_object obj, ets_field p_field); 303 void (*SetObjectField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_object value); 304 void (*SetBooleanField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_boolean value); 305 void (*SetByteField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_byte value); 306 void (*SetCharField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_char value); 307 void (*SetShortField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_short value); 308 void (*SetIntField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_int value); 309 void (*SetLongField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_long value); 310 void (*SetFloatField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_float value); 311 void (*SetDoubleField)(EtsEnv *env, ets_object obj, ets_field p_field, ets_double value); 312 ets_method (*GetStaticp_method)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 313 ets_object (*CallStaticObjectMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 314 ets_object (*CallStaticObjectMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 315 ets_object (*CallStaticObjectMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 316 ets_boolean (*CallStaticBooleanMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 317 ets_boolean (*CallStaticBooleanMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 318 ets_boolean (*CallStaticBooleanMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 319 ets_byte (*CallStaticByteMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 320 ets_byte (*CallStaticByteMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 321 ets_byte (*CallStaticByteMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 322 ets_char (*CallStaticCharMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 323 ets_char (*CallStaticCharMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 324 ets_char (*CallStaticCharMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 325 ets_short (*CallStaticShortMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 326 ets_short (*CallStaticShortMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 327 ets_short (*CallStaticShortMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 328 ets_int (*CallStaticIntMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 329 ets_int (*CallStaticIntMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 330 ets_int (*CallStaticIntMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 331 ets_long (*CallStaticLongMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 332 ets_long (*CallStaticLongMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 333 ets_long (*CallStaticLongMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 334 ets_float (*CallStaticFloatMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 335 ets_float (*CallStaticFloatMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 336 ets_float (*CallStaticFloatMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 337 ets_double (*CallStaticDoubleMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 338 ets_double (*CallStaticDoubleMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 339 ets_double (*CallStaticDoubleMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 340 void (*CallStaticVoidMethod)(EtsEnv *env, ets_class cls, ets_method p_method, ...); 341 void (*CallStaticVoidMethodList)(EtsEnv *env, ets_class cls, ets_method p_method, va_list args); 342 void (*CallStaticVoidMethodArray)(EtsEnv *env, ets_class cls, ets_method p_method, ets_value *args); 343 ets_field (*GetStaticp_field)(EtsEnv *env, ets_class cls, const char *name, const char *sig); 344 ets_object (*GetStaticObjectField)(EtsEnv *env, ets_class cls, ets_field p_field); 345 ets_boolean (*GetStaticBooleanField)(EtsEnv *env, ets_class cls, ets_field p_field); 346 ets_byte (*GetStaticByteField)(EtsEnv *env, ets_class cls, ets_field p_field); 347 ets_char (*GetStaticCharField)(EtsEnv *env, ets_class cls, ets_field p_field); 348 ets_short (*GetStaticShortField)(EtsEnv *env, ets_class cls, ets_field p_field); 349 ets_int (*GetStaticIntField)(EtsEnv *env, ets_class cls, ets_field p_field); 350 ets_long (*GetStaticLongField)(EtsEnv *env, ets_class cls, ets_field p_field); 351 ets_float (*GetStaticFloatField)(EtsEnv *env, ets_class cls, ets_field p_field); 352 ets_double (*GetStaticDoubleField)(EtsEnv *env, ets_class cls, ets_field p_field); 353 void (*SetStaticObjectField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_object value); 354 void (*SetStaticBooleanField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_boolean value); 355 void (*SetStaticByteField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_byte value); 356 void (*SetStaticCharField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_char value); 357 void (*SetStaticShortField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_short value); 358 void (*SetStaticIntField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_int value); 359 void (*SetStaticLongField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_long value); 360 void (*SetStaticFloatField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_float value); 361 void (*SetStaticDoubleField)(EtsEnv *env, ets_class cls, ets_field p_field, ets_double value); 362 ets_string (*NewString)(EtsEnv *env, const ets_char *unicodeChars, ets_size len); 363 ets_size (*GetStringLength)(EtsEnv *env, ets_string string); 364 const ets_char *(*GetStringChars)(EtsEnv *env, ets_string string, ets_boolean *isCopy); 365 void (*ReleaseStringChars)(EtsEnv *env, ets_string string, const ets_char *chars); 366 ets_string (*NewStringUTF)(EtsEnv *env, const char *bytes); 367 ets_size (*GetStringUTFLength)(EtsEnv *env, ets_string string); 368 const char *(*GetStringUTFChars)(EtsEnv *env, ets_string string, ets_boolean *isCopy); 369 void (*ReleaseStringUTFChars)(EtsEnv *env, ets_string string, const char *utf); 370 ets_size (*GetArrayLength)(EtsEnv *env, ets_array array); 371 ets_objectArray (*NewObjectsArray)(EtsEnv *env, ets_size length, ets_class element_class, 372 ets_object initial_element); 373 ets_object (*GetObjectArrayElement)(EtsEnv *env, ets_objectArray array, ets_size index); 374 void (*SetObjectArrayElement)(EtsEnv *env, ets_objectArray array, ets_size index, ets_object value); 375 ets_booleanArray (*NewBooleanArray)(EtsEnv *env, ets_size length); 376 ets_byteArray (*NewByteArray)(EtsEnv *env, ets_size length); 377 ets_charArray (*NewCharArray)(EtsEnv *env, ets_size length); 378 ets_shortArray (*NewShortArray)(EtsEnv *env, ets_size length); 379 ets_intArray (*NewIntArray)(EtsEnv *env, ets_size length); 380 ets_longArray (*NewLongArray)(EtsEnv *env, ets_size length); 381 ets_floatArray (*NewFloatArray)(EtsEnv *env, ets_size length); 382 ets_doubleArray (*NewDoubleArray)(EtsEnv *env, ets_size length); 383 ets_boolean *(*PinBooleanArray)(EtsEnv *env, ets_booleanArray array); 384 ets_byte *(*PinByteArray)(EtsEnv *env, ets_byteArray array); 385 ets_char *(*PinCharArray)(EtsEnv *env, ets_charArray array); 386 ets_short *(*PinShortArray)(EtsEnv *env, ets_shortArray array); 387 ets_int *(*PinIntArray)(EtsEnv *env, ets_intArray array); 388 ets_long *(*PinLongArray)(EtsEnv *env, ets_longArray array); 389 ets_float *(*PinFloatArray)(EtsEnv *env, ets_floatArray array); 390 ets_double *(*PinDoubleArray)(EtsEnv *env, ets_doubleArray array); 391 void (*UnpinBooleanArray)(EtsEnv *env, ets_booleanArray array); 392 void (*UnpinByteArray)(EtsEnv *env, ets_byteArray array); 393 void (*UnpinCharArray)(EtsEnv *env, ets_charArray array); 394 void (*UnpinShortArray)(EtsEnv *env, ets_shortArray array); 395 void (*UnpinIntArray)(EtsEnv *env, ets_intArray array); 396 void (*UnpinLongArray)(EtsEnv *env, ets_longArray array); 397 void (*UnpinFloatArray)(EtsEnv *env, ets_floatArray array); 398 void (*UnpinDoubleArray)(EtsEnv *env, ets_doubleArray array); 399 void (*GetBooleanArrayRegion)(EtsEnv *env, ets_booleanArray array, ets_size start, ets_size len, ets_boolean *buf); 400 void (*GetByteArrayRegion)(EtsEnv *env, ets_byteArray array, ets_size start, ets_size len, ets_byte *buf); 401 void (*GetCharArrayRegion)(EtsEnv *env, ets_charArray array, ets_size start, ets_size len, ets_char *buf); 402 void (*GetShortArrayRegion)(EtsEnv *env, ets_shortArray array, ets_size start, ets_size len, ets_short *buf); 403 void (*GetIntArrayRegion)(EtsEnv *env, ets_intArray array, ets_size start, ets_size len, ets_int *buf); 404 void (*GetLongArrayRegion)(EtsEnv *env, ets_longArray array, ets_size start, ets_size len, ets_long *buf); 405 void (*GetFloatArrayRegion)(EtsEnv *env, ets_floatArray array, ets_size start, ets_size len, ets_float *buf); 406 void (*GetDoubleArrayRegion)(EtsEnv *env, ets_doubleArray array, ets_size start, ets_size len, ets_double *buf); 407 void (*SetBooleanArrayRegion)(EtsEnv *env, ets_booleanArray array, ets_size start, ets_size len, 408 const ets_boolean *buf); 409 void (*SetByteArrayRegion)(EtsEnv *env, ets_byteArray array, ets_size start, ets_size len, const ets_byte *buf); 410 void (*SetCharArrayRegion)(EtsEnv *env, ets_charArray array, ets_size start, ets_size len, const ets_char *buf); 411 void (*SetShortArrayRegion)(EtsEnv *env, ets_shortArray array, ets_size start, ets_size len, const ets_short *buf); 412 void (*SetIntArrayRegion)(EtsEnv *env, ets_intArray array, ets_size start, ets_size len, const ets_int *buf); 413 void (*SetLongArrayRegion)(EtsEnv *env, ets_longArray array, ets_size start, ets_size len, const ets_long *buf); 414 void (*SetFloatArrayRegion)(EtsEnv *env, ets_floatArray array, ets_size start, ets_size len, const ets_float *buf); 415 void (*SetDoubleArrayRegion)(EtsEnv *env, ets_doubleArray array, ets_size start, ets_size len, 416 const ets_double *buf); 417 ets_int (*RegisterNatives)(EtsEnv *env, ets_class cls, const EtsNativeMethod *methods, ets_int nMethods); 418 ets_int (*UnregisterNatives)(EtsEnv *env, ets_class cls); 419 ets_int (*GetEtsVM)(EtsEnv *env, EtsVM **vm); 420 void (*GetStringRegion)(EtsEnv *env, ets_string str, ets_size start, ets_size len, ets_char *buf); 421 void (*GetStringUTFRegion)(EtsEnv *env, ets_string str, ets_size start, ets_size len, char *buf); 422 ets_weak (*NewWeakGlobalRef)(EtsEnv *env, ets_object obj); 423 void (*DeleteWeakGlobalRef)(EtsEnv *env, ets_weak obj); 424 ets_boolean (*ErrorCheck)(EtsEnv *env); 425 #ifdef ETS_NAPI_DESIGN_FINISHED 426 ets_object (*NewDirectByteBuffer)(EtsEnv *env, void *address, ets_long capacity); 427 void *(*GetDirectBufferAddress)(EtsEnv *env, ets_object buf); 428 ets_long (*GetDirectBufferCapacity)(EtsEnv *env, ets_object buf); 429 #endif 430 ets_objectRefType (*GetObjectRefType)(EtsEnv *env, ets_object obj); 431 432 /* 227 methods */ 433 434 // Promise API 435 ets_status (*PromiseCreate)(EtsEnv *env, ets_deferred *deferred, ets_object *promise); 436 ets_status (*DeferredResolve)(EtsEnv *env, ets_deferred deferred, ets_object resolution); 437 ets_status (*DeferredReject)(EtsEnv *env, ets_deferred deferred, ets_object rejection); 438 }; 439 // clang-format on 440 441 // Invocation API Functions 442 typedef enum { 443 ETS_LOG_LEVEL, 444 ETS_MOBILE_LOG, 445 ETS_BOOT_FILE, 446 ETS_AOT_FILE, 447 ETS_ARK_FILE, 448 ETS_JIT, 449 ETS_NO_JIT, 450 ETS_AOT, 451 ETS_NO_AOT, 452 ETS_GC_TRIGGER_TYPE, 453 ETS_GC_TYPE, 454 ETS_RUN_GC_IN_PLACE, 455 ETS_INTERPRETER_TYPE, 456 ETS_NATIVE_LIBRARY_PATH, 457 ETS_VERIFICATION_MODE 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 #ifdef _MSC_VER 488 #define ETS_EXPORT __declspec(dllexport) 489 #else 490 #define ETS_EXPORT __attribute__((visibility("default"))) 491 #endif 492 #define ETS_IMPORT 493 #define ETS_CALL 494 495 ETS_EXPORT ets_int ETS_GetDefaultVMInitArgs(EtsVMInitArgs *vmArgs); 496 ETS_EXPORT ets_int ETS_GetCreatedVMs(EtsVM **vmBuf, ets_size bufLen, ets_size *nVms); 497 ETS_EXPORT ets_int ETS_CreateVM(EtsVM **pVm, EtsEnv **pEnv, EtsVMInitArgs *vmArgs); 498 499 #ifdef __cplusplus 500 } 501 #endif 502 503 struct ETS_InvokeInterface { 504 ets_int (*DestroyEtsVM)(EtsVM *vm); 505 ets_int (*GetEnv)(EtsVM *vm, EtsEnv **pEnv, ets_int version); 506 }; 507 508 struct __EtsVM { 509 // NOLINTNEXTLINE(misc-non-private-member-variables-in-classes) 510 const struct ETS_InvokeInterface *invoke_interface; 511 512 #ifdef __cplusplus DestroyEtsVM__EtsVM513 ets_int DestroyEtsVM() 514 { 515 return invoke_interface->DestroyEtsVM(this); 516 } 517 GetEnv__EtsVM518 ets_int GetEnv(EtsEnv **pEnv, ets_int version) 519 { 520 return invoke_interface->GetEnv(this, pEnv, version); 521 } 522 #endif 523 }; 524 525 struct __EtsEnv { 526 // NOLINTNEXTLINE(misc-non-private-member-variables-in-classes) 527 const struct ETS_NativeInterface *native_interface; 528 529 #ifdef __cplusplus 530 GetVersion__EtsEnv531 ets_int GetVersion() 532 { 533 return native_interface->GetVersion(this); 534 } 535 // DefineClass, FindClass__EtsEnv536 ets_class FindClass(const char *name) 537 { 538 return native_interface->FindClass(this, name); 539 } 540 // FromReflectedMethod, 541 // FromReflectedField, 542 // ToReflectedMethod, GetSuperclass__EtsEnv543 ets_class GetSuperclass(ets_class cls) 544 { 545 return native_interface->GetSuperclass(this, cls); 546 } IsAssignableFrom__EtsEnv547 ets_boolean IsAssignableFrom(ets_class cls1, ets_class cls2) 548 { 549 return native_interface->IsAssignableFrom(this, cls1, cls2); 550 } 551 // ToReflectedField, ThrowError__EtsEnv552 ets_int ThrowError(ets_error obj) 553 { 554 return native_interface->ThrowError(this, obj); 555 } ThrowErrorNew__EtsEnv556 ets_int ThrowErrorNew(ets_class cls, const char *message) 557 { 558 return native_interface->ThrowErrorNew(this, cls, message); 559 } ErrorOccurred__EtsEnv560 ets_error ErrorOccurred() 561 { 562 return native_interface->ErrorOccurred(this); 563 } ErrorDescribe__EtsEnv564 void ErrorDescribe() 565 { 566 native_interface->ErrorDescribe(this); 567 } ErrorClear__EtsEnv568 void ErrorClear() 569 { 570 native_interface->ErrorClear(this); 571 } FatalError__EtsEnv572 void FatalError(const char *message) 573 { 574 native_interface->FatalError(this, message); 575 } PushLocalFrame__EtsEnv576 ets_int PushLocalFrame(ets_int capacity) 577 { 578 return native_interface->PushLocalFrame(this, capacity); 579 } PopLocalFrame__EtsEnv580 ets_object PopLocalFrame(ets_object result) 581 { 582 return native_interface->PopLocalFrame(this, result); 583 } NewGlobalRef__EtsEnv584 ets_object NewGlobalRef(ets_object obj) 585 { 586 return native_interface->NewGlobalRef(this, obj); 587 } DeleteGlobalRef__EtsEnv588 void DeleteGlobalRef(ets_object globalRef) 589 { 590 native_interface->DeleteGlobalRef(this, globalRef); 591 } DeleteLocalRef__EtsEnv592 void DeleteLocalRef(ets_object localRef) 593 { 594 native_interface->DeleteLocalRef(this, localRef); 595 } IsSameObject__EtsEnv596 ets_boolean IsSameObject(ets_object ref1, ets_object ref2) 597 { 598 return native_interface->IsSameObject(this, ref1, ref2); 599 } NewLocalRef__EtsEnv600 ets_object NewLocalRef(ets_object ref) 601 { 602 return native_interface->NewLocalRef(this, ref); 603 } EnsureLocalCapacity__EtsEnv604 ets_int EnsureLocalCapacity(ets_int capacity) 605 { 606 return native_interface->EnsureLocalCapacity(this, capacity); 607 } AllocObject__EtsEnv608 ets_object AllocObject(ets_class cls) 609 { 610 return native_interface->AllocObject(this, cls); 611 } NewObject__EtsEnv612 ets_object NewObject(ets_class cls, ets_method p_method, ...) 613 { 614 va_list args; 615 va_start(args, p_method); 616 ets_object ret = native_interface->NewObjectList(this, cls, p_method, args); 617 va_end(args); 618 return ret; 619 } NewObjectList__EtsEnv620 ets_object NewObjectList(ets_class cls, ets_method p_method, va_list args) 621 { 622 return native_interface->NewObjectList(this, cls, p_method, args); 623 } NewObjectArray__EtsEnv624 ets_object NewObjectArray(ets_class cls, ets_method p_method, const ets_value *args) 625 { 626 return native_interface->NewObjectArray(this, cls, p_method, args); 627 } GetObjectClass__EtsEnv628 ets_class GetObjectClass(ets_object obj) 629 { 630 return native_interface->GetObjectClass(this, obj); 631 } IsInstanceOf__EtsEnv632 ets_boolean IsInstanceOf(ets_object obj, ets_class cls) 633 { 634 return native_interface->IsInstanceOf(this, obj, cls); 635 } Getp_method__EtsEnv636 ets_method Getp_method(ets_class cls, const char *name, const char *sig) 637 { 638 return native_interface->Getp_method(this, cls, name, sig); 639 } CallObjectMethod__EtsEnv640 ets_object CallObjectMethod(ets_object obj, ets_method method_id, ...) 641 { 642 va_list args; 643 va_start(args, method_id); 644 ets_object res = native_interface->CallObjectMethodList(this, obj, method_id, args); 645 va_end(args); 646 return res; 647 } CallObjectMethodList__EtsEnv648 ets_object CallObjectMethodList(ets_object obj, ets_method method_id, va_list args) 649 { 650 return native_interface->CallObjectMethodList(this, obj, method_id, args); 651 } CallObjectMethodArray__EtsEnv652 ets_object CallObjectMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 653 { 654 return native_interface->CallObjectMethodArray(this, obj, method_id, args); 655 } CallBooleanMethod__EtsEnv656 ets_boolean CallBooleanMethod(ets_object obj, ets_method method_id, ...) 657 { 658 va_list args; 659 va_start(args, method_id); 660 ets_boolean res = native_interface->CallBooleanMethodList(this, obj, method_id, args); 661 va_end(args); 662 return res; 663 } CallBooleanMethodList__EtsEnv664 ets_boolean CallBooleanMethodList(ets_object obj, ets_method method_id, va_list args) 665 { 666 return native_interface->CallBooleanMethodList(this, obj, method_id, args); 667 } CallBooleanMethodArray__EtsEnv668 ets_boolean CallBooleanMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 669 { 670 return native_interface->CallBooleanMethodArray(this, obj, method_id, args); 671 } CallByteMethod__EtsEnv672 ets_byte CallByteMethod(ets_object obj, ets_method method_id, ...) 673 { 674 va_list args; 675 va_start(args, method_id); 676 ets_byte res = native_interface->CallByteMethodList(this, obj, method_id, args); 677 va_end(args); 678 return res; 679 } CallByteMethodList__EtsEnv680 ets_byte CallByteMethodList(ets_object obj, ets_method method_id, va_list args) 681 { 682 return native_interface->CallByteMethodList(this, obj, method_id, args); 683 } CallByteMethodArray__EtsEnv684 ets_byte CallByteMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 685 { 686 return native_interface->CallByteMethodArray(this, obj, method_id, args); 687 } CallCharMethod__EtsEnv688 ets_char CallCharMethod(ets_object obj, ets_method method_id, ...) 689 { 690 va_list args; 691 va_start(args, method_id); 692 ets_char res = native_interface->CallCharMethodList(this, obj, method_id, args); 693 va_end(args); 694 return res; 695 } CallCharMethodList__EtsEnv696 ets_char CallCharMethodList(ets_object obj, ets_method method_id, va_list args) 697 { 698 return native_interface->CallCharMethodList(this, obj, method_id, args); 699 } CallCharMethodArray__EtsEnv700 ets_char CallCharMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 701 { 702 return native_interface->CallCharMethodArray(this, obj, method_id, args); 703 } CallShortMethod__EtsEnv704 ets_short CallShortMethod(ets_object obj, ets_method method_id, ...) 705 { 706 va_list args; 707 va_start(args, method_id); 708 ets_short res = native_interface->CallShortMethodList(this, obj, method_id, args); 709 va_end(args); 710 return res; 711 } CallShortMethodList__EtsEnv712 ets_short CallShortMethodList(ets_object obj, ets_method method_id, va_list args) 713 { 714 return native_interface->CallShortMethodList(this, obj, method_id, args); 715 } CallShortMethodArray__EtsEnv716 ets_short CallShortMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 717 { 718 return native_interface->CallShortMethodArray(this, obj, method_id, args); 719 } CallIntMethod__EtsEnv720 ets_int CallIntMethod(ets_object obj, ets_method method_id, ...) 721 { 722 va_list args; 723 va_start(args, method_id); 724 ets_int res = native_interface->CallIntMethodList(this, obj, method_id, args); 725 va_end(args); 726 return res; 727 } CallIntMethodList__EtsEnv728 ets_int CallIntMethodList(ets_object obj, ets_method method_id, va_list args) 729 { 730 return native_interface->CallIntMethodList(this, obj, method_id, args); 731 } CallIntMethodArray__EtsEnv732 ets_int CallIntMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 733 { 734 return native_interface->CallIntMethodArray(this, obj, method_id, args); 735 } CallLongMethod__EtsEnv736 ets_long CallLongMethod(ets_object obj, ets_method method_id, ...) 737 { 738 va_list args; 739 va_start(args, method_id); 740 ets_long res = native_interface->CallLongMethodList(this, obj, method_id, args); 741 va_end(args); 742 return res; 743 } CallLongMethodList__EtsEnv744 ets_long CallLongMethodList(ets_object obj, ets_method method_id, va_list args) 745 { 746 return native_interface->CallLongMethodList(this, obj, method_id, args); 747 } CallLongMethodArray__EtsEnv748 ets_long CallLongMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 749 { 750 return native_interface->CallLongMethodArray(this, obj, method_id, args); 751 } CallFloatMethod__EtsEnv752 ets_float CallFloatMethod(ets_object obj, ets_method method_id, ...) 753 { 754 va_list args; 755 va_start(args, method_id); 756 ets_float res = native_interface->CallFloatMethodList(this, obj, method_id, args); 757 va_end(args); 758 return res; 759 } CallFloatMethodList__EtsEnv760 ets_float CallFloatMethodList(ets_object obj, ets_method method_id, va_list args) 761 { 762 return native_interface->CallFloatMethodList(this, obj, method_id, args); 763 } CallFloatMethodArray__EtsEnv764 ets_float CallFloatMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 765 { 766 return native_interface->CallFloatMethodArray(this, obj, method_id, args); 767 } CallDoubleMethod__EtsEnv768 ets_double CallDoubleMethod(ets_object obj, ets_method method_id, ...) 769 { 770 va_list args; 771 va_start(args, method_id); 772 ets_double res = native_interface->CallDoubleMethodList(this, obj, method_id, args); 773 va_end(args); 774 return res; 775 } CallDoubleMethodList__EtsEnv776 ets_double CallDoubleMethodList(ets_object obj, ets_method method_id, va_list args) 777 { 778 return native_interface->CallDoubleMethodList(this, obj, method_id, args); 779 } CallDoubleMethodArray__EtsEnv780 ets_double CallDoubleMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 781 { 782 return native_interface->CallDoubleMethodArray(this, obj, method_id, args); 783 } CallVoidMethod__EtsEnv784 void CallVoidMethod(ets_object obj, ets_method method_id, ...) 785 { 786 va_list args; 787 va_start(args, method_id); 788 native_interface->CallVoidMethodList(this, obj, method_id, args); 789 va_end(args); 790 } CallVoidMethodList__EtsEnv791 void CallVoidMethodList(ets_object obj, ets_method method_id, va_list args) 792 { 793 native_interface->CallVoidMethodList(this, obj, method_id, args); 794 } CallVoidMethodArray__EtsEnv795 void CallVoidMethodArray(ets_object obj, ets_method method_id, const ets_value *args) 796 { 797 native_interface->CallVoidMethodArray(this, obj, method_id, args); 798 } CallNonvirtualObjectMethod__EtsEnv799 ets_object CallNonvirtualObjectMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 800 { 801 va_list args; 802 va_start(args, method_id); 803 ets_object res = native_interface->CallNonvirtualObjectMethodList(this, obj, cls, method_id, args); 804 va_end(args); 805 return res; 806 } CallNonvirtualObjectMethodList__EtsEnv807 ets_object CallNonvirtualObjectMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 808 { 809 return native_interface->CallNonvirtualObjectMethodList(this, obj, cls, method_id, args); 810 } CallNonvirtualObjectMethodArray__EtsEnv811 ets_object CallNonvirtualObjectMethodArray(ets_object obj, ets_class cls, ets_method method_id, 812 const ets_value *args) 813 { 814 return native_interface->CallNonvirtualObjectMethodArray(this, obj, cls, method_id, args); 815 } CallNonvirtualBooleanMethod__EtsEnv816 ets_boolean CallNonvirtualBooleanMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 817 { 818 va_list args; 819 va_start(args, method_id); 820 ets_boolean res = native_interface->CallNonvirtualBooleanMethodList(this, obj, cls, method_id, args); 821 va_end(args); 822 return res; 823 } CallNonvirtualBooleanMethodList__EtsEnv824 ets_boolean CallNonvirtualBooleanMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 825 { 826 return native_interface->CallNonvirtualBooleanMethodList(this, obj, cls, method_id, args); 827 } CallNonvirtualBooleanMethodArray__EtsEnv828 ets_boolean CallNonvirtualBooleanMethodArray(ets_object obj, ets_class cls, ets_method method_id, 829 const ets_value *args) 830 { 831 return native_interface->CallNonvirtualBooleanMethodArray(this, obj, cls, method_id, args); 832 } CallNonvirtualByteMethod__EtsEnv833 ets_byte CallNonvirtualByteMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 834 { 835 va_list args; 836 va_start(args, method_id); 837 ets_byte res = native_interface->CallNonvirtualByteMethodList(this, obj, cls, method_id, args); 838 va_end(args); 839 return res; 840 } CallNonvirtualByteMethodList__EtsEnv841 ets_byte CallNonvirtualByteMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 842 { 843 return native_interface->CallNonvirtualByteMethodList(this, obj, cls, method_id, args); 844 } CallNonvirtualByteMethodArray__EtsEnv845 ets_byte CallNonvirtualByteMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 846 { 847 return native_interface->CallNonvirtualByteMethodArray(this, obj, cls, method_id, args); 848 } CallNonvirtualCharMethod__EtsEnv849 ets_char CallNonvirtualCharMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 850 { 851 va_list args; 852 va_start(args, method_id); 853 ets_char res = native_interface->CallNonvirtualCharMethodList(this, obj, cls, method_id, args); 854 va_end(args); 855 return res; 856 } CallNonvirtualCharMethodList__EtsEnv857 ets_char CallNonvirtualCharMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 858 { 859 return native_interface->CallNonvirtualCharMethodList(this, obj, cls, method_id, args); 860 } CallNonvirtualCharMethodArray__EtsEnv861 ets_char CallNonvirtualCharMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 862 { 863 return native_interface->CallNonvirtualCharMethodArray(this, obj, cls, method_id, args); 864 } CallNonvirtualShortMethod__EtsEnv865 ets_short CallNonvirtualShortMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 866 { 867 va_list args; 868 va_start(args, method_id); 869 ets_short res = native_interface->CallNonvirtualShortMethodList(this, obj, cls, method_id, args); 870 va_end(args); 871 return res; 872 } CallNonvirtualShortMethodList__EtsEnv873 ets_short CallNonvirtualShortMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 874 { 875 return native_interface->CallNonvirtualShortMethodList(this, obj, cls, method_id, args); 876 } CallNonvirtualShortMethodArray__EtsEnv877 ets_short CallNonvirtualShortMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 878 { 879 return native_interface->CallNonvirtualShortMethodArray(this, obj, cls, method_id, args); 880 } CallNonvirtualIntMethod__EtsEnv881 ets_int CallNonvirtualIntMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 882 { 883 va_list args; 884 va_start(args, method_id); 885 ets_int res = native_interface->CallNonvirtualIntMethodList(this, obj, cls, method_id, args); 886 va_end(args); 887 return res; 888 } CallNonvirtualIntMethodList__EtsEnv889 ets_int CallNonvirtualIntMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 890 { 891 return native_interface->CallNonvirtualIntMethodList(this, obj, cls, method_id, args); 892 } CallNonvirtualIntMethodArray__EtsEnv893 ets_int CallNonvirtualIntMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 894 { 895 return native_interface->CallNonvirtualIntMethodArray(this, obj, cls, method_id, args); 896 } CallNonvirtualLongMethod__EtsEnv897 ets_long CallNonvirtualLongMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 898 { 899 va_list args; 900 va_start(args, method_id); 901 ets_long res = native_interface->CallNonvirtualLongMethodList(this, obj, cls, method_id, args); 902 va_end(args); 903 return res; 904 } CallNonvirtualLongMethodList__EtsEnv905 ets_long CallNonvirtualLongMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 906 { 907 return native_interface->CallNonvirtualLongMethodList(this, obj, cls, method_id, args); 908 } CallNonvirtualLongMethodArray__EtsEnv909 ets_long CallNonvirtualLongMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 910 { 911 return native_interface->CallNonvirtualLongMethodArray(this, obj, cls, method_id, args); 912 } CallNonvirtualFloatMethod__EtsEnv913 ets_float CallNonvirtualFloatMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 914 { 915 va_list args; 916 va_start(args, method_id); 917 ets_float res = native_interface->CallNonvirtualFloatMethodList(this, obj, cls, method_id, args); 918 va_end(args); 919 return res; 920 } CallNonvirtualFloatMethodList__EtsEnv921 ets_float CallNonvirtualFloatMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 922 { 923 return native_interface->CallNonvirtualFloatMethodList(this, obj, cls, method_id, args); 924 } CallNonvirtualFloatMethodArray__EtsEnv925 ets_float CallNonvirtualFloatMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 926 { 927 return native_interface->CallNonvirtualFloatMethodArray(this, obj, cls, method_id, args); 928 } CallNonvirtualDoubleMethod__EtsEnv929 ets_double CallNonvirtualDoubleMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 930 { 931 va_list args; 932 va_start(args, method_id); 933 ets_double res = native_interface->CallNonvirtualDoubleMethodList(this, obj, cls, method_id, args); 934 va_end(args); 935 return res; 936 } CallNonvirtualDoubleMethodList__EtsEnv937 ets_double CallNonvirtualDoubleMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 938 { 939 return native_interface->CallNonvirtualDoubleMethodList(this, obj, cls, method_id, args); 940 } CallNonvirtualDoubleMethodArray__EtsEnv941 ets_double CallNonvirtualDoubleMethodArray(ets_object obj, ets_class cls, ets_method method_id, 942 const ets_value *args) 943 { 944 return native_interface->CallNonvirtualDoubleMethodArray(this, obj, cls, method_id, args); 945 } CallNonvirtualVoidMethod__EtsEnv946 void CallNonvirtualVoidMethod(ets_object obj, ets_class cls, ets_method method_id, ...) 947 { 948 va_list args; 949 va_start(args, method_id); 950 native_interface->CallNonvirtualVoidMethodList(this, obj, cls, method_id, args); 951 va_end(args); 952 } CallNonvirtualVoidMethodList__EtsEnv953 void CallNonvirtualVoidMethodList(ets_object obj, ets_class cls, ets_method method_id, va_list args) 954 { 955 native_interface->CallNonvirtualVoidMethodList(this, obj, cls, method_id, args); 956 } CallNonvirtualVoidMethodArray__EtsEnv957 void CallNonvirtualVoidMethodArray(ets_object obj, ets_class cls, ets_method method_id, const ets_value *args) 958 { 959 native_interface->CallNonvirtualVoidMethodArray(this, obj, cls, method_id, args); 960 } Getp_field__EtsEnv961 ets_field Getp_field(ets_class cls, const char *name, const char *sig) 962 { 963 return native_interface->Getp_field(this, cls, name, sig); 964 } GetObjectField__EtsEnv965 ets_object GetObjectField(ets_object obj, ets_field p_field) 966 { 967 return native_interface->GetObjectField(this, obj, p_field); 968 } GetBooleanField__EtsEnv969 ets_boolean GetBooleanField(ets_object obj, ets_field p_field) 970 { 971 return native_interface->GetBooleanField(this, obj, p_field); 972 } GetByteField__EtsEnv973 ets_byte GetByteField(ets_object obj, ets_field p_field) 974 { 975 return native_interface->GetByteField(this, obj, p_field); 976 } GetCharField__EtsEnv977 ets_char GetCharField(ets_object obj, ets_field p_field) 978 { 979 return native_interface->GetCharField(this, obj, p_field); 980 } GetShortField__EtsEnv981 ets_short GetShortField(ets_object obj, ets_field p_field) 982 { 983 return native_interface->GetShortField(this, obj, p_field); 984 } GetIntField__EtsEnv985 ets_int GetIntField(ets_object obj, ets_field p_field) 986 { 987 return native_interface->GetIntField(this, obj, p_field); 988 } GetLongField__EtsEnv989 ets_long GetLongField(ets_object obj, ets_field p_field) 990 { 991 return native_interface->GetLongField(this, obj, p_field); 992 } GetFloatField__EtsEnv993 ets_float GetFloatField(ets_object obj, ets_field p_field) 994 { 995 return native_interface->GetFloatField(this, obj, p_field); 996 } GetDoubleField__EtsEnv997 ets_double GetDoubleField(ets_object obj, ets_field p_field) 998 { 999 return native_interface->GetDoubleField(this, obj, p_field); 1000 } SetObjectField__EtsEnv1001 void SetObjectField(ets_object obj, ets_field p_field, ets_object value) 1002 { 1003 return native_interface->SetObjectField(this, obj, p_field, value); 1004 } SetBooleanField__EtsEnv1005 void SetBooleanField(ets_object obj, ets_field p_field, ets_boolean value) 1006 { 1007 return native_interface->SetBooleanField(this, obj, p_field, value); 1008 } SetByteField__EtsEnv1009 void SetByteField(ets_object obj, ets_field p_field, ets_byte value) 1010 { 1011 return native_interface->SetByteField(this, obj, p_field, value); 1012 } SetCharField__EtsEnv1013 void SetCharField(ets_object obj, ets_field p_field, ets_char value) 1014 { 1015 return native_interface->SetCharField(this, obj, p_field, value); 1016 } SetShortField__EtsEnv1017 void SetShortField(ets_object obj, ets_field p_field, ets_short value) 1018 { 1019 return native_interface->SetShortField(this, obj, p_field, value); 1020 } SetIntField__EtsEnv1021 void SetIntField(ets_object obj, ets_field p_field, ets_int value) 1022 { 1023 return native_interface->SetIntField(this, obj, p_field, value); 1024 } SetLongField__EtsEnv1025 void SetLongField(ets_object obj, ets_field p_field, ets_long value) 1026 { 1027 return native_interface->SetLongField(this, obj, p_field, value); 1028 } SetFloatField__EtsEnv1029 void SetFloatField(ets_object obj, ets_field p_field, ets_float value) 1030 { 1031 return native_interface->SetFloatField(this, obj, p_field, value); 1032 } SetDoubleField__EtsEnv1033 void SetDoubleField(ets_object obj, ets_field p_field, ets_double value) 1034 { 1035 return native_interface->SetDoubleField(this, obj, p_field, value); 1036 } GetStaticp_method__EtsEnv1037 ets_method GetStaticp_method(ets_class cls, const char *name, const char *sig) 1038 { 1039 return native_interface->GetStaticp_method(this, cls, name, sig); 1040 } CallStaticObjectMethod__EtsEnv1041 ets_object CallStaticObjectMethod(ets_class cls, ets_method method_id, ...) 1042 { 1043 va_list args; 1044 va_start(args, method_id); 1045 ets_object res = native_interface->CallStaticObjectMethodList(this, cls, method_id, args); 1046 va_end(args); 1047 return res; 1048 } CallStaticObjectMethodList__EtsEnv1049 ets_object CallStaticObjectMethodList(ets_class cls, ets_method method_id, va_list args) 1050 { 1051 return native_interface->CallStaticObjectMethodList(this, cls, method_id, args); 1052 } CallStaticObjectMethodArray__EtsEnv1053 ets_object CallStaticObjectMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1054 { 1055 return native_interface->CallStaticObjectMethodArray(this, cls, method_id, args); 1056 } CallStaticBooleanMethod__EtsEnv1057 ets_boolean CallStaticBooleanMethod(ets_class cls, ets_method method_id, ...) 1058 { 1059 va_list args; 1060 va_start(args, method_id); 1061 ets_boolean res = native_interface->CallStaticBooleanMethodList(this, cls, method_id, args); 1062 va_end(args); 1063 return res; 1064 } CallStaticBooleanMethodList__EtsEnv1065 ets_boolean CallStaticBooleanMethodList(ets_class cls, ets_method method_id, va_list args) 1066 { 1067 return native_interface->CallStaticBooleanMethodList(this, cls, method_id, args); 1068 } CallStaticBooleanMethodArray__EtsEnv1069 ets_boolean CallStaticBooleanMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1070 { 1071 return native_interface->CallStaticBooleanMethodArray(this, cls, method_id, args); 1072 } CallStaticByteMethod__EtsEnv1073 ets_byte CallStaticByteMethod(ets_class cls, ets_method method_id, ...) 1074 { 1075 va_list args; 1076 va_start(args, method_id); 1077 ets_byte res = native_interface->CallStaticByteMethodList(this, cls, method_id, args); 1078 va_end(args); 1079 return res; 1080 } CallStaticByteMethodList__EtsEnv1081 ets_byte CallStaticByteMethodList(ets_class cls, ets_method method_id, va_list args) 1082 { 1083 return native_interface->CallStaticByteMethodList(this, cls, method_id, args); 1084 } CallStaticByteMethodArray__EtsEnv1085 ets_byte CallStaticByteMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1086 { 1087 return native_interface->CallStaticByteMethodArray(this, cls, method_id, args); 1088 } CallStaticCharMethod__EtsEnv1089 ets_char CallStaticCharMethod(ets_class cls, ets_method method_id, ...) 1090 { 1091 va_list args; 1092 va_start(args, method_id); 1093 ets_char res = native_interface->CallStaticCharMethodList(this, cls, method_id, args); 1094 va_end(args); 1095 return res; 1096 } CallStaticCharMethodList__EtsEnv1097 ets_char CallStaticCharMethodList(ets_class cls, ets_method method_id, va_list args) 1098 { 1099 return native_interface->CallStaticCharMethodList(this, cls, method_id, args); 1100 } CallStaticCharMethodArray__EtsEnv1101 ets_char CallStaticCharMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1102 { 1103 return native_interface->CallStaticCharMethodArray(this, cls, method_id, args); 1104 } CallStaticShortMethod__EtsEnv1105 ets_short CallStaticShortMethod(ets_class cls, ets_method method_id, ...) 1106 { 1107 va_list args; 1108 va_start(args, method_id); 1109 ets_short res = native_interface->CallStaticShortMethodList(this, cls, method_id, args); 1110 va_end(args); 1111 return res; 1112 } CallStaticShortMethodList__EtsEnv1113 ets_short CallStaticShortMethodList(ets_class cls, ets_method method_id, va_list args) 1114 { 1115 return native_interface->CallStaticShortMethodList(this, cls, method_id, args); 1116 } CallStaticShortMethodArray__EtsEnv1117 ets_short CallStaticShortMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1118 { 1119 return native_interface->CallStaticShortMethodArray(this, cls, method_id, args); 1120 } CallStaticIntMethod__EtsEnv1121 ets_int CallStaticIntMethod(ets_class cls, ets_method method_id, ...) 1122 { 1123 va_list args; 1124 va_start(args, method_id); 1125 ets_int res = native_interface->CallStaticIntMethodList(this, cls, method_id, args); 1126 va_end(args); 1127 return res; 1128 } CallStaticIntMethodList__EtsEnv1129 ets_int CallStaticIntMethodList(ets_class cls, ets_method method_id, va_list args) 1130 { 1131 return native_interface->CallStaticIntMethodList(this, cls, method_id, args); 1132 } CallStaticIntMethodArray__EtsEnv1133 ets_int CallStaticIntMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1134 { 1135 return native_interface->CallStaticIntMethodArray(this, cls, method_id, args); 1136 } CallStaticLongMethod__EtsEnv1137 ets_long CallStaticLongMethod(ets_class cls, ets_method method_id, ...) 1138 { 1139 va_list args; 1140 va_start(args, method_id); 1141 ets_long res = native_interface->CallStaticLongMethodList(this, cls, method_id, args); 1142 va_end(args); 1143 return res; 1144 } CallStaticLongMethodList__EtsEnv1145 ets_long CallStaticLongMethodList(ets_class cls, ets_method method_id, va_list args) 1146 { 1147 return native_interface->CallStaticLongMethodList(this, cls, method_id, args); 1148 } CallStaticLongMethodArray__EtsEnv1149 ets_long CallStaticLongMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1150 { 1151 return native_interface->CallStaticLongMethodArray(this, cls, method_id, args); 1152 } CallStaticFloatMethod__EtsEnv1153 ets_float CallStaticFloatMethod(ets_class cls, ets_method method_id, ...) 1154 { 1155 va_list args; 1156 va_start(args, method_id); 1157 ets_float res = native_interface->CallStaticFloatMethodList(this, cls, method_id, args); 1158 va_end(args); 1159 return res; 1160 } CallStaticFloatMethodList__EtsEnv1161 ets_float CallStaticFloatMethodList(ets_class cls, ets_method method_id, va_list args) 1162 { 1163 return native_interface->CallStaticFloatMethodList(this, cls, method_id, args); 1164 } CallStaticFloatMethodArray__EtsEnv1165 ets_float CallStaticFloatMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1166 { 1167 return native_interface->CallStaticFloatMethodArray(this, cls, method_id, args); 1168 } CallStaticDoubleMethod__EtsEnv1169 ets_double CallStaticDoubleMethod(ets_class cls, ets_method method_id, ...) 1170 { 1171 va_list args; 1172 va_start(args, method_id); 1173 ets_double res = native_interface->CallStaticDoubleMethodList(this, cls, method_id, args); 1174 va_end(args); 1175 return res; 1176 } CallStaticDoubleMethodList__EtsEnv1177 ets_double CallStaticDoubleMethodList(ets_class cls, ets_method method_id, va_list args) 1178 { 1179 return native_interface->CallStaticDoubleMethodList(this, cls, method_id, args); 1180 } CallStaticDoubleMethodArray__EtsEnv1181 ets_double CallStaticDoubleMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1182 { 1183 return native_interface->CallStaticDoubleMethodArray(this, cls, method_id, args); 1184 } CallStaticVoidMethod__EtsEnv1185 void CallStaticVoidMethod(ets_class cls, ets_method method_id, ...) 1186 { 1187 va_list args; 1188 va_start(args, method_id); 1189 native_interface->CallStaticVoidMethodList(this, cls, method_id, args); 1190 va_end(args); 1191 } CallStaticVoidMethodList__EtsEnv1192 void CallStaticVoidMethodList(ets_class cls, ets_method method_id, va_list args) 1193 { 1194 native_interface->CallStaticVoidMethodList(this, cls, method_id, args); 1195 } CallStaticVoidMethodArray__EtsEnv1196 void CallStaticVoidMethodArray(ets_class cls, ets_method method_id, ets_value *args) 1197 { 1198 native_interface->CallStaticVoidMethodArray(this, cls, method_id, args); 1199 } GetStaticp_field__EtsEnv1200 ets_field GetStaticp_field(ets_class cls, const char *name, const char *sig) 1201 { 1202 return native_interface->GetStaticp_field(this, cls, name, sig); 1203 } GetStaticObjectField__EtsEnv1204 ets_object GetStaticObjectField(ets_class cls, ets_field p_field) 1205 { 1206 return native_interface->GetStaticObjectField(this, cls, p_field); 1207 } GetStaticBooleanField__EtsEnv1208 ets_boolean GetStaticBooleanField(ets_class cls, ets_field p_field) 1209 { 1210 return native_interface->GetStaticBooleanField(this, cls, p_field); 1211 } GetStaticByteField__EtsEnv1212 ets_byte GetStaticByteField(ets_class cls, ets_field p_field) 1213 { 1214 return native_interface->GetStaticByteField(this, cls, p_field); 1215 } GetStaticCharField__EtsEnv1216 ets_char GetStaticCharField(ets_class cls, ets_field p_field) 1217 { 1218 return native_interface->GetStaticCharField(this, cls, p_field); 1219 } GetStaticShortField__EtsEnv1220 ets_short GetStaticShortField(ets_class cls, ets_field p_field) 1221 { 1222 return native_interface->GetStaticShortField(this, cls, p_field); 1223 } GetStaticIntField__EtsEnv1224 ets_int GetStaticIntField(ets_class cls, ets_field p_field) 1225 { 1226 return native_interface->GetStaticIntField(this, cls, p_field); 1227 } GetStaticLongField__EtsEnv1228 ets_long GetStaticLongField(ets_class cls, ets_field p_field) 1229 { 1230 return native_interface->GetStaticLongField(this, cls, p_field); 1231 } GetStaticFloatField__EtsEnv1232 ets_float GetStaticFloatField(ets_class cls, ets_field p_field) 1233 { 1234 return native_interface->GetStaticFloatField(this, cls, p_field); 1235 } GetStaticDoubleField__EtsEnv1236 ets_double GetStaticDoubleField(ets_class cls, ets_field p_field) 1237 { 1238 return native_interface->GetStaticDoubleField(this, cls, p_field); 1239 } SetStaticObjectField__EtsEnv1240 void SetStaticObjectField(ets_class cls, ets_field p_field, ets_object value) 1241 { 1242 return native_interface->SetStaticObjectField(this, cls, p_field, value); 1243 } SetStaticBooleanField__EtsEnv1244 void SetStaticBooleanField(ets_class cls, ets_field p_field, ets_boolean value) 1245 { 1246 return native_interface->SetStaticBooleanField(this, cls, p_field, value); 1247 } SetStaticByteField__EtsEnv1248 void SetStaticByteField(ets_class cls, ets_field p_field, ets_byte value) 1249 { 1250 return native_interface->SetStaticByteField(this, cls, p_field, value); 1251 } SetStaticCharField__EtsEnv1252 void SetStaticCharField(ets_class cls, ets_field p_field, ets_char value) 1253 { 1254 return native_interface->SetStaticCharField(this, cls, p_field, value); 1255 } SetStaticShortField__EtsEnv1256 void SetStaticShortField(ets_class cls, ets_field p_field, ets_short value) 1257 { 1258 return native_interface->SetStaticShortField(this, cls, p_field, value); 1259 } SetStaticIntField__EtsEnv1260 void SetStaticIntField(ets_class cls, ets_field p_field, ets_int value) 1261 { 1262 return native_interface->SetStaticIntField(this, cls, p_field, value); 1263 } SetStaticLongField__EtsEnv1264 void SetStaticLongField(ets_class cls, ets_field p_field, ets_long value) 1265 { 1266 return native_interface->SetStaticLongField(this, cls, p_field, value); 1267 } SetStaticFloatField__EtsEnv1268 void SetStaticFloatField(ets_class cls, ets_field p_field, ets_float value) 1269 { 1270 return native_interface->SetStaticFloatField(this, cls, p_field, value); 1271 } SetStaticDoubleField__EtsEnv1272 void SetStaticDoubleField(ets_class cls, ets_field p_field, ets_double value) 1273 { 1274 return native_interface->SetStaticDoubleField(this, cls, p_field, value); 1275 } NewString__EtsEnv1276 ets_string NewString(const ets_char *unicode_chars, ets_size len) 1277 { 1278 return native_interface->NewString(this, unicode_chars, len); 1279 } GetStringLength__EtsEnv1280 ets_size GetStringLength(ets_string string) 1281 { 1282 return native_interface->GetStringLength(this, string); 1283 } GetStringChars__EtsEnv1284 const ets_char *GetStringChars(ets_string string, ets_boolean *is_copy) 1285 { 1286 return native_interface->GetStringChars(this, string, is_copy); 1287 } ReleaseStringChars__EtsEnv1288 void ReleaseStringChars(ets_string string, const ets_char *chars) 1289 { 1290 native_interface->ReleaseStringChars(this, string, chars); 1291 } NewStringUTF__EtsEnv1292 ets_string NewStringUTF(const char *bytes) 1293 { 1294 return native_interface->NewStringUTF(this, bytes); 1295 } GetStringUTFLength__EtsEnv1296 ets_size GetStringUTFLength(ets_string string) 1297 { 1298 return native_interface->GetStringUTFLength(this, string); 1299 } GetStringUTFChars__EtsEnv1300 const char *GetStringUTFChars(ets_string string, ets_boolean *is_copy) 1301 { 1302 return native_interface->GetStringUTFChars(this, string, is_copy); 1303 } ReleaseStringUTFChars__EtsEnv1304 void ReleaseStringUTFChars(ets_string string, const char *chars) 1305 { 1306 native_interface->ReleaseStringUTFChars(this, string, chars); 1307 } GetArrayLength__EtsEnv1308 ets_size GetArrayLength(ets_array array) 1309 { 1310 return native_interface->GetArrayLength(this, array); 1311 } NewObjectsArray__EtsEnv1312 ets_objectArray NewObjectsArray(ets_size length, ets_class element_class, ets_object initial_element) 1313 { 1314 return native_interface->NewObjectsArray(this, length, element_class, initial_element); 1315 } GetObjectArrayElement__EtsEnv1316 ets_object GetObjectArrayElement(ets_objectArray array, ets_size index) 1317 { 1318 return native_interface->GetObjectArrayElement(this, array, index); 1319 } 1320 SetObjectArrayElement__EtsEnv1321 void SetObjectArrayElement(ets_objectArray array, ets_size index, ets_object value) 1322 { 1323 native_interface->SetObjectArrayElement(this, array, index, value); 1324 } 1325 1326 // SetObjectArrayElement, NewBooleanArray__EtsEnv1327 ets_booleanArray NewBooleanArray(ets_size length) 1328 { 1329 return native_interface->NewBooleanArray(this, length); 1330 } NewByteArray__EtsEnv1331 ets_byteArray NewByteArray(ets_size length) 1332 { 1333 return native_interface->NewByteArray(this, length); 1334 } NewCharArray__EtsEnv1335 ets_charArray NewCharArray(ets_size length) 1336 { 1337 return native_interface->NewCharArray(this, length); 1338 } NewShortArray__EtsEnv1339 ets_shortArray NewShortArray(ets_size length) 1340 { 1341 return native_interface->NewShortArray(this, length); 1342 } NewIntArray__EtsEnv1343 ets_intArray NewIntArray(ets_size length) 1344 { 1345 return native_interface->NewIntArray(this, length); 1346 } NewLongArray__EtsEnv1347 ets_longArray NewLongArray(ets_size length) 1348 { 1349 return native_interface->NewLongArray(this, length); 1350 } NewFloatArray__EtsEnv1351 ets_floatArray NewFloatArray(ets_size length) 1352 { 1353 return native_interface->NewFloatArray(this, length); 1354 } NewDoubleArray__EtsEnv1355 ets_doubleArray NewDoubleArray(ets_size length) 1356 { 1357 return native_interface->NewDoubleArray(this, length); 1358 } PinBooleanArray__EtsEnv1359 ets_boolean *PinBooleanArray(ets_booleanArray array) 1360 { 1361 return native_interface->PinBooleanArray(this, array); 1362 } PinByteArray__EtsEnv1363 ets_byte *PinByteArray(ets_byteArray array) 1364 { 1365 return native_interface->PinByteArray(this, array); 1366 } PinCharArray__EtsEnv1367 ets_char *PinCharArray(ets_charArray array) 1368 { 1369 return native_interface->PinCharArray(this, array); 1370 } PinShortArray__EtsEnv1371 ets_short *PinShortArray(ets_shortArray array) 1372 { 1373 return native_interface->PinShortArray(this, array); 1374 } PinIntArray__EtsEnv1375 ets_int *PinIntArray(ets_intArray array) 1376 { 1377 return native_interface->PinIntArray(this, array); 1378 } PinLongArray__EtsEnv1379 ets_long *PinLongArray(ets_longArray array) 1380 { 1381 return native_interface->PinLongArray(this, array); 1382 } PinFloatArray__EtsEnv1383 ets_float *PinFloatArray(ets_floatArray array) 1384 { 1385 return native_interface->PinFloatArray(this, array); 1386 } PinDoubleArray__EtsEnv1387 ets_double *PinDoubleArray(ets_doubleArray array) 1388 { 1389 return native_interface->PinDoubleArray(this, array); 1390 } UnpinBooleanArray__EtsEnv1391 void UnpinBooleanArray(ets_booleanArray array) 1392 { 1393 return native_interface->UnpinBooleanArray(this, array); 1394 } UnpinByteArray__EtsEnv1395 void UnpinByteArray(ets_byteArray array) 1396 { 1397 return native_interface->UnpinByteArray(this, array); 1398 } UnpinCharArray__EtsEnv1399 void UnpinCharArray(ets_charArray array) 1400 { 1401 return native_interface->UnpinCharArray(this, array); 1402 } UnpinShortArray__EtsEnv1403 void UnpinShortArray(ets_shortArray array) 1404 { 1405 return native_interface->UnpinShortArray(this, array); 1406 } UnpinIntArray__EtsEnv1407 void UnpinIntArray(ets_intArray array) 1408 { 1409 return native_interface->UnpinIntArray(this, array); 1410 } UnpinLongArray__EtsEnv1411 void UnpinLongArray(ets_longArray array) 1412 { 1413 return native_interface->UnpinLongArray(this, array); 1414 } UnpinFloatArray__EtsEnv1415 void UnpinFloatArray(ets_floatArray array) 1416 { 1417 return native_interface->UnpinFloatArray(this, array); 1418 } UnpinDoubleArray__EtsEnv1419 void UnpinDoubleArray(ets_doubleArray array) 1420 { 1421 return native_interface->UnpinDoubleArray(this, array); 1422 } GetBooleanArrayRegion__EtsEnv1423 void GetBooleanArrayRegion(ets_booleanArray array, ets_size start, ets_size len, ets_boolean *buf) 1424 { 1425 return native_interface->GetBooleanArrayRegion(this, array, start, len, buf); 1426 } GetByteArrayRegion__EtsEnv1427 void GetByteArrayRegion(ets_byteArray array, ets_size start, ets_size len, ets_byte *buf) 1428 { 1429 return native_interface->GetByteArrayRegion(this, array, start, len, buf); 1430 } GetCharArrayRegion__EtsEnv1431 void GetCharArrayRegion(ets_charArray array, ets_size start, ets_size len, ets_char *buf) 1432 { 1433 return native_interface->GetCharArrayRegion(this, array, start, len, buf); 1434 } GetShortArrayRegion__EtsEnv1435 void GetShortArrayRegion(ets_shortArray array, ets_size start, ets_size len, ets_short *buf) 1436 { 1437 return native_interface->GetShortArrayRegion(this, array, start, len, buf); 1438 } GetIntArrayRegion__EtsEnv1439 void GetIntArrayRegion(ets_intArray array, ets_size start, ets_size len, ets_int *buf) 1440 { 1441 return native_interface->GetIntArrayRegion(this, array, start, len, buf); 1442 } GetLongArrayRegion__EtsEnv1443 void GetLongArrayRegion(ets_longArray array, ets_size start, ets_size len, ets_long *buf) 1444 { 1445 return native_interface->GetLongArrayRegion(this, array, start, len, buf); 1446 } GetFloatArrayRegion__EtsEnv1447 void GetFloatArrayRegion(ets_floatArray array, ets_size start, ets_size len, ets_float *buf) 1448 { 1449 return native_interface->GetFloatArrayRegion(this, array, start, len, buf); 1450 } GetDoubleArrayRegion__EtsEnv1451 void GetDoubleArrayRegion(ets_doubleArray array, ets_size start, ets_size len, ets_double *buf) 1452 { 1453 return native_interface->GetDoubleArrayRegion(this, array, start, len, buf); 1454 } SetBooleanArrayRegion__EtsEnv1455 void SetBooleanArrayRegion(ets_booleanArray array, ets_size start, ets_size length, const ets_boolean *buf) 1456 { 1457 native_interface->SetBooleanArrayRegion(this, array, start, length, buf); 1458 } SetByteArrayRegion__EtsEnv1459 void SetByteArrayRegion(ets_byteArray array, ets_size start, ets_size length, const ets_byte *buf) 1460 { 1461 native_interface->SetByteArrayRegion(this, array, start, length, buf); 1462 } SetCharArrayRegion__EtsEnv1463 void SetCharArrayRegion(ets_charArray array, ets_size start, ets_size length, const ets_char *buf) 1464 { 1465 native_interface->SetCharArrayRegion(this, array, start, length, buf); 1466 } SetShortArrayRegion__EtsEnv1467 void SetShortArrayRegion(ets_shortArray array, ets_size start, ets_size length, const ets_short *buf) 1468 { 1469 native_interface->SetShortArrayRegion(this, array, start, length, buf); 1470 } SetIntArrayRegion__EtsEnv1471 void SetIntArrayRegion(ets_intArray array, ets_size start, ets_size length, const ets_int *buf) 1472 { 1473 native_interface->SetIntArrayRegion(this, array, start, length, buf); 1474 } SetLongArrayRegion__EtsEnv1475 void SetLongArrayRegion(ets_longArray array, ets_size start, ets_size length, const ets_long *buf) 1476 { 1477 native_interface->SetLongArrayRegion(this, array, start, length, buf); 1478 } SetFloatArrayRegion__EtsEnv1479 void SetFloatArrayRegion(ets_floatArray array, ets_size start, ets_size length, const ets_float *buf) 1480 { 1481 native_interface->SetFloatArrayRegion(this, array, start, length, buf); 1482 } SetDoubleArrayRegion__EtsEnv1483 void SetDoubleArrayRegion(ets_doubleArray array, ets_size start, ets_size length, const ets_double *buf) 1484 { 1485 native_interface->SetDoubleArrayRegion(this, array, start, length, buf); 1486 } RegisterNatives__EtsEnv1487 ets_int RegisterNatives(ets_class cls, const EtsNativeMethod *methods, ets_int nMethods) 1488 { 1489 return native_interface->RegisterNatives(this, cls, methods, nMethods); 1490 } UnregisterNatives__EtsEnv1491 ets_int UnregisterNatives(ets_class cls) 1492 { 1493 return native_interface->UnregisterNatives(this, cls); 1494 } GetEtsVM__EtsEnv1495 ets_int GetEtsVM(EtsVM **vm) 1496 { 1497 return native_interface->GetEtsVM(this, vm); 1498 } GetStringRegion__EtsEnv1499 void GetStringRegion(ets_string str, ets_size start, ets_size len, ets_char *buf) 1500 { 1501 native_interface->GetStringRegion(this, str, start, len, buf); 1502 } GetStringUTFRegion__EtsEnv1503 void GetStringUTFRegion(ets_string str, ets_size start, ets_size len, char *buf) 1504 { 1505 native_interface->GetStringUTFRegion(this, str, start, len, buf); 1506 } NewWeakGlobalRef__EtsEnv1507 ets_weak NewWeakGlobalRef(ets_object obj) 1508 { 1509 return native_interface->NewWeakGlobalRef(this, obj); 1510 } DeleteWeakGlobalRef__EtsEnv1511 void DeleteWeakGlobalRef(ets_weak obj) 1512 { 1513 native_interface->DeleteWeakGlobalRef(this, obj); 1514 } ErrorCheck__EtsEnv1515 ets_boolean ErrorCheck() 1516 { 1517 return native_interface->ErrorCheck(this); 1518 } 1519 // NewDirectByteBuffer, 1520 // GetDirectBufferAddress, 1521 // GetDirectBufferCapacity, GetObjectRefType__EtsEnv1522 ets_objectRefType GetObjectRefType(ets_object obj) 1523 { 1524 return native_interface->GetObjectRefType(this, obj); 1525 } 1526 1527 // Promise PromiseCreate__EtsEnv1528 ets_status PromiseCreate(ets_deferred *deferred, ets_object *promise) 1529 { 1530 return native_interface->PromiseCreate(this, deferred, promise); 1531 } DeferredResolve__EtsEnv1532 ets_status DeferredResolve(ets_deferred deferred, ets_object resolution) 1533 { 1534 return native_interface->DeferredResolve(this, deferred, resolution); 1535 } DeferredReject__EtsEnv1536 ets_status DeferredReject(ets_deferred deferred, ets_object rejection) 1537 { 1538 return native_interface->DeferredReject(this, deferred, rejection); 1539 } 1540 #endif 1541 }; 1542 1543 // NOLINTEND(modernize-use-using, readability-identifier-naming, cppcoreguidelines-pro-type-vararg) 1544 1545 #endif // PANDA_RUNTIME_INTEROP_ETS_NAPI_H 1546