1 /** 2 * Copyright (c) 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 __ANI_H__ 17 #define __ANI_H__ 18 // NOLINTBEGIN 19 20 #ifdef __cplusplus 21 #include <cstdarg> 22 #include <cstddef> 23 #include <cstdint> 24 #else 25 #include <stdarg.h> 26 #include <stddef.h> 27 #include <stdint.h> 28 #endif 29 30 #define ANI_VERSION_1 1 31 32 #define ANI_FALSE 0 33 #define ANI_TRUE 1 34 35 typedef size_t ani_size; 36 37 // Primitive types: 38 typedef uint8_t ani_boolean; 39 typedef uint32_t ani_char; 40 typedef int8_t ani_byte; 41 typedef int16_t ani_short; 42 typedef int32_t ani_int; 43 typedef int64_t ani_long; 44 typedef float ani_float; 45 typedef double ani_double; 46 47 // Reference types: 48 #ifdef __cplusplus 49 class __ani_ref {}; 50 class __ani_module : public __ani_ref {}; 51 class __ani_namespace : public __ani_ref {}; 52 class __ani_object : public __ani_ref {}; 53 class __ani_fn_object : public __ani_object {}; 54 class __ani_enum_value : public __ani_object {}; 55 class __ani_error : public __ani_object {}; 56 class __ani_promise : public __ani_object {}; 57 class __ani_tuple_value : public __ani_object {}; 58 class __ani_type : public __ani_object {}; 59 class __ani_arraybuffer : public __ani_object {}; 60 class __ani_string : public __ani_object {}; 61 class __ani_stringliteral : public __ani_string {}; 62 class __ani_class : public __ani_type {}; 63 class __ani_enum : public __ani_type {}; 64 class __ani_tuple : public __ani_type {}; 65 class __ani_fixedarray : public __ani_object {}; 66 class __ani_fixedarray_boolean : public __ani_fixedarray {}; 67 class __ani_fixedarray_char : public __ani_fixedarray {}; 68 class __ani_fixedarray_byte : public __ani_fixedarray {}; 69 class __ani_fixedarray_short : public __ani_fixedarray {}; 70 class __ani_fixedarray_int : public __ani_fixedarray {}; 71 class __ani_fixedarray_long : public __ani_fixedarray {}; 72 class __ani_fixedarray_float : public __ani_fixedarray {}; 73 class __ani_fixedarray_double : public __ani_fixedarray {}; 74 class __ani_fixedarray_ref : public __ani_fixedarray {}; 75 typedef __ani_ref *ani_ref; 76 typedef __ani_module *ani_module; 77 typedef __ani_namespace *ani_namespace; 78 typedef __ani_object *ani_object; 79 typedef __ani_fn_object *ani_fn_object; 80 typedef __ani_enum_value *ani_enum_value; 81 typedef __ani_error *ani_error; 82 typedef __ani_promise *ani_promise; 83 typedef __ani_tuple_value *ani_tuple_value; 84 typedef __ani_type *ani_type; 85 typedef __ani_arraybuffer *ani_arraybuffer; 86 typedef __ani_string *ani_string; 87 typedef __ani_stringliteral *ani_stringliteral; 88 typedef __ani_class *ani_class; 89 typedef __ani_enum *ani_enum; 90 typedef __ani_tuple *ani_tuple; 91 typedef __ani_fixedarray *ani_fixedarray; 92 typedef __ani_fixedarray_boolean *ani_fixedarray_boolean; 93 typedef __ani_fixedarray_char *ani_fixedarray_char; 94 typedef __ani_fixedarray_byte *ani_fixedarray_byte; 95 typedef __ani_fixedarray_short *ani_fixedarray_short; 96 typedef __ani_fixedarray_int *ani_fixedarray_int; 97 typedef __ani_fixedarray_long *ani_fixedarray_long; 98 typedef __ani_fixedarray_float *ani_fixedarray_float; 99 typedef __ani_fixedarray_double *ani_fixedarray_double; 100 typedef __ani_fixedarray_ref *ani_fixedarray_ref; 101 #else // __cplusplus 102 struct __ani_ref; 103 typedef struct __ani_ref *ani_ref; 104 typedef ani_ref ani_module; 105 typedef ani_ref ani_namespace; 106 typedef ani_ref ani_object; 107 typedef ani_object ani_fn_object; 108 typedef ani_object ani_enum_value; 109 typedef ani_object ani_error; 110 typedef ani_object ani_promise; 111 typedef ani_object ani_tuple_value; 112 typedef ani_object ani_type; 113 typedef ani_object ani_arraybuffer; 114 typedef ani_object ani_string; 115 typedef ani_string ani_stringliteral; 116 typedef ani_type ani_class; 117 typedef ani_type ani_enum; 118 typedef ani_type ani_tuple; 119 typedef ani_object ani_fixedarray; 120 typedef ani_fixedarray ani_fixedarray_boolean; 121 typedef ani_fixedarray ani_fixedarray_char; 122 typedef ani_fixedarray ani_fixedarray_byte; 123 typedef ani_fixedarray ani_fixedarray_short; 124 typedef ani_fixedarray ani_fixedarray_int; 125 typedef ani_fixedarray ani_fixedarray_long; 126 typedef ani_fixedarray ani_fixedarray_float; 127 typedef ani_fixedarray ani_fixedarray_double; 128 typedef ani_fixedarray ani_fixedarray_ref; 129 #endif // __cplusplus 130 131 struct __ani_gref; 132 typedef struct __ani_gref *ani_gref; 133 134 struct __ani_wref; 135 typedef struct __ani_wref *ani_wref; 136 137 struct __ani_variable; 138 typedef struct __ani_variable *ani_variable; 139 140 struct __ani_function; 141 typedef struct __ani_function *ani_function; 142 143 struct __ani_field; 144 typedef struct __ani_field *ani_field; 145 146 struct __ani_static_field; 147 typedef struct __ani_satic_field *ani_static_field; 148 149 struct __ani_property; 150 typedef struct __ani_property *ani_property; 151 152 struct __ani_method; 153 typedef struct __ani_method *ani_method; 154 155 struct __ani_static_method; 156 typedef struct __ani_static_method *ani_static_method; 157 158 struct __ani_cls_slot; 159 typedef struct __ani_cls_slot *ani_cls_slot; 160 161 typedef void (*ani_finalizer)(void *data, void *hint); 162 163 typedef enum { 164 ANI_KIND_BOOLEAN, 165 ANI_KIND_CHAR, 166 ANI_KIND_BYTE, 167 ANI_KIND_SHORT, 168 ANI_KIND_INT, 169 ANI_KIND_LONG, 170 ANI_KIND_FLOAT, 171 ANI_KIND_DOUBLE, 172 ANI_KIND_REF, 173 } ani_kind; 174 175 typedef union { 176 ani_boolean z; 177 ani_char c; 178 ani_byte b; 179 ani_short s; 180 ani_int i; 181 ani_long l; 182 ani_float f; 183 ani_double d; 184 ani_ref r; 185 } ani_value; 186 187 typedef struct { 188 const char *name; 189 const char *signature; 190 const void *pointer; 191 } ani_native_function; 192 193 #ifdef __cplusplus 194 typedef struct __ani_vm ani_vm; 195 typedef struct __ani_env ani_env; 196 #else 197 typedef const struct __ani_vm_api *ani_vm; 198 typedef const struct __ani_interaction_api *ani_env; 199 #endif 200 201 typedef enum { 202 ANI_OK, 203 ANI_ERROR, 204 ANI_INVALID_ARGS, 205 ANI_INVALID_TYPE, 206 ANI_INVALID_DESCRIPTOR, 207 ANI_PENDING_ERROR, 208 ANI_NOT_FOUND, 209 ANI_ALREADY_BINDED, 210 ANI_OUT_OF_REF, 211 ANI_OUT_OF_MEMORY, 212 ANI_OUT_OF_RANGE, 213 ANI_BUFFER_TO_SMALL, 214 // NOTE: Add necessary status codes 215 } ani_status; 216 217 struct __ani_vm_api { 218 void *reserved0; 219 void *reserved1; 220 void *reserved2; 221 void *reserved3; 222 223 ani_status (*DestroyVM)(ani_vm *vm); 224 ani_status (*GetEnv)(ani_vm *vm, uint32_t version, ani_env **result); 225 ani_status (*AttachThread)(ani_vm *vm, void *params, ani_env **result); 226 ani_status (*DetachThread)(ani_vm *vm); 227 }; 228 229 typedef struct { 230 const char *option; 231 void *option_data; 232 } ani_vm_option; 233 234 #define ANI_EXPORT __attribute__((visibility("default"))) 235 236 #ifdef __cplusplus 237 extern "C" { 238 #endif 239 240 ANI_EXPORT ani_status ANI_CreateVM(uint32_t version, size_t nr_options, const ani_vm_option *options, ani_vm **result); 241 ANI_EXPORT ani_status ANI_GetCreatedVMs(ani_vm **vms_buffer, ani_size vms_buffer_length, ani_size *result); 242 243 // Prototypes of exported functions for a shared library. 244 ANI_EXPORT ani_status ANI_Constructor(ani_vm *vm, uint32_t *result); 245 ANI_EXPORT ani_status ANI_Destructor(ani_vm *vm); 246 247 #ifdef __cplusplus 248 } 249 #endif 250 251 struct __ani_interaction_api { 252 void *reserved0; 253 void *reserved1; 254 void *reserved2; 255 void *reserved3; 256 257 /** 258 * @brief Retrieves the version information. 259 * 260 * This function retrieves the version information and stores it in the result parameter. 261 * 262 * @param[in] env A pointer to the environment structure. 263 * @param[out] result A pointer to a variable where the version information will be stored. 264 * @return Returns a status code of type `ani_status` indicating success or failure. 265 */ 266 ani_status (*GetVersion)(ani_env *env, uint32_t *result); 267 268 /** 269 * @brief Retrieves the Virtual Machine (VM) instance. 270 * 271 * This function retrieves the VM instance and stores it in the result parameter. 272 * 273 * @param[in] env A pointer to the environment structure. 274 * @param[out] result A pointer to the VM instance to be populated. 275 * @return Returns a status code of type `ani_status` indicating success or failure. 276 */ 277 ani_status (*GetVM)(ani_env *env, ani_vm **result); 278 279 /** 280 * @brief Checks if a reference is an object. 281 * 282 * This function determines whether the specified reference represents an object. 283 * 284 * @param[in] env A pointer to the environment structure. 285 * @param[in] ref The reference to check. 286 * @param[out] result A pointer to store the boolean result (true if the reference is an object, false otherwise). 287 * @return Returns a status code of type `ani_status` indicating success or failure. 288 */ 289 ani_status (*Reference_IsObject)(ani_env *env, ani_ref ref, ani_boolean *result); 290 291 /** 292 * @brief Checks if a reference is a functional object. 293 * 294 * This function determines whether the specified reference represents a functional object. 295 * 296 * @param[in] env A pointer to the environment structure. 297 * @param[in] ref The reference to check. 298 * @param[out] result A pointer to store the boolean result (true if the reference is a functional object, false 299 * otherwise). 300 * @return Returns a status code of type `ani_status` indicating success or failure. 301 */ 302 ani_status (*Reference_IsFunctionalObject)(ani_env *env, ani_ref ref, ani_boolean *result); 303 304 /** 305 * @brief Checks if a reference is an enum. 306 * 307 * This function determines whether the specified reference represents an enum. 308 * 309 * @param[in] env A pointer to the environment structure. 310 * @param[in] ref The reference to check. 311 * @param[out] result A pointer to store the boolean result (true if the reference is an enum, false otherwise). 312 * @return Returns a status code of type `ani_status` indicating success or failure. 313 */ 314 ani_status (*Reference_IsEnum)(ani_env *env, ani_ref ref, ani_boolean *result); 315 316 /** 317 * @brief Checks if a reference is a tuple. 318 * 319 * This function determines whether the specified reference represents a tuple. 320 * 321 * @param[in] env A pointer to the environment structure. 322 * @param[in] ref The reference to check. 323 * @param[out] result A pointer to store the boolean result (true if the reference is a tuple, false otherwise). 324 * @return Returns a status code of type `ani_status` indicating success or failure. 325 */ 326 ani_status (*Reference_IsTuple)(ani_env *env, ani_ref ref, ani_boolean *result); 327 328 /** 329 * @brief Checks if a reference is a string. 330 * 331 * This function determines whether the specified reference represents a string. 332 * 333 * @param[in] env A pointer to the environment structure. 334 * @param[in] ref The reference to check. 335 * @param[out] result A pointer to store the boolean result (true if the reference is a string, false otherwise). 336 * @return Returns a status code of type `ani_status` indicating success or failure. 337 */ 338 ani_status (*Reference_IsString)(ani_env *env, ani_ref ref, ani_boolean *result); 339 340 /** 341 * @brief Checks if a reference is a string literal. 342 * 343 * This function determines whether the specified reference represents a string literal. 344 * 345 * @param[in] env A pointer to the environment structure. 346 * @param[in] ref The reference to check. 347 * @param[out] result A pointer to store the boolean result (true if the reference is a string literal, false 348 * otherwise). 349 * @return Returns a status code of type `ani_status` indicating success or failure. 350 */ 351 ani_status (*Reference_IsStringLiteral)(ani_env *env, ani_ref ref, ani_boolean *result); 352 353 /** 354 * @brief Checks if a reference is a fixed array. 355 * 356 * This function determines whether the specified reference represents a fixed array. 357 * 358 * @param[in] env A pointer to the environment structure. 359 * @param[in] ref The reference to check. 360 * @param[out] result A pointer to store the boolean result (true if the reference is a fixed array, false 361 * otherwise). 362 * @return Returns a status code of type `ani_status` indicating success or failure. 363 */ 364 ani_status (*Reference_IsFixedArray)(ani_env *env, ani_ref ref, ani_boolean *result); 365 366 /** 367 * @brief Checks if a reference is a fixed array of booleans. 368 * 369 * This function determines whether the specified reference represents a fixed array of booleans. 370 * 371 * @param[in] env A pointer to the environment structure. 372 * @param[in] ref The reference to check. 373 * @param[out] result A pointer to store the boolean result (true if the reference is a fixed array of booleans, 374 * false otherwise). 375 * @return Returns a status code of type `ani_status` indicating success or failure. 376 */ 377 ani_status (*Reference_IsFixedArray_Boolean)(ani_env *env, ani_ref ref, ani_boolean *result); 378 379 /** 380 * @brief Checks if a reference is a fixed array of chars. 381 * 382 * This function determines whether the specified reference represents a fixed array of chars. 383 * 384 * @param[in] env A pointer to the environment structure. 385 * @param[in] ref The reference to check. 386 * @param[out] result A pointer to store the char result (true if the reference is a fixed array of chars, false 387 * otherwise). 388 * @return Returns a status code of type `ani_status` indicating success or failure. 389 */ 390 ani_status (*Reference_IsFixedArray_Char)(ani_env *env, ani_ref ref, ani_boolean *result); 391 392 /** 393 * @brief Checks if a reference is a fixed array of bytes. 394 * 395 * This function determines whether the specified reference represents a fixed array of bytes. 396 * 397 * @param[in] env A pointer to the environment structure. 398 * @param[in] ref The reference to check. 399 * @param[out] result A pointer to store the byte result (true if the reference is a fixed array of bytes, false 400 * otherwise). 401 * @return Returns a status code of type `ani_status` indicating success or failure. 402 */ 403 ani_status (*Reference_IsFixedArray_Byte)(ani_env *env, ani_ref ref, ani_boolean *result); 404 405 /** 406 * @brief Checks if a reference is a fixed array of shorts. 407 * 408 * This function determines whether the specified reference represents a fixed array of shorts. 409 * 410 * @param[in] env A pointer to the environment structure. 411 * @param[in] ref The reference to check. 412 * @param[out] result A pointer to store the short result (true if the reference is a fixed array of shorts, false 413 * otherwise). 414 * @return Returns a status code of type `ani_status` indicating success or failure. 415 */ 416 ani_status (*Reference_IsFixedArray_Short)(ani_env *env, ani_ref ref, ani_boolean *result); 417 418 /** 419 * @brief Checks if a reference is a fixed array of integers. 420 * 421 * This function determines whether the specified reference represents a fixed array of integers. 422 * 423 * @param[in] env A pointer to the environment structure. 424 * @param[in] ref The reference to check. 425 * @param[out] result A pointer to store the integer result (true if the reference is a fixed array of integers, 426 * false otherwise). 427 * @return Returns a status code of type `ani_status` indicating success or failure. 428 */ 429 ani_status (*Reference_IsFixedArray_Int)(ani_env *env, ani_ref ref, ani_boolean *result); 430 431 /** 432 * @brief Checks if a reference is a fixed array of longs. 433 * 434 * This function determines whether the specified reference represents a fixed array of longs. 435 * 436 * @param[in] env A pointer to the environment structure. 437 * @param[in] ref The reference to check. 438 * @param[out] result A pointer to store the long result (true if the reference is a fixed array of longs, false 439 * otherwise). 440 * @return Returns a status code of type `ani_status` indicating success or failure. 441 */ 442 ani_status (*Reference_IsFixedArray_Long)(ani_env *env, ani_ref ref, ani_boolean *result); 443 444 /** 445 * @brief Checks if a reference is a fixed array of floats. 446 * 447 * This function determines whether the specified reference represents a fixed array of floats. 448 * 449 * @param[in] env A pointer to the environment structure. 450 * @param[in] ref The reference to check. 451 * @param[out] result A pointer to store the float result (true if the reference is a fixed array of floats, false 452 * otherwise). 453 * @return Returns a status code of type `ani_status` indicating success or failure. 454 */ 455 ani_status (*Reference_IsFixedArray_Float)(ani_env *env, ani_ref ref, ani_boolean *result); 456 457 /** 458 * @brief Checks if a reference is a fixed array of doubles. 459 * 460 * This function determines whether the specified reference represents a fixed array of doubles. 461 * 462 * @param[in] env A pointer to the environment structure. 463 * @param[in] ref The reference to check. 464 * @param[out] result A pointer to store the double result (true if the reference is a fixed array of doubles, false 465 * otherwise). 466 * @return Returns a status code of type `ani_status` indicating success or failure. 467 */ 468 ani_status (*Reference_IsFixedArray_Double)(ani_env *env, ani_ref ref, ani_boolean *result); 469 470 /** 471 * @brief Checks if a reference is a fixed array of references. 472 * 473 * This function determines whether the specified reference represents a fixed array of references. 474 * 475 * @param[in] env A pointer to the environment structure. 476 * @param[in] ref The reference to check. 477 * @param[out] result A pointer to store the boolean result (true if the reference is a fixed array of references, 478 * false otherwise). 479 * @return Returns a status code of type `ani_status` indicating success or failure. 480 */ 481 ani_status (*Reference_IsFixedArray_Ref)(ani_env *env, ani_ref ref, ani_boolean *result); 482 483 /** 484 * @brief Creates a new object of a specified class using a constructor method. 485 * 486 * This function creates a new object of the given class and calls the specified constructor method with variadic 487 * arguments. 488 * 489 * @param[in] env A pointer to the environment structure. 490 * @param[in] cls The class of the object to create. 491 * @param[in] method The constructor method to invoke. 492 * @param[in] ... Variadic arguments to pass to the constructor method. 493 * @param[out] result A pointer to store the object return value. 494 * @return Returns a status code of type `ani_status` indicating success or failure. 495 */ 496 ani_status (*Object_New)(ani_env *env, ani_class cls, ani_method method, ani_object *result, ...); 497 498 /** 499 * @brief Creates a new object of a specified class using a constructor method (array-based). 500 * 501 * This function creates a new object of the given class and calls the specified constructor method with arguments 502 * provided in an array. 503 * 504 * @param[in] env A pointer to the environment structure. 505 * @param[in] cls The class of the object to create. 506 * @param[in] method The constructor method to invoke. 507 * @param[in] args An array of arguments to pass to the constructor method. 508 * @param[out] result A pointer to store the object return value. 509 * @return Returns a status code of type `ani_status` indicating success or failure. 510 */ 511 ani_status (*Object_New_A)(ani_env *env, ani_class cls, ani_method method, ani_object *result, 512 const ani_value *args); 513 514 /** 515 * @brief Creates a new object of a specified class using a constructor method (variadic arguments). 516 * 517 * This function creates a new object of the given class and calls the specified constructor method with a `va_list` 518 * of arguments. 519 * 520 * @param[in] env A pointer to the environment structure. 521 * @param[in] cls The class of the object to create. 522 * @param[in] method The constructor method to invoke. 523 * @param[in] args A `va_list` of arguments to pass to the constructor method. 524 * @param[out] result A pointer to store the object return value. 525 * @return Returns a status code of type `ani_status` indicating success or failure. 526 */ 527 ani_status (*Object_New_V)(ani_env *env, ani_class cls, ani_method method, ani_object *result, va_list args); 528 529 /** 530 * @brief Retrieves the type of a given object. 531 * 532 * This function retrieves the type of the specified object. 533 * 534 * @param[in] env A pointer to the environment structure. 535 * @param[in] object The object whose type is to be retrieved. 536 * @param[out] result A pointer to store the retrieved type. 537 * @return Returns a status code of type `ani_status` indicating success or failure. 538 */ 539 ani_status (*Object_GetType)(ani_env *env, ani_object object, ani_type *result); 540 541 /** 542 * @brief Checks if an object is an instance of a specified type. 543 * 544 * This function checks whether the given object is an instance of the specified type. 545 * 546 * @param[in] env A pointer to the environment structure. 547 * @param[in] object The object to check. 548 * @param[in] type The type to compare against. 549 * @param[out] result A pointer to store the boolean result (true if the object is an instance of the type, false 550 * otherwise). 551 * @return Returns a status code of type `ani_status` indicating success or failure. 552 */ 553 ani_status (*Object_InstanceOf)(ani_env *env, ani_object object, ani_type type, ani_boolean *result); 554 555 /** 556 * @brief Checks if two objects are the same. 557 * 558 * This function compares two objects to determine if they refer to the same instance. 559 * 560 * @param[in] env A pointer to the environment structure. 561 * @param[in] object1 The first object to compare. 562 * @param[in] object2 The second object to compare. 563 * @param[out] result A pointer to store the boolean result (true if the objects are the same, false otherwise). 564 * @return Returns a status code of type `ani_status` indicating success or failure. 565 */ 566 ani_status (*Object_IsSame)(ani_env *env, ani_object object1, ani_object object2, ani_boolean *result); 567 568 /** 569 * @brief Retrieves the superclass of a specified type. 570 * 571 * This function retrieves the superclass of a given type and stores it in the result parameter. 572 * 573 * @param[in] env A pointer to the environment structure. 574 * @param[in] type The type for which to retrieve the superclass. 575 * @param[out] result A pointer to the superclass to be populated. 576 * @return Returns a status code of type `ani_status` indicating success or failure. 577 */ 578 ani_status (*Type_GetSuperClass)(ani_env *env, ani_type type, ani_class *result); 579 580 /** 581 * @brief Determines if one type is assignable from another. 582 * 583 * This function checks if a type is assignable from another and stores the result in the output parameter. 584 * 585 * @param[in] env A pointer to the environment structure. 586 * @param[in] from_type The source type. 587 * @param[in] to_type The target type. 588 * @param[out] result A pointer to a boolean indicating assignability. 589 * @return Returns a status code of type `ani_status` indicating success or failure. 590 */ 591 ani_status (*Type_IsAssignableFrom)(ani_env *env, ani_type from_type, ani_type to_type, ani_boolean *result); 592 593 /** 594 * @brief Finds a module by its descriptor. 595 * 596 * This function locates a module based on its descriptor and stores it in the result parameter. 597 * 598 * @param[in] env A pointer to the environment structure. 599 * @param[in] module_descriptor The descriptor of the module to find. 600 * @param[out] result A pointer to the module to be populated. 601 * @return Returns a status code of type `ani_status` indicating success or failure. 602 */ 603 ani_status (*FindModule)(ani_env *env, const char *module_descriptor, ani_module *result); 604 605 /** 606 * @brief Finds a namespace by its descriptor. 607 * 608 * This function locates a namespace based on its descriptor and stores it in the result parameter. 609 * 610 * @param[in] env A pointer to the environment structure. 611 * @param[in] namespace_descriptor The descriptor of the namespace to find. 612 * @param[out] result A pointer to the namespace to be populated. 613 * @return Returns a status code of type `ani_status` indicating success or failure. 614 */ 615 ani_status (*FindNamespace)(ani_env *env, const char *namespace_descriptor, ani_namespace *result); 616 617 /** 618 * @brief Finds a class by its descriptor. 619 * 620 * This function locates a class based on its descriptor and stores it in the result parameter. 621 * 622 * @param[in] env A pointer to the environment structure. 623 * @param[in] class_descriptor The descriptor of the class to find. 624 * @param[out] result A pointer to the class to be populated. 625 * @return Returns a status code of type `ani_status` indicating success or failure. 626 */ 627 ani_status (*FindClass)(ani_env *env, const char *class_descriptor, ani_class *result); 628 629 /** 630 * @brief Finds an enum by its descriptor. 631 * 632 * This function locates an enum based on its descriptor and stores it in the result parameter. 633 * 634 * @param[in] env A pointer to the environment structure. 635 * @param[in] enum_descriptor The descriptor of the enum to find. 636 * @param[out] result A pointer to the enum to be populated. 637 * @return Returns a status code of type `ani_status` indicating success or failure. 638 */ 639 ani_status (*FindEnum)(ani_env *env, const char *enum_descriptor, ani_enum *result); 640 641 /** 642 * @brief Finds a tuple by its descriptor. 643 * 644 * This function locates a tuple based on its descriptor and stores it in the result parameter. 645 * 646 * @param[in] env A pointer to the environment structure. 647 * @param[in] tuple_descriptor The descriptor of the tuple to find. 648 * @param[out] result A pointer to the tuple to be populated. 649 * @return Returns a status code of type `ani_status` indicating success or failure. 650 */ 651 ani_status (*FindTuple)(ani_env *env, const char *tuple_descriptor, ani_tuple *result); 652 653 /** 654 * @brief Finds a function by its descriptor. 655 * 656 * This function locates a function based on its descriptor and stores it in the result parameter. 657 * 658 * @param[in] env A pointer to the environment structure. 659 * @param[in] function_descriptor The descriptor of the function to find. 660 * @param[out] result A pointer to the function to be populated. 661 * @return Returns a status code of type `ani_status` indicating success or failure. 662 */ 663 ani_status (*FindFunction)(ani_env *env, const char *function_descriptor, ani_function *result); 664 665 /** 666 * @brief Finds a variable by its descriptor. 667 * 668 * This function locates a variable based on its descriptor and stores it in the result parameter. 669 * 670 * @param[in] env A pointer to the environment structure. 671 * @param[in] variable_descriptor The descriptor of the variable to find. 672 * @param[out] result A pointer to the variable to be populated. 673 * @return Returns a status code of type `ani_status` indicating success or failure. 674 */ 675 ani_status (*FindVariable)(ani_env *env, const char *variable_descriptor, ani_variable *result); 676 677 /** 678 * @brief Finds a namespace within a module by its descriptor. 679 * 680 * This function locates a namespace within the specified module based on its descriptor. 681 * 682 * @param[in] env A pointer to the environment structure. 683 * @param[in] module The module to search within. 684 * @param[in] namespace_descriptor The descriptor of the namespace to find. 685 * @param[out] result A pointer to the namespace object. 686 * @return Returns a status code of type `ani_status` indicating success or failure. 687 */ 688 ani_status (*Module_FindNamespace)(ani_env *env, ani_module module, const char *namespace_descriptor, 689 ani_namespace *result); 690 691 /** 692 * @brief Finds a class within a module by its descriptor. 693 * 694 * This function locates a class within the specified module based on its descriptor. 695 * 696 * @param[in] env A pointer to the environment structure. 697 * @param[in] module The module to search within. 698 * @param[in] class_descriptor The descriptor of the class to find. 699 * @param[out] result A pointer to the class object. 700 * @return Returns a status code of type `ani_status` indicating success or failure. 701 */ 702 ani_status (*Module_FindClass)(ani_env *env, ani_module module, const char *class_descriptor, ani_class *result); 703 704 /** 705 * @brief Finds an enum within a module by its descriptor. 706 * 707 * This function locates an enum within the specified module based on its descriptor. 708 * 709 * @param[in] env A pointer to the environment structure. 710 * @param[in] module The module to search within. 711 * @param[in] enum_descriptor The descriptor of the enum to find. 712 * @param[out] result A pointer to the enum object. 713 * @return Returns a status code of type `ani_status` indicating success or failure. 714 */ 715 ani_status (*Module_FindEnum)(ani_env *env, ani_module module, const char *enum_descriptor, ani_enum *result); 716 717 /** 718 * @brief Finds a function within a module by its name and signature. 719 * 720 * This function locates a function within the specified module based on its name and signature. 721 * 722 * @param[in] env A pointer to the environment structure. 723 * @param[in] module The module to search within. 724 * @param[in] name The name of the function to retrieve. 725 * @param[in] signature The signature of the function to retrieve. 726 * @param[out] result A pointer to the function object. 727 * @return Returns a status code of type `ani_status` indicating success or failure. 728 */ 729 ani_status (*Module_FindFunction)(ani_env *env, ani_module module, const char *name, const char *signature, 730 ani_function *result); 731 732 /** 733 * @brief Finds a variable within a module by its descriptor. 734 * 735 * This function locates a variable within the specified module based on its descriptor. 736 * 737 * @param[in] env A pointer to the environment structure. 738 * @param[in] module The module to search within. 739 * @param[in] variable_descriptor The descriptor of the variable to find. 740 * @param[out] result A pointer to the variable object. 741 * @return Returns a status code of type `ani_status` indicating success or failure. 742 */ 743 ani_status (*Module_FindVariable)(ani_env *env, ani_module module, const char *variable_descriptor, 744 ani_variable *result); 745 746 /** 747 * @brief Finds a namespace within another namespace by its descriptor. 748 * 749 * This function locates a namespace within the specified parent namespace based on its descriptor. 750 * 751 * @param[in] env A pointer to the environment structure. 752 * @param[in] ns The parent namespace to search within. 753 * @param[in] namespace_descriptor The descriptor of the namespace to find. 754 * @param[out] result A pointer to the namespace object. 755 * @return Returns a status code of type `ani_status` indicating success or failure. 756 */ 757 ani_status (*Namespace_FindNamespace)(ani_env *env, ani_namespace ns, const char *namespace_descriptor, 758 ani_namespace *result); 759 760 /** 761 * @brief Finds a class within a namespace by its descriptor. 762 * 763 * This function locates a class within the specified namespace based on its descriptor. 764 * 765 * @param[in] env A pointer to the environment structure. 766 * @param[in] ns The namespace to search within. 767 * @param[in] class_descriptor The descriptor of the class to find. 768 * @param[out] result A pointer to the class object. 769 * @return Returns a status code of type `ani_status` indicating success or failure. 770 */ 771 ani_status (*Namespace_FindClass)(ani_env *env, ani_namespace ns, const char *class_descriptor, ani_class *result); 772 773 /** 774 * @brief Finds an enum within a namespace by its descriptor. 775 * 776 * This function locates an enum within the specified namespace based on its descriptor. 777 * 778 * @param[in] env A pointer to the environment structure. 779 * @param[in] ns The namespace to search within. 780 * @param[in] enum_descriptor The descriptor of the enum to find. 781 * @param[out] result A pointer to the enum object. 782 * @return Returns a status code of type `ani_status` indicating success or failure. 783 */ 784 ani_status (*Namespace_FindEnum)(ani_env *env, ani_namespace ns, const char *enum_descriptor, ani_enum *result); 785 786 /** 787 * @brief Finds a function within a namespace by its name and signature. 788 * 789 * This function locates a function within the specified namespace based on its name and signature. 790 * 791 * @param[in] env A pointer to the environment structure. 792 * @param[in] ns The namespace to search within. 793 * @param[in] name The name of the function to retrieve. 794 * @param[in] signature The signature of the function to retrieve. 795 * @param[out] result A pointer to the function object. 796 * @return Returns a status code of type `ani_status` indicating success or failure. 797 */ 798 ani_status (*Namespace_FindFunction)(ani_env *env, ani_namespace ns, const char *name, const char *signature, 799 ani_function *result); 800 801 /** 802 * @brief Finds a variable within a namespace by its descriptor. 803 * 804 * This function locates a variable within the specified namespace based on its descriptor. 805 * 806 * @param[in] env A pointer to the environment structure. 807 * @param[in] ns The namespace to search within. 808 * @param[in] variable_descriptor The descriptor of the variable to find. 809 * @param[out] result A pointer to the variable object. 810 * @return Returns a status code of type `ani_status` indicating success or failure. 811 */ 812 ani_status (*Namespace_FindVariable)(ani_env *env, ani_namespace ns, const char *variable_descriptor, 813 ani_variable *result); 814 815 /** 816 * @brief Binds native functions to a module. 817 * 818 * This function binds an array of native functions to the specified module. 819 * 820 * @param[in] env A pointer to the environment structure. 821 * @param[in] module The module to which the native functions will be bound. 822 * @param[in] functions A pointer to an array of native functions to bind. 823 * @param[in] nr_functions The number of native functions in the array. 824 * @return Returns a status code of type `ani_status` indicating success or failure. 825 */ 826 ani_status (*Module_BindNativeFunctions)(ani_env *env, ani_module module, const ani_native_function *functions, 827 ani_size nr_functions); 828 829 /** 830 * @brief Binds native functions to a namespace. 831 * 832 * This function binds an array of native functions to the specified namespace. 833 * 834 * @param[in] env A pointer to the environment structure. 835 * @param[in] ns The namespace to which the native functions will be bound. 836 * @param[in] functions A pointer to an array of native functions to bind. 837 * @param[in] nr_functions The number of native functions in the array. 838 * @return Returns a status code of type `ani_status` indicating success or failure. 839 */ 840 ani_status (*Namespace_BindNativeFunctions)(ani_env *env, ani_namespace ns, const ani_native_function *functions, 841 ani_size nr_functions); 842 843 /** 844 * @brief Binds native methods to a class. 845 * 846 * This function binds an array of native methods to the specified class. 847 * 848 * @param[in] env A pointer to the environment structure. 849 * @param[in] cls The class to which the native methods will be bound. 850 * @param[in] methods A pointer to an array of native methods to bind. 851 * @param[in] nr_methods The number of native methods in the array. 852 * @return Returns a status code of type `ani_status` indicating success or failure. 853 */ 854 ani_status (*Class_BindNativeMethods)(ani_env *env, ani_class cls, const ani_native_function *methods, 855 ani_size nr_methods); 856 857 /** 858 * @brief Deletes a local reference. 859 * 860 * This function deletes a specified local reference to free up resources. 861 * 862 * @param[in] env A pointer to the environment structure. 863 * @param[in] ref The reference to be deleted. 864 * @return Returns a status code of type `ani_status` indicating success or failure. 865 */ 866 ani_status (*Reference_Delete)(ani_env *env, ani_ref ref); 867 868 /** 869 * @brief Ensures enough local references are available. 870 * 871 * This function checks and ensures that the specified number of local references can be created. 872 * 873 * @param[in] env A pointer to the environment structure. 874 * @param[in] nr_refs The number of local references to ensure availability for. 875 * @return Returns a status code of type `ani_status` indicating success or failure. 876 */ 877 ani_status (*EnsureEnoughReferences)(ani_env *env, ani_size nr_refs); 878 879 /** 880 * @brief Creates a new local scope for references. 881 * 882 * This function creates a local scope for references with a specified capacity. 883 * 884 * @param[in] env A pointer to the environment structure. 885 * @param[in] nr_refs The maximum number of references that can be created in this scope. 886 * @return Returns a status code of type `ani_status` indicating success or failure. 887 */ 888 ani_status (*CreateLocalScope)(ani_env *env, ani_size nr_refs); 889 890 /** 891 * @brief Destroys the current local scope. 892 * 893 * This function destroys the current local scope and frees all references within it. 894 * 895 * @param[in] env A pointer to the environment structure. 896 * @return Returns a status code of type `ani_status` indicating success or failure. 897 */ 898 ani_status (*DestroyLocalScope)(ani_env *env); 899 900 /** 901 * @brief Creates a new escape local scope. 902 * 903 * This function creates a local scope for references with escape functionality, allowing objects to escape this 904 * scope. 905 * 906 * @param[in] env A pointer to the environment structure. 907 * @param[in] nr_refs The maximum number of references that can be created in this scope. 908 * @return Returns a status code of type `ani_status` indicating success or failure. 909 */ 910 ani_status (*CreateEscapeLocalScope)(ani_env *env, ani_size nr_refs); 911 912 /** 913 * @brief Destroys the current escape local scope. 914 * 915 * This function destroys the current escape local scope and allows escaping references to be retrieved. 916 * 917 * @param[in] env A pointer to the environment structure. 918 * @param[in] ref The reference to be escaped from the current scope. 919 * @param[out] result A pointer to the resulting reference that has escaped the scope. 920 * @return Returns a status code of type `ani_status` indicating success or failure. 921 */ 922 ani_status (*DestroyEscapeLocalScope)(ani_env *env, ani_ref ref, ani_ref *result); 923 924 /** 925 * @brief Throws an error. 926 * 927 * This function throws the specified error in the current environment. 928 * 929 * @param[in] env A pointer to the environment structure. 930 * @param[in] err The error to throw. 931 * @return Returns a status code of type `ani_status` indicating success or failure. 932 */ 933 ani_status (*ThrowError)(ani_env *env, ani_error err); 934 935 /** 936 * @brief Checks if there are unhandled errors. 937 * 938 * This function determines if there are unhandled errors in the current environment. 939 * 940 * @param[in] env A pointer to the environment structure. 941 * @param[out] result A pointer to a boolean indicating if unhandled errors exist. 942 * @return Returns a status code of type `ani_status` indicating success or failure. 943 */ 944 ani_status (*ExistUnhandledError)(ani_env *env, ani_boolean *result); 945 946 /** 947 * @brief Retrieves the current unhandled error. 948 * 949 * This function fetches the unhandled error in the environment. 950 * 951 * @param[in] env A pointer to the environment structure. 952 * @param[out] result A pointer to store the unhandled error. 953 * @return Returns a status code of type `ani_status` indicating success or failure. 954 */ 955 ani_status (*GetUnhandledError)(ani_env *env, ani_error *result); 956 957 /** 958 * @brief Resets the current error state. 959 * 960 * This function clears the error state in the current environment. 961 * 962 * @param[in] env A pointer to the environment structure. 963 * @return Returns a status code of type `ani_status` indicating success or failure. 964 */ 965 ani_status (*ResetError)(ani_env *env); 966 967 /** 968 * @brief Provides a description of the current error. 969 * 970 * This function prints the stack trace or other debug information for the current error. 971 * 972 * @param[in] env A pointer to the environment structure. 973 * @return Returns a status code of type `ani_status` indicating success or failure. 974 */ 975 ani_status (*DescribeError)(ani_env *env); // NOTE: Print stacktrace for debugging? 976 977 /** 978 * @brief Aborts execution with a message. 979 * 980 * This function terminates execution with the specified error message. 981 * 982 * @param[in] env A pointer to the environment structure. 983 * @param[in] message The error message to display on termination. 984 * @return Does not return; the process terminates. 985 */ 986 ani_status (*Abort)(ani_env *env, const char *message); 987 988 /** 989 * @brief Retrieves a null reference. 990 * 991 * This function provides a null reference in the specified result. 992 * 993 * @param[in] env A pointer to the environment structure. 994 * @param[out] result A pointer to store the null reference. 995 * @return Returns a status code of type `ani_status` indicating success or failure. 996 */ 997 ani_status (*GetNull)(ani_env *env, ani_ref *result); 998 999 /** 1000 * @brief Retrieves an undefined reference. 1001 * 1002 * This function provides an undefined reference in the specified result. 1003 * 1004 * @param[in] env A pointer to the environment structure. 1005 * @param[out] result A pointer to store the undefined reference. 1006 * @return Returns a status code of type `ani_status` indicating success or failure. 1007 */ 1008 ani_status (*GetUndefined)(ani_env *env, ani_ref *result); 1009 1010 /** 1011 * @brief Checks if a reference is null. 1012 * 1013 * This function determines if the specified reference is null. 1014 * 1015 * @param[in] env A pointer to the environment structure. 1016 * @param[in] ref The reference to check. 1017 * @param[out] result A pointer to a boolean indicating if the reference is null. 1018 * @return Returns a status code of type `ani_status` indicating success or failure. 1019 */ 1020 ani_status (*Reference_IsNull)(ani_env *env, ani_ref ref, ani_boolean *result); 1021 1022 /** 1023 * @brief Checks if a reference is undefined. 1024 * 1025 * This function determines if the specified reference is undefined. 1026 * 1027 * @param[in] env A pointer to the environment structure. 1028 * @param[in] ref The reference to check. 1029 * @param[out] result A pointer to a boolean indicating if the reference is undefined. 1030 * @return Returns a status code of type `ani_status` indicating success or failure. 1031 */ 1032 ani_status (*Reference_IsUndefined)(ani_env *env, ani_ref ref, ani_boolean *result); 1033 1034 /** 1035 * @brief Checks if a reference is nullish value (null or undefined). 1036 * 1037 * This function determines if the specified reference is either null or undefined. 1038 * 1039 * @param[in] env A pointer to the environment structure. 1040 * @param[in] ref The reference to check. 1041 * @param[out] result A pointer to a boolean indicating if the reference is nullish value. 1042 * @return Returns a status code of type `ani_status` indicating success or failure. 1043 */ 1044 ani_status (*Reference_IsNullishValue)(ani_env *env, ani_ref ref, ani_boolean *result); 1045 1046 /** 1047 * @brief Compares two references for equality. 1048 * 1049 * This function checks if two references are equal. 1050 * 1051 * @param[in] env A pointer to the environment structure. 1052 * @param[in] ref0 The first reference to compare. 1053 * @param[in] ref1 The second reference to compare. 1054 * @param[out] result A pointer to a boolean indicating if the references are equal. 1055 * @return Returns a status code of type `ani_status` indicating success or failure. 1056 */ 1057 ani_status (*Reference_Equals)(ani_env *env, ani_ref ref0, ani_ref ref1, ani_boolean *result); 1058 1059 /** 1060 * @brief Compares two references for strict equality. 1061 * 1062 * This function checks if two references are strictly equal. 1063 * 1064 * @param[in] env A pointer to the environment structure. 1065 * @param[in] ref0 The first reference to compare. 1066 * @param[in] ref1 The second reference to compare. 1067 * @param[out] result A pointer to a boolean indicating if the references are strictly equal. 1068 * @return Returns a status code of type `ani_status` indicating success or failure. 1069 */ 1070 ani_status (*Reference_StrictEquals)(ani_env *env, ani_ref ref0, ani_ref ref1, ani_boolean *result); 1071 1072 /** 1073 * @brief Creates a new UTF-16 string. 1074 * 1075 * This function creates a new string from the provided UTF-16 encoded data. 1076 * 1077 * @param[in] env A pointer to the environment structure. 1078 * @param[in] utf16_string A pointer to the UTF-16 encoded string data. 1079 * @param[in] utf16_size The size of the UTF-16 string in code units. 1080 * @param[out] result A pointer to store the created string. 1081 * @return Returns a status code of type `ani_status` indicating success or failure. 1082 */ 1083 ani_status (*String_NewUTF16)(ani_env *env, const uint16_t *utf16_string, ani_size utf16_size, ani_string *result); 1084 1085 /** 1086 * @brief Retrieves the size of a UTF-16 string. 1087 * 1088 * This function retrieves the size (in code units) of the specified UTF-16 string. 1089 * 1090 * @param[in] env A pointer to the environment structure. 1091 * @param[in] string The UTF-16 string to measure. 1092 * @param[out] result A pointer to store the size of the string. 1093 * @return Returns a status code of type `ani_status` indicating success or failure. 1094 */ 1095 ani_status (*String_GetUTF16Size)(ani_env *env, ani_string string, ani_size *result); 1096 1097 /** 1098 * @brief Retrieves the UTF-16 encoded data of a string. 1099 * 1100 * This function copies the UTF-16 encoded data of the string into the provided buffer. 1101 * 1102 * @param[in] env A pointer to the environment structure. 1103 * @param[in] string The string to retrieve data from. 1104 * @param[out] utf16_buffer A buffer to store the UTF-16 encoded data. 1105 * @param[in] utf16_buffer_size The size of the buffer in code units. 1106 * @param[out] result A pointer to store the number of code units written. 1107 * @return Returns a status code of type `ani_status` indicating success or failure. 1108 */ 1109 ani_status (*String_GetUTF16)(ani_env *env, ani_string string, uint16_t *utf16_buffer, ani_size utf16_buffer_size, 1110 ani_size *result); 1111 1112 /** 1113 * @brief Retrieves a substring of a UTF-16 string. 1114 * 1115 * This function copies a portion of the UTF-16 string into the provided buffer. 1116 * 1117 * @param[in] env A pointer to the environment structure. 1118 * @param[in] string The string to retrieve data from. 1119 * @param[in] substr_offset The starting offset of the substring. 1120 * @param[in] substr_size The size of the substring in code units. 1121 * @param[out] utf16_buffer A buffer to store the substring. 1122 * @param[in] utf16_buffer_size The size of the buffer in code units. 1123 * @param[out] result A pointer to store the number of code units written. 1124 * @return Returns a status code of type `ani_status` indicating success or failure. 1125 */ 1126 ani_status (*String_GetUTF16SubString)(ani_env *env, ani_string string, ani_size substr_offset, 1127 ani_size substr_size, uint16_t *utf16_buffer, ani_size utf16_buffer_size, 1128 ani_size *result); 1129 1130 /** 1131 * @brief Creates a new UTF-8 string. 1132 * 1133 * This function creates a new string from the provided UTF-8 encoded data. 1134 * 1135 * @param[in] env A pointer to the environment structure. 1136 * @param[in] utf8_string A pointer to the UTF-8 encoded string data. 1137 * @param[in] utf8_size The size of the UTF-8 string in bytes. 1138 * @param[out] result A pointer to store the created string. 1139 * @return Returns a status code of type `ani_status` indicating success or failure. 1140 */ 1141 ani_status (*String_NewUTF8)(ani_env *env, const char *utf8_string, ani_size utf8_size, ani_string *result); 1142 1143 /** 1144 * @brief Retrieves the size of a UTF-8 string. 1145 * 1146 * This function retrieves the size (in bytes) of the specified UTF-8 string. 1147 * 1148 * @param[in] env A pointer to the environment structure. 1149 * @param[in] string The UTF-8 string to measure. 1150 * @param[out] result A pointer to store the size of the string. 1151 * @return Returns a status code of type `ani_status` indicating success or failure. 1152 */ 1153 ani_status (*String_GetUTF8Size)(ani_env *env, ani_string string, ani_size *result); 1154 1155 /** 1156 * @brief Retrieves the UTF-8 encoded data of a string. 1157 * 1158 * This function copies the UTF-8 encoded data of the string into the provided buffer. 1159 * 1160 * @param[in] env A pointer to the environment structure. 1161 * @param[in] string The string to retrieve data from. 1162 * @param[out] utf8_buffer A buffer to store the UTF-8 encoded data. 1163 * @param[in] utf8_buffer_size The size of the buffer in bytes. 1164 * @param[out] result A pointer to store the number of bytes written. 1165 * @return Returns a status code of type `ani_status` indicating success or failure. 1166 */ 1167 ani_status (*String_GetUTF8)(ani_env *env, ani_string string, char *utf8_buffer, ani_size utf8_buffer_size, 1168 ani_size *result); 1169 1170 /** 1171 * @brief Retrieves a substring of a UTF-8 string. 1172 * 1173 * This function copies a portion of the UTF-8 string into the provided buffer. 1174 * 1175 * @param[in] env A pointer to the environment structure. 1176 * @param[in] string The string to retrieve data from. 1177 * @param[in] substr_offset The starting offset of the substring. 1178 * @param[in] substr_size The size of the substring in bytes. 1179 * @param[out] utf8_buffer A buffer to store the substring. 1180 * @param[in] utf8_buffer_size The size of the buffer in bytes. 1181 * @param[out] result A pointer to store the number of bytes written. 1182 * @return Returns a status code of type `ani_status` indicating success or failure. 1183 */ 1184 ani_status (*String_GetUTF8SubString)(ani_env *env, ani_string string, ani_size substr_offset, ani_size substr_size, 1185 char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result); 1186 1187 /** 1188 * @brief Retrieves critical information about a string. 1189 * 1190 * This function retrieves the type and data of a string for critical operations. 1191 * 1192 * @param[in] env A pointer to the environment structure. 1193 * @param[in] string The string to analyze. 1194 * @param[out] result_string_type A pointer to store the type of the string (e.g., UTF-16 or UTF-8). 1195 * @param[out] result_data A pointer to the raw string data. 1196 * @param[out] result_size A pointer to the size of the string data. 1197 * @return Returns a status code of type `ani_status` indicating success or failure. 1198 */ 1199 ani_status (*String_GetCritical)(ani_env *env, ani_string string, uint32_t *result_string_type, 1200 const void **result_data, 1201 ani_size *result_size); // result_string_type - string type utf16/utf8, etc? 1202 1203 /** 1204 * @brief Releases critical string data. 1205 * 1206 * This function releases the raw string data retrieved using `String_GetCritical`. 1207 * 1208 * @param[in] env A pointer to the environment structure. 1209 * @param[in] string The string whose data was retrieved. 1210 * @param[in] data A pointer to the raw data to release. 1211 * @return Returns a status code of type `ani_status` indicating success or failure. 1212 */ 1213 ani_status (*String_ReleaseCritical)(ani_env *env, ani_string string, const void *data); 1214 1215 /** 1216 * @brief Creates a new UTF-16 string literal. 1217 * 1218 * This function creates a new string literal from the provided UTF-16 encoded data. 1219 * 1220 * @param[in] env A pointer to the environment structure. 1221 * @param[in] utf16_string A pointer to the UTF-16 encoded string data. 1222 * @param[in] utf16_size The size of the UTF-16 string in code units. 1223 * @param[out] result A pointer to store the created string literal. 1224 * @return Returns a status code of type `ani_status` indicating success or failure. 1225 */ 1226 ani_status (*StringLiteral_NewUTF16)(ani_env *env, const uint16_t *utf16_string, ani_size utf16_size, 1227 ani_stringliteral *result); 1228 1229 /** 1230 * @brief Retrieves the size of a UTF-16 string literal. 1231 * 1232 * This function retrieves the size (in code units) of the specified UTF-16 string literal. 1233 * 1234 * @param[in] env A pointer to the environment structure. 1235 * @param[in] string The UTF-16 string literal to measure. 1236 * @param[out] result A pointer to store the size of the string literal. 1237 * @return Returns a status code of type `ani_status` indicating success or failure. 1238 */ 1239 ani_status (*StringLiteral_GetUTF16Size)(ani_env *env, ani_stringliteral string, ani_size *result); 1240 1241 /** 1242 * @brief Retrieves the UTF-16 encoded data of a string literal. 1243 * 1244 * This function copies the UTF-16 encoded data of the string literal into the provided buffer. 1245 * 1246 * @param[in] env A pointer to the environment structure. 1247 * @param[in] string The string literal to retrieve data from. 1248 * @param[out] utf16_buffer A buffer to store the UTF-16 encoded data. 1249 * @param[in] utf16_buffer_size The size of the buffer in code units. 1250 * @param[out] result A pointer to store the number of code units written. 1251 * @return Returns a status code of type `ani_status` indicating success or failure. 1252 */ 1253 ani_status (*StringLiteral_GetUTF16)(ani_env *env, ani_stringliteral string, uint16_t *utf16_buffer, 1254 ani_size utf16_buffer_size, ani_size *result); 1255 1256 /** 1257 * @brief Retrieves a substring of a UTF-16 string literal. 1258 * 1259 * This function copies a portion of the UTF-16 string literal into the provided buffer. 1260 * 1261 * @param[in] env A pointer to the environment structure. 1262 * @param[in] string The string literal to retrieve data from. 1263 * @param[in] substr_offset The starting offset of the substring. 1264 * @param[in] substr_size The size of the substring in code units. 1265 * @param[out] utf16_buffer A buffer to store the substring. 1266 * @param[in] utf16_buffer_size The size of the buffer in code units. 1267 * @param[out] result A pointer to store the number of code units written. 1268 * @return Returns a status code of type `ani_status` indicating success or failure. 1269 */ 1270 ani_status (*StringLiteral_GetUTF16SubString)(ani_env *env, ani_stringliteral string, ani_size substr_offset, 1271 ani_size substr_size, uint16_t *utf16_buffer, 1272 ani_size utf16_buffer_size, ani_size *result); 1273 1274 /** 1275 * @brief Creates a new UTF-8 string literal. 1276 * 1277 * This function creates a new string literal from the provided UTF-8 encoded data. 1278 * 1279 * @param[in] env A pointer to the environment structure. 1280 * @param[in] utf8_string A pointer to the UTF-8 encoded string data. 1281 * @param[in] size The size of the UTF-8 string in bytes. 1282 * @param[out] result A pointer to store the created string literal. 1283 * @return Returns a status code of type `ani_status` indicating success or failure. 1284 */ 1285 ani_status (*StringLiteral_NewUTF8)(ani_env *env, const char *utf8_string, ani_size size, 1286 ani_stringliteral *result); 1287 1288 /** 1289 * @brief Retrieves the size of a UTF-8 string literal. 1290 * 1291 * This function retrieves the size (in bytes) of the specified UTF-8 string literal. 1292 * 1293 * @param[in] env A pointer to the environment structure. 1294 * @param[in] string The UTF-8 string literal to measure. 1295 * @param[out] result A pointer to store the size of the string literal. 1296 * @return Returns a status code of type `ani_status` indicating success or failure. 1297 */ 1298 ani_status (*StringLiteral_GetUTF8Size)(ani_env *env, ani_stringliteral string, ani_size *result); 1299 1300 /** 1301 * @brief Retrieves the UTF-8 encoded data of a string literal. 1302 * 1303 * This function copies the UTF-8 encoded data of the string literal into the provided buffer. 1304 * 1305 * @param[in] env A pointer to the environment structure. 1306 * @param[in] string The string literal to retrieve data from. 1307 * @param[out] utf8_buffer A buffer to store the UTF-8 encoded data. 1308 * @param[in] utf8_buffer_size The size of the buffer in bytes. 1309 * @param[out] result A pointer to store the number of bytes written. 1310 * @return Returns a status code of type `ani_status` indicating success or failure. 1311 */ 1312 ani_status (*StringLiteral_GetUTF8)(ani_env *env, ani_stringliteral string, char *utf8_buffer, 1313 ani_size utf8_buffer_size, ani_size *result); 1314 1315 /** 1316 * @brief Retrieves a substring of a UTF-8 string literal. 1317 * 1318 * This function copies a portion of the UTF-8 string literal into the provided buffer. 1319 * 1320 * @param[in] env A pointer to the environment structure. 1321 * @param[in] string The string literal to retrieve data from. 1322 * @param[in] substr_offset The starting offset of the substring. 1323 * @param[in] substr_size The size of the substring in bytes. 1324 * @param[out] utf8_buffer A buffer to store the substring. 1325 * @param[in] utf8_buffer_size The size of the buffer in bytes. 1326 * @param[out] result A pointer to store the number of bytes written. 1327 * @return Returns a status code of type `ani_status` indicating success or failure. 1328 */ 1329 ani_status (*StringLiteral_GetUTF8SubString)(ani_env *env, ani_stringliteral string, ani_size substr_offset, 1330 ani_size substr_size, char *utf8_buffer, ani_size utf8_buffer_size, 1331 ani_size *result); 1332 1333 /** 1334 * @brief Retrieves critical information about a string literal. 1335 * 1336 * This function retrieves the type and data of a string literal for critical operations. 1337 * 1338 * @param[in] env A pointer to the environment structure. 1339 * @param[in] string The string literal to analyze. 1340 * @param[out] result_string_type A pointer to store the type of the string literal (e.g., UTF-16 or UTF-8). 1341 * @param[out] result_data A pointer to the raw string literal data. 1342 * @param[out] result_size A pointer to the size of the string literal data. 1343 * @return Returns a status code of type `ani_status` indicating success or failure. 1344 */ 1345 ani_status (*StringLiteral_GetCritical)( 1346 ani_env *env, ani_stringliteral string, uint32_t *result_string_type, const void **result_data, 1347 ani_size *result_size); // result_string_type - string type utf16/utf8, etc? 1348 1349 /** 1350 * @brief Releases critical string literal data. 1351 * 1352 * This function releases the raw string literal data retrieved using `StringLiteral_GetCritical`. 1353 * 1354 * @param[in] env A pointer to the environment structure. 1355 * @param[in] string The string literal whose data was retrieved. 1356 * @param[in] data A pointer to the raw data to release. 1357 * @return Returns a status code of type `ani_status` indicating success or failure. 1358 */ 1359 ani_status (*StringLiteral_ReleaseCritical)(ani_env *env, ani_stringliteral string, const void *data); 1360 1361 /** 1362 * @brief Retrieves the length of a fixed array. 1363 * 1364 * This function retrieves the length of the specified fixed array. 1365 * 1366 * @param[in] env A pointer to the environment structure. 1367 * @param[in] array The fixed array whose length is to be retrieved. 1368 * @param[out] result A pointer to store the length of the array. 1369 * @return Returns a status code of type `ani_status` indicating success or failure. 1370 */ 1371 ani_status (*FixedArray_GetLength)(ani_env *env, ani_fixedarray array, ani_size *result); 1372 1373 /** 1374 * @brief Creates a new fixed array of booleans. 1375 * 1376 * This function creates a new fixed array of the specified length for boolean values. 1377 * 1378 * @param[in] env A pointer to the environment structure. 1379 * @param[in] length The length of the array to be created. 1380 * @param[out] result A pointer to store the created fixed array. 1381 * @return Returns a status code of type `ani_status` indicating success or failure. 1382 */ 1383 ani_status (*FixedArray_New_Boolean)(ani_env *env, ani_size length, ani_fixedarray_boolean *result); 1384 1385 /** 1386 * @brief Creates a new fixed array of characters. 1387 * 1388 * This function creates a new fixed array of the specified length for character values. 1389 * 1390 * @param[in] env A pointer to the environment structure. 1391 * @param[in] length The length of the array to be created. 1392 * @param[out] result A pointer to store the created fixed array. 1393 * @return Returns a status code of type `ani_status` indicating success or failure. 1394 */ 1395 ani_status (*FixedArray_New_Char)(ani_env *env, ani_size length, ani_fixedarray_char *result); 1396 1397 /** 1398 * @brief Creates a new fixed array of bytes. 1399 * 1400 * This function creates a new fixed array of the specified length for byte values. 1401 * 1402 * @param[in] env A pointer to the environment structure. 1403 * @param[in] length The length of the array to be created. 1404 * @param[out] result A pointer to store the created fixed array. 1405 * @return Returns a status code of type `ani_status` indicating success or failure. 1406 */ 1407 ani_status (*FixedArray_New_Byte)(ani_env *env, ani_size length, ani_fixedarray_byte *result); 1408 1409 /** 1410 * @brief Creates a new fixed array of shorts. 1411 * 1412 * This function creates a new fixed array of the specified length for short integer values. 1413 * 1414 * @param[in] env A pointer to the environment structure. 1415 * @param[in] length The length of the array to be created. 1416 * @param[out] result A pointer to store the created fixed array. 1417 * @return Returns a status code of type `ani_status` indicating success or failure. 1418 */ 1419 ani_status (*FixedArray_New_Short)(ani_env *env, ani_size length, ani_fixedarray_short *result); 1420 1421 /** 1422 * @brief Creates a new fixed array of integers. 1423 * 1424 * This function creates a new fixed array of the specified length for integer values. 1425 * 1426 * @param[in] env A pointer to the environment structure. 1427 * @param[in] length The length of the array to be created. 1428 * @param[out] result A pointer to store the created fixed array. 1429 * @return Returns a status code of type `ani_status` indicating success or failure. 1430 */ 1431 ani_status (*FixedArray_New_Int)(ani_env *env, ani_size length, ani_fixedarray_int *result); 1432 1433 /** 1434 * @brief Creates a new fixed array of long integers. 1435 * 1436 * This function creates a new fixed array of the specified length for long integer values. 1437 * 1438 * @param[in] env A pointer to the environment structure. 1439 * @param[in] length The length of the array to be created. 1440 * @param[out] result A pointer to store the created fixed array. 1441 * @return Returns a status code of type `ani_status` indicating success or failure. 1442 */ 1443 ani_status (*FixedArray_New_Long)(ani_env *env, ani_size length, ani_fixedarray_long *result); 1444 1445 /** 1446 * @brief Creates a new fixed array of floats. 1447 * 1448 * This function creates a new fixed array of the specified length for float values. 1449 * 1450 * @param[in] env A pointer to the environment structure. 1451 * @param[in] length The length of the array to be created. 1452 * @param[out] result A pointer to store the created fixed array. 1453 * @return Returns a status code of type `ani_status` indicating success or failure. 1454 */ 1455 ani_status (*FixedArray_New_Float)(ani_env *env, ani_size length, ani_fixedarray_float *result); 1456 1457 /** 1458 * @brief Creates a new fixed array of doubles. 1459 * 1460 * This function creates a new fixed array of the specified length for double values. 1461 * 1462 * @param[in] env A pointer to the environment structure. 1463 * @param[in] length The length of the array to be created. 1464 * @param[out] result A pointer to store the created fixed array. 1465 * @return Returns a status code of type `ani_status` indicating success or failure. 1466 */ 1467 ani_status (*FixedArray_New_Double)(ani_env *env, ani_size length, ani_fixedarray_double *result); 1468 1469 /** 1470 * @brief Retrieves a region of boolean values from a fixed array. 1471 * 1472 * This function retrieves a portion of the specified boolean fixed array into a native buffer. 1473 * 1474 * @param[in] env A pointer to the environment structure. 1475 * @param[in] array The fixed array to retrieve values from. 1476 * @param[in] offset The starting offset of the region. 1477 * @param[in] length The number of elements to retrieve. 1478 * @param[out] native_buffer A buffer to store the retrieved boolean values. 1479 * @return Returns a status code of type `ani_status` indicating success or failure. 1480 */ 1481 ani_status (*FixedArray_GetRegion_Boolean)(ani_env *env, ani_fixedarray_boolean array, ani_size offset, 1482 ani_size length, ani_boolean *native_buffer); 1483 1484 /** 1485 * @brief Retrieves a region of character values from a fixed array. 1486 * 1487 * This function retrieves a portion of the specified character fixed array into a native buffer. 1488 * 1489 * @param[in] env A pointer to the environment structure. 1490 * @param[in] array The fixed array to retrieve values from. 1491 * @param[in] offset The starting offset of the region. 1492 * @param[in] length The number of elements to retrieve. 1493 * @param[out] native_buffer A buffer to store the retrieved character values. 1494 * @return Returns a status code of type `ani_status` indicating success or failure. 1495 */ 1496 ani_status (*FixedArray_GetRegion_Char)(ani_env *env, ani_fixedarray_char array, ani_size offset, ani_size length, 1497 ani_char *native_buffer); 1498 1499 /** 1500 * @brief Retrieves a region of byte values from a fixed array. 1501 * 1502 * This function retrieves a portion of the specified byte fixed array into a native buffer. 1503 * 1504 * @param[in] env A pointer to the environment structure. 1505 * @param[in] array The fixed array to retrieve values from. 1506 * @param[in] offset The starting offset of the region. 1507 * @param[in] length The number of elements to retrieve. 1508 * @param[out] native_buffer A buffer to store the retrieved byte values. 1509 * @return Returns a status code of type `ani_status` indicating success or failure. 1510 */ 1511 ani_status (*FixedArray_GetRegion_Byte)(ani_env *env, ani_fixedarray_byte array, ani_size offset, ani_size length, 1512 ani_byte *native_buffer); 1513 1514 /** 1515 * @brief Retrieves a region of short values from a fixed array. 1516 * 1517 * This function retrieves a portion of the specified short fixed array into a native buffer. 1518 * 1519 * @param[in] env A pointer to the environment structure. 1520 * @param[in] array The fixed array to retrieve values from. 1521 * @param[in] offset The starting offset of the region. 1522 * @param[in] length The number of elements to retrieve. 1523 * @param[out] native_buffer A buffer to store the retrieved short values. 1524 * @return Returns a status code of type `ani_status` indicating success or failure. 1525 */ 1526 ani_status (*FixedArray_GetRegion_Short)(ani_env *env, ani_fixedarray_short array, ani_size offset, ani_size length, 1527 ani_short *native_buffer); 1528 1529 /** 1530 * @brief Retrieves a region of integer values from a fixed array. 1531 * 1532 * This function retrieves a portion of the specified integer fixed array into a native buffer. 1533 * 1534 * @param[in] env A pointer to the environment structure. 1535 * @param[in] array The fixed array to retrieve values from. 1536 * @param[in] offset The starting offset of the region. 1537 * @param[in] length The number of elements to retrieve. 1538 * @param[out] native_buffer A buffer to store the retrieved integer values. 1539 * @return Returns a status code of type `ani_status` indicating success or failure. 1540 */ 1541 ani_status (*FixedArray_GetRegion_Int)(ani_env *env, ani_fixedarray_int array, ani_size offset, ani_size length, 1542 ani_int *native_buffer); 1543 1544 /** 1545 * @brief Retrieves a region of long integer values from a fixed array. 1546 * 1547 * This function retrieves a portion of the specified long integer fixed array into a native buffer. 1548 * 1549 * @param[in] env A pointer to the environment structure. 1550 * @param[in] array The fixed array to retrieve values from. 1551 * @param[in] offset The starting offset of the region. 1552 * @param[in] length The number of elements to retrieve. 1553 * @param[out] native_buffer A buffer to store the retrieved long integer values. 1554 * @return Returns a status code of type `ani_status` indicating success or failure. 1555 */ 1556 ani_status (*FixedArray_GetRegion_Long)(ani_env *env, ani_fixedarray_long array, ani_size offset, ani_size length, 1557 ani_long *native_buffer); 1558 1559 /** 1560 * @brief Retrieves a region of float values from a fixed array. 1561 * 1562 * This function retrieves a portion of the specified float fixed array into a native buffer. 1563 * 1564 * @param[in] env A pointer to the environment structure. 1565 * @param[in] array The fixed array to retrieve values from. 1566 * @param[in] offset The starting offset of the region. 1567 * @param[in] length The number of elements to retrieve. 1568 * @param[out] native_buffer A buffer to store the retrieved float values. 1569 * @return Returns a status code of type `ani_status` indicating success or failure. 1570 */ 1571 ani_status (*FixedArray_GetRegion_Float)(ani_env *env, ani_fixedarray_float array, ani_size offset, ani_size length, 1572 ani_float *native_buffer); 1573 1574 /** 1575 * @brief Retrieves a region of double values from a fixed array. 1576 * 1577 * This function retrieves a portion of the specified double fixed array into a native buffer. 1578 * 1579 * @param[in] env A pointer to the environment structure. 1580 * @param[in] array The fixed array to retrieve values from. 1581 * @param[in] offset The starting offset of the region. 1582 * @param[in] length The number of elements to retrieve. 1583 * @param[out] native_buffer A buffer to store the retrieved double values. 1584 * @return Returns a status code of type `ani_status` indicating success or failure. 1585 */ 1586 ani_status (*FixedArray_GetRegion_Double)(ani_env *env, ani_fixedarray_double array, ani_size offset, 1587 ani_size length, ani_double *native_buffer); 1588 1589 /** 1590 * @brief Sets a region of boolean values in a fixed array. 1591 * 1592 * This function sets a portion of the specified boolean fixed array using a native buffer. 1593 * 1594 * @param[in] env A pointer to the environment structure. 1595 * @param[in] array The fixed array to set values in. 1596 * @param[in] offset The starting offset of the region. 1597 * @param[in] length The number of elements to set. 1598 * @param[in] native_buffer A buffer containing the boolean values to set. 1599 * @return Returns a status code of type `ani_status` indicating success or failure. 1600 */ 1601 ani_status (*FixedArray_SetRegion_Boolean)(ani_env *env, ani_fixedarray_boolean array, ani_size offset, 1602 ani_size length, const ani_boolean *native_buffer); 1603 1604 /** 1605 * @brief Sets a region of character values in a fixed array. 1606 * 1607 * This function sets a portion of the specified character fixed array using a native buffer. 1608 * 1609 * @param[in] env A pointer to the environment structure. 1610 * @param[in] array The fixed array to set values in. 1611 * @param[in] offset The starting offset of the region. 1612 * @param[in] length The number of elements to set. 1613 * @param[in] native_buffer A buffer containing the character values to set. 1614 * @return Returns a status code of type `ani_status` indicating success or failure. 1615 */ 1616 ani_status (*FixedArray_SetRegion_Char)(ani_env *env, ani_fixedarray_char array, ani_size offset, ani_size length, 1617 const ani_char *native_buffer); 1618 1619 /** 1620 * @brief Sets a region of byte values in a fixed array. 1621 * 1622 * This function sets a portion of the specified byte fixed array using a native buffer. 1623 * 1624 * @param[in] env A pointer to the environment structure. 1625 * @param[in] array The fixed array to set values in. 1626 * @param[in] offset The starting offset of the region. 1627 * @param[in] length The number of elements to set. 1628 * @param[in] native_buffer A buffer containing the byte values to set. 1629 * @return Returns a status code of type `ani_status` indicating success or failure. 1630 */ 1631 ani_status (*FixedArray_SetRegion_Byte)(ani_env *env, ani_fixedarray_byte array, ani_size offset, ani_size length, 1632 const ani_byte *native_buffer); 1633 1634 /** 1635 * @brief Sets a region of short values in a fixed array. 1636 * 1637 * This function sets a portion of the specified short fixed array using a native buffer. 1638 * 1639 * @param[in] env A pointer to the environment structure. 1640 * @param[in] array The fixed array to set values in. 1641 * @param[in] offset The starting offset of the region. 1642 * @param[in] length The number of elements to set. 1643 * @param[in] native_buffer A buffer containing the short values to set. 1644 * @return Returns a status code of type `ani_status` indicating success or failure. 1645 */ 1646 ani_status (*FixedArray_SetRegion_Short)(ani_env *env, ani_fixedarray_short array, ani_size offset, ani_size length, 1647 const ani_short *native_buffer); 1648 1649 /** 1650 * @brief Sets a region of integer values in a fixed array. 1651 * 1652 * This function sets a portion of the specified integer fixed array using a native buffer. 1653 * 1654 * @param[in] env A pointer to the environment structure. 1655 * @param[in] array The fixed array to set values in. 1656 * @param[in] offset The starting offset of the region. 1657 * @param[in] length The number of elements to set. 1658 * @param[in] native_buffer A buffer containing the integer values to set. 1659 * @return Returns a status code of type `ani_status` indicating success or failure. 1660 */ 1661 ani_status (*FixedArray_SetRegion_Int)(ani_env *env, ani_fixedarray_int array, ani_size offset, ani_size length, 1662 const ani_int *native_buffer); 1663 1664 /** 1665 * @brief Sets a region of long integer values in a fixed array. 1666 * 1667 * This function sets a portion of the specified long integer fixed array using a native buffer. 1668 * 1669 * @param[in] env A pointer to the environment structure. 1670 * @param[in] array The fixed array to set values in. 1671 * @param[in] offset The starting offset of the region. 1672 * @param[in] length The number of elements to set. 1673 * @param[in] native_buffer A buffer containing the long integer values to set. 1674 * @return Returns a status code of type `ani_status` indicating success or failure. 1675 */ 1676 ani_status (*FixedArray_SetRegion_Long)(ani_env *env, ani_fixedarray_long array, ani_size offset, ani_size length, 1677 const ani_long *native_buffer); 1678 1679 /** 1680 * @brief Sets a region of float values in a fixed array. 1681 * 1682 * This function sets a portion of the specified float fixed array using a native buffer. 1683 * 1684 * @param[in] env A pointer to the environment structure. 1685 * @param[in] array The fixed array to set values in. 1686 * @param[in] offset The starting offset of the region. 1687 * @param[in] length The number of elements to set. 1688 * @param[in] native_buffer A buffer containing the float values to set. 1689 * @return Returns a status code of type `ani_status` indicating success or failure. 1690 */ 1691 ani_status (*FixedArray_SetRegion_Float)(ani_env *env, ani_fixedarray_float array, ani_size offset, ani_size length, 1692 const ani_float *native_buffer); 1693 1694 /** 1695 * @brief Sets a region of double values in a fixed array. 1696 * 1697 * This function sets a portion of the specified double fixed array using a native buffer. 1698 * 1699 * @param[in] env A pointer to the environment structure. 1700 * @param[in] array The fixed array to set values in. 1701 * @param[in] offset The starting offset of the region. 1702 * @param[in] length The number of elements to set. 1703 * @param[in] native_buffer A buffer containing the double values to set. 1704 * @return Returns a status code of type `ani_status` indicating success or failure. 1705 */ 1706 ani_status (*FixedArray_SetRegion_Double)(ani_env *env, ani_fixedarray_double array, ani_size offset, 1707 ani_size length, const ani_double *native_buffer); 1708 1709 /** 1710 * @brief Pins a fixed array in memory. 1711 * 1712 * This function pins a fixed array of primitive types in memory to ensure it is not moved by the garbage collector. 1713 * 1714 * @param[in] env A pointer to the environment structure. 1715 * @param[in] primitive_array The fixed array to pin. 1716 * @param[out] result A pointer to store the memory address of the pinned array. 1717 * @return Returns a status code of type `ani_status` indicating success or failure. 1718 */ 1719 ani_status (*FixedArray_Pin)(ani_env *env, ani_fixedarray primitive_array, void **result); 1720 1721 /** 1722 * @brief Unpins a fixed array in memory. 1723 * 1724 * This function unpins a previously pinned fixed array, allowing it to be moved by the garbage collector. 1725 * 1726 * @param[in] env A pointer to the environment structure. 1727 * @param[in] primitive_array The fixed array to unpin. 1728 * @param[in] data A pointer to the pinned memory that was previously retrieved. 1729 * @return Returns a status code of type `ani_status` indicating success or failure. 1730 */ 1731 ani_status (*FixedArray_Unpin)(ani_env *env, ani_fixedarray primitive_array, void *data); 1732 1733 /** 1734 * @brief Creates a new fixed array of references. 1735 * 1736 * This function creates a new fixed array of references, optionally initializing it with an array of references. 1737 * 1738 * @param[in] env A pointer to the environment structure. 1739 * @param[in] length The length of the array to be created. 1740 * @param[in] initial_array An optional array of references to initialize the fixed array. Can be null. 1741 * @param[out] result A pointer to store the created fixed array of references. 1742 * @return Returns a status code of type `ani_status` indicating success or failure. 1743 */ 1744 ani_status (*FixedArray_New_Ref)(ani_env *env, ani_size length, ani_ref *initial_array, ani_fixedarray_ref *result); 1745 1746 /** 1747 * @brief Sets a reference at a specific index in a fixed array. 1748 * 1749 * This function sets the value of a reference at the specified index in the fixed array. 1750 * 1751 * @param[in] env A pointer to the environment structure. 1752 * @param[in] array The fixed array of references to modify. 1753 * @param[in] index The index at which to set the reference. 1754 * @param[in] ref The reference to set at the specified index. 1755 * @return Returns a status code of type `ani_status` indicating success or failure. 1756 */ 1757 ani_status (*FixedArray_Set_Ref)(ani_env *env, ani_fixedarray_ref array, ani_size index, ani_ref ref); 1758 1759 /** 1760 * @brief Retrieves a reference from a specific index in a fixed array. 1761 * 1762 * This function retrieves the value of a reference at the specified index in the fixed array. 1763 * 1764 * @param[in] env A pointer to the environment structure. 1765 * @param[in] array The fixed array of references to query. 1766 * @param[in] index The index from which to retrieve the reference. 1767 * @param[out] result A pointer to store the retrieved reference. 1768 * @return Returns a status code of type `ani_status` indicating success or failure. 1769 */ 1770 ani_status (*FixedArray_Get_Ref)(ani_env *env, ani_fixedarray_ref array, ani_size index, ani_ref *result); 1771 1772 /** 1773 * @brief Retrieves an enum value by its name. 1774 * 1775 * This function retrieves an enum value associated with the specified name. 1776 * 1777 * @param[in] env A pointer to the environment structure. 1778 * @param[in] enm The enum to search within. 1779 * @param[in] name The name of the enum value to retrieve. 1780 * @param[out] result A pointer to store the retrieved enum value. 1781 * @return Returns a status code of type `ani_status` indicating success or failure. 1782 */ 1783 ani_status (*Enum_GetEnumValueByName)(ani_env *env, ani_enum enm, const char *name, ani_enum_value *result); 1784 1785 /** 1786 * @brief Retrieves an enum value by its index. 1787 * 1788 * This function retrieves an enum value located at the specified index. 1789 * 1790 * @param[in] env A pointer to the environment structure. 1791 * @param[in] enm The enum to search within. 1792 * @param[in] index The index of the enum value to retrieve. 1793 * @param[out] result A pointer to store the retrieved enum value. 1794 * @return Returns a status code of type `ani_status` indicating success or failure. 1795 */ 1796 ani_status (*Enum_GetEnumValueByIndex)(ani_env *env, ani_enum enm, ani_size index, ani_enum_value *result); 1797 1798 /** 1799 * @brief Retrieves the enum associated with an enum value. 1800 * 1801 * This function retrieves the enum to which the specified enum value belongs. 1802 * 1803 * @param[in] env A pointer to the environment structure. 1804 * @param[in] enum_value The enum value whose associated enum is to be retrieved. 1805 * @param[out] result A pointer to store the retrieved enum. 1806 * @return Returns a status code of type `ani_status` indicating success or failure. 1807 */ 1808 ani_status (*EnumValue_GetEnum)(ani_env *env, ani_enum_value enum_value, ani_enum *result); 1809 1810 /** 1811 * @brief Retrieves the underlying value of an enum value. 1812 * 1813 * This function retrieves the object representing the value of the specified enum value. 1814 * 1815 * @param[in] env A pointer to the environment structure. 1816 * @param[in] enum_value The enum value whose underlying value is to be retrieved. 1817 * @param[out] result A pointer to store the retrieved object. 1818 * @return Returns a status code of type `ani_status` indicating success or failure. 1819 */ 1820 ani_status (*EnumValue_GetValue)(ani_env *env, ani_enum_value enum_value, ani_object *result); 1821 1822 /** 1823 * @brief Retrieves the name of an enum value. 1824 * 1825 * This function retrieves the name associated with the specified enum value. 1826 * 1827 * @param[in] env A pointer to the environment structure. 1828 * @param[in] enum_value The enum value whose name is to be retrieved. 1829 * @param[out] result A pointer to store the retrieved name. 1830 * @return Returns a status code of type `ani_status` indicating success or failure. 1831 */ 1832 ani_status (*EnumValue_GetName)(ani_env *env, ani_enum_value enum_value, ani_string *result); 1833 1834 /** 1835 * @brief Retrieves the index of an enum value. 1836 * 1837 * This function retrieves the index of the specified enum value within its enum. 1838 * 1839 * @param[in] env A pointer to the environment structure. 1840 * @param[in] enum_value The enum value whose index is to be retrieved. 1841 * @param[out] result A pointer to store the retrieved index. 1842 * @return Returns a status code of type `ani_status` indicating success or failure. 1843 */ 1844 ani_status (*EnumValue_GetIndex)(ani_env *env, ani_enum_value enum_value, ani_size *result); 1845 1846 /** 1847 * @brief Invokes a functional object. 1848 * 1849 * This function invokes a functional object (e.g., a function or callable object) with the specified arguments. 1850 * 1851 * @param[in] env A pointer to the environment structure. 1852 * @param[in] fn The functional object to invoke. 1853 * @param[in] argc The number of arguments being passed to the functional object. 1854 * @param[in] argv A pointer to an array of references representing the arguments. Can be null if `argc` is 0. 1855 * @param[out] result A pointer to store the result of the invocation. Can be null if the functional object does not 1856 * return a value. 1857 * @return Returns a status code of type `ani_status` indicating success or failure. 1858 */ 1859 ani_status (*FunctionalObject_Call)(ani_env *env, ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result); 1860 1861 /** 1862 * @brief Sets a boolean value to a variable. 1863 * 1864 * This function assigns a boolean value to the specified variable. 1865 * 1866 * @param[in] env A pointer to the environment structure. 1867 * @param[in] variable The variable to modify. 1868 * @param[in] value The boolean value to assign to the variable. 1869 * @return Returns a status code of type `ani_status` indicating success or failure. 1870 */ 1871 ani_status (*Variable_SetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean value); 1872 1873 /** 1874 * @brief Sets a character value to a variable. 1875 * 1876 * This function assigns a character value to the specified variable. 1877 * 1878 * @param[in] env A pointer to the environment structure. 1879 * @param[in] variable The variable to modify. 1880 * @param[in] value The character value to assign to the variable. 1881 * @return Returns a status code of type `ani_status` indicating success or failure. 1882 */ 1883 ani_status (*Variable_SetValue_Char)(ani_env *env, ani_variable variable, ani_char value); 1884 1885 /** 1886 * @brief Sets a byte value to a variable. 1887 * 1888 * This function assigns a byte value to the specified variable. 1889 * 1890 * @param[in] env A pointer to the environment structure. 1891 * @param[in] variable The variable to modify. 1892 * @param[in] value The byte value to assign to the variable. 1893 * @return Returns a status code of type `ani_status` indicating success or failure. 1894 */ 1895 ani_status (*Variable_SetValue_Byte)(ani_env *env, ani_variable variable, ani_byte value); 1896 1897 /** 1898 * @brief Sets a short value to a variable. 1899 * 1900 * This function assigns a short integer value to the specified variable. 1901 * 1902 * @param[in] env A pointer to the environment structure. 1903 * @param[in] variable The variable to modify. 1904 * @param[in] value The short integer value to assign to the variable. 1905 * @return Returns a status code of type `ani_status` indicating success or failure. 1906 */ 1907 ani_status (*Variable_SetValue_Short)(ani_env *env, ani_variable variable, ani_short value); 1908 1909 /** 1910 * @brief Sets an integer value to a variable. 1911 * 1912 * This function assigns an integer value to the specified variable. 1913 * 1914 * @param[in] env A pointer to the environment structure. 1915 * @param[in] variable The variable to modify. 1916 * @param[in] value The integer value to assign to the variable. 1917 * @return Returns a status code of type `ani_status` indicating success or failure. 1918 */ 1919 ani_status (*Variable_SetValue_Int)(ani_env *env, ani_variable variable, ani_int value); 1920 1921 /** 1922 * @brief Sets a long value to a variable. 1923 * 1924 * This function assigns a long integer value to the specified variable. 1925 * 1926 * @param[in] env A pointer to the environment structure. 1927 * @param[in] variable The variable to modify. 1928 * @param[in] value The long integer value to assign to the variable. 1929 * @return Returns a status code of type `ani_status` indicating success or failure. 1930 */ 1931 ani_status (*Variable_SetValue_Long)(ani_env *env, ani_variable variable, ani_long value); 1932 1933 /** 1934 * @brief Sets a float value to a variable. 1935 * 1936 * This function assigns a float value to the specified variable. 1937 * 1938 * @param[in] env A pointer to the environment structure. 1939 * @param[in] variable The variable to modify. 1940 * @param[in] value The float value to assign to the variable. 1941 * @return Returns a status code of type `ani_status` indicating success or failure. 1942 */ 1943 ani_status (*Variable_SetValue_Float)(ani_env *env, ani_variable variable, ani_float value); 1944 1945 /** 1946 * @brief Sets a double value to a variable. 1947 * 1948 * This function assigns a double value to the specified variable. 1949 * 1950 * @param[in] env A pointer to the environment structure. 1951 * @param[in] variable The variable to modify. 1952 * @param[in] value The double value to assign to the variable. 1953 * @return Returns a status code of type `ani_status` indicating success or failure. 1954 */ 1955 ani_status (*Variable_SetValue_Double)(ani_env *env, ani_variable variable, ani_double value); 1956 1957 /** 1958 * @brief Sets a reference value to a variable. 1959 * 1960 * This function assigns a reference value to the specified variable. 1961 * 1962 * @param[in] env A pointer to the environment structure. 1963 * @param[in] variable The variable to modify. 1964 * @param[in] value The reference value to assign to the variable. 1965 * @return Returns a status code of type `ani_status` indicating success or failure. 1966 */ 1967 ani_status (*Variable_SetValue_Ref)(ani_env *env, ani_variable variable, ani_ref value); 1968 1969 /** 1970 * @brief Retrieves a boolean value from a variable. 1971 * 1972 * This function fetches a boolean value from the specified variable. 1973 * 1974 * @param[in] env A pointer to the environment structure. 1975 * @param[in] variable The variable to query. 1976 * @param[out] result A pointer to store the retrieved boolean value. 1977 * @return Returns a status code of type `ani_status` indicating success or failure. 1978 */ 1979 ani_status (*Variable_GetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean *result); 1980 1981 /** 1982 * @brief Retrieves a character value from a variable. 1983 * 1984 * This function fetches a character value from the specified variable. 1985 * 1986 * @param[in] env A pointer to the environment structure. 1987 * @param[in] variable The variable to query. 1988 * @param[out] result A pointer to store the retrieved character value. 1989 * @return Returns a status code of type `ani_status` indicating success or failure. 1990 */ 1991 ani_status (*Variable_GetValue_Char)(ani_env *env, ani_variable variable, ani_char *result); 1992 1993 /** 1994 * @brief Retrieves a byte value from a variable. 1995 * 1996 * This function fetches a byte value from the specified variable. 1997 * 1998 * @param[in] env A pointer to the environment structure. 1999 * @param[in] variable The variable to query. 2000 * @param[out] result A pointer to store the retrieved byte value. 2001 * @return Returns a status code of type `ani_status` indicating success or failure. 2002 */ 2003 ani_status (*Variable_GetValue_Byte)(ani_env *env, ani_variable variable, ani_byte *result); 2004 2005 /** 2006 * @brief Retrieves a short value from a variable. 2007 * 2008 * This function fetches a short integer value from the specified variable. 2009 * 2010 * @param[in] env A pointer to the environment structure. 2011 * @param[in] variable The variable to query. 2012 * @param[out] result A pointer to store the retrieved short integer value. 2013 * @return Returns a status code of type `ani_status` indicating success or failure. 2014 */ 2015 ani_status (*Variable_GetValue_Short)(ani_env *env, ani_variable variable, ani_short *result); 2016 2017 /** 2018 * @brief Retrieves an integer value from a variable. 2019 * 2020 * This function fetches an integer value from the specified variable. 2021 * 2022 * @param[in] env A pointer to the environment structure. 2023 * @param[in] variable The variable to query. 2024 * @param[out] result A pointer to store the retrieved integer value. 2025 * @return Returns a status code of type `ani_status` indicating success or failure. 2026 */ 2027 ani_status (*Variable_GetValue_Int)(ani_env *env, ani_variable variable, ani_int *result); 2028 2029 /** 2030 * @brief Retrieves a long value from a variable. 2031 * 2032 * This function fetches a long integer value from the specified variable. 2033 * 2034 * @param[in] env A pointer to the environment structure. 2035 * @param[in] variable The variable to query. 2036 * @param[out] result A pointer to store the retrieved long integer value. 2037 * @return Returns a status code of type `ani_status` indicating success or failure. 2038 */ 2039 ani_status (*Variable_GetValue_Long)(ani_env *env, ani_variable variable, ani_long *result); 2040 2041 /** 2042 * @brief Retrieves a float value from a variable. 2043 * 2044 * This function fetches a float value from the specified variable. 2045 * 2046 * @param[in] env A pointer to the environment structure. 2047 * @param[in] variable The variable to query. 2048 * @param[out] result A pointer to store the retrieved float value. 2049 * @return Returns a status code of type `ani_status` indicating success or failure. 2050 */ 2051 ani_status (*Variable_GetValue_Float)(ani_env *env, ani_variable variable, ani_float *result); 2052 2053 /** 2054 * @brief Retrieves a double value from a variable. 2055 * 2056 * This function fetches a double value from the specified variable. 2057 * 2058 * @param[in] env A pointer to the environment structure. 2059 * @param[in] variable The variable to query. 2060 * @param[out] result A pointer to store the retrieved double value. 2061 * @return Returns a status code of type `ani_status` indicating success or failure. 2062 */ 2063 ani_status (*Variable_GetValue_Double)(ani_env *env, ani_variable variable, ani_double *result); 2064 2065 /** 2066 * @brief Retrieves a reference value from a variable. 2067 * 2068 * This function fetches a reference value from the specified variable. 2069 * 2070 * @param[in] env A pointer to the environment structure. 2071 * @param[in] variable The variable to query. 2072 * @param[out] result A pointer to store the retrieved reference value. 2073 * @return Returns a status code of type `ani_status` indicating success or failure. 2074 */ 2075 ani_status (*Variable_GetValue_Ref)(ani_env *env, ani_variable variable, ani_ref *result); 2076 2077 /** 2078 * @brief Calls a function and retrieves a boolean result. 2079 * 2080 * This function calls the specified function with variadic arguments and retrieves a boolean result. 2081 * 2082 * @param[in] env A pointer to the environment structure. 2083 * @param[in] fn The function to call. 2084 * @param[out] result A pointer to store the boolean result. 2085 * @param[in] ... Variadic arguments to pass to the function. 2086 * @return Returns a status code of type `ani_status` indicating success or failure. 2087 */ 2088 ani_status (*Function_Call_Boolean)(ani_env *env, ani_function fn, ani_boolean *result, ...); 2089 2090 /** 2091 * @brief Calls a function and retrieves a boolean result (array-based). 2092 * 2093 * This function calls the specified function with arguments provided in an array and retrieves a boolean result. 2094 * 2095 * @param[in] env A pointer to the environment structure. 2096 * @param[in] fn The function to call. 2097 * @param[out] result A pointer to store the boolean result. 2098 * @param[in] args A pointer to an array of arguments to pass to the function. 2099 * @return Returns a status code of type `ani_status` indicating success or failure. 2100 */ 2101 ani_status (*Function_Call_Boolean_A)(ani_env *env, ani_function fn, ani_boolean *result, const ani_value *args); 2102 2103 /** 2104 * @brief Calls a function and retrieves a boolean result (variadic arguments). 2105 * 2106 * This function calls the specified function with arguments provided in a `va_list` and retrieves a boolean result. 2107 * 2108 * @param[in] env A pointer to the environment structure. 2109 * @param[in] fn The function to call. 2110 * @param[out] result A pointer to store the boolean result. 2111 * @param[in] args A `va_list` containing the arguments to pass to the function. 2112 * @return Returns a status code of type `ani_status` indicating success or failure. 2113 */ 2114 ani_status (*Function_Call_Boolean_V)(ani_env *env, ani_function fn, ani_boolean *result, va_list args); 2115 2116 /** 2117 * @brief Calls a function and retrieves a character result. 2118 * 2119 * This function calls the specified function with variadic arguments and retrieves a character result. 2120 * 2121 * @param[in] env A pointer to the environment structure. 2122 * @param[in] fn The function to call. 2123 * @param[out] result A pointer to store the character result. 2124 * @param[in] ... Variadic arguments to pass to the function. 2125 * @return Returns a status code of type `ani_status` indicating success or failure. 2126 */ 2127 ani_status (*Function_Call_Char)(ani_env *env, ani_function fn, ani_char *result, ...); 2128 2129 /** 2130 * @brief Calls a function and retrieves a character result (array-based). 2131 * 2132 * This function calls the specified function with arguments provided in an array and retrieves a character result. 2133 * 2134 * @param[in] env A pointer to the environment structure. 2135 * @param[in] fn The function to call. 2136 * @param[out] result A pointer to store the character result. 2137 * @param[in] args A pointer to an array of arguments to pass to the function. 2138 * @return Returns a status code of type `ani_status` indicating success or failure. 2139 */ 2140 ani_status (*Function_Call_Char_A)(ani_env *env, ani_function fn, ani_char *result, const ani_value *args); 2141 2142 /** 2143 * @brief Calls a function and retrieves a character result (variadic arguments). 2144 * 2145 * This function calls the specified function with arguments provided in a `va_list` and retrieves a character 2146 * result. 2147 * 2148 * @param[in] env A pointer to the environment structure. 2149 * @param[in] fn The function to call. 2150 * @param[out] result A pointer to store the character result. 2151 * @param[in] args A `va_list` containing the arguments to pass to the function. 2152 * @return Returns a status code of type `ani_status` indicating success or failure. 2153 */ 2154 ani_status (*Function_Call_Char_V)(ani_env *env, ani_function fn, ani_char *result, va_list args); 2155 2156 /** 2157 * @brief Calls a function and retrieves a byte result. 2158 * 2159 * This function calls the specified function with variadic arguments and retrieves a byte result. 2160 * 2161 * @param[in] env A pointer to the environment structure. 2162 * @param[in] fn The function to call. 2163 * @param[out] result A pointer to store the byte result. 2164 * @param[in] ... Variadic arguments to pass to the function. 2165 * @return Returns a status code of type `ani_status` indicating success or failure. 2166 */ 2167 ani_status (*Function_Call_Byte)(ani_env *env, ani_function fn, ani_byte *result, ...); 2168 2169 /** 2170 * @brief Calls a function and retrieves a byte result (array-based). 2171 * 2172 * This function calls the specified function with arguments provided in an array and retrieves a byte result. 2173 * 2174 * @param[in] env A pointer to the environment structure. 2175 * @param[in] fn The function to call. 2176 * @param[out] result A pointer to store the byte result. 2177 * @param[in] args A pointer to an array of arguments to pass to the function. 2178 * @return Returns a status code of type `ani_status` indicating success or failure. 2179 */ 2180 ani_status (*Function_Call_Byte_A)(ani_env *env, ani_function fn, ani_byte *result, const ani_value *args); 2181 2182 /** 2183 * @brief Calls a function and retrieves a byte result (variadic arguments). 2184 * 2185 * This function calls the specified function with arguments provided in a `va_list` and retrieves a byte result. 2186 * 2187 * @param[in] env A pointer to the environment structure. 2188 * @param[in] fn The function to call. 2189 * @param[out] result A pointer to store the byte result. 2190 * @param[in] args A `va_list` containing the arguments to pass to the function. 2191 * @return Returns a status code of type `ani_status` indicating success or failure. 2192 */ 2193 ani_status (*Function_Call_Byte_V)(ani_env *env, ani_function fn, ani_byte *result, va_list args); 2194 2195 /** 2196 * @brief Calls a function and retrieves a short result. 2197 * 2198 * This function calls the specified function with variadic arguments and retrieves a short result. 2199 * 2200 * @param[in] env A pointer to the environment structure. 2201 * @param[in] fn The function to call. 2202 * @param[out] result A pointer to store the short result. 2203 * @param[in] ... Variadic arguments to pass to the function. 2204 * @return Returns a status code of type `ani_status` indicating success or failure. 2205 */ 2206 ani_status (*Function_Call_Short)(ani_env *env, ani_function fn, ani_short *result, ...); 2207 2208 /** 2209 * @brief Calls a function and retrieves a short result (array-based). 2210 * 2211 * This function calls the specified function with arguments provided in an array and retrieves a short result. 2212 * 2213 * @param[in] env A pointer to the environment structure. 2214 * @param[in] fn The function to call. 2215 * @param[out] result A pointer to store the short result. 2216 * @param[in] args A pointer to an array of arguments to pass to the function. 2217 * @return Returns a status code of type `ani_status` indicating success or failure. 2218 */ 2219 ani_status (*Function_Call_Short_A)(ani_env *env, ani_function fn, ani_short *result, const ani_value *args); 2220 2221 /** 2222 * @brief Calls a function and retrieves a short result (variadic arguments). 2223 * 2224 * This function calls the specified function with arguments provided in a `va_list` and retrieves a short result. 2225 * 2226 * @param[in] env A pointer to the environment structure. 2227 * @param[in] fn The function to call. 2228 * @param[out] result A pointer to store the short result. 2229 * @param[in] args A `va_list` containing the arguments to pass to the function. 2230 * @return Returns a status code of type `ani_status` indicating success or failure. 2231 */ 2232 ani_status (*Function_Call_Short_V)(ani_env *env, ani_function fn, ani_short *result, va_list args); 2233 2234 /** 2235 * @brief Calls a function and retrieves an integer result. 2236 * 2237 * This function calls the specified function with variadic arguments and retrieves an integer result. 2238 * 2239 * @param[in] env A pointer to the environment structure. 2240 * @param[in] fn The function to call. 2241 * @param[out] result A pointer to store the integer result. 2242 * @param[in] ... Variadic arguments to pass to the function. 2243 * @return Returns a status code of type `ani_status` indicating success or failure. 2244 */ 2245 ani_status (*Function_Call_Int)(ani_env *env, ani_function fn, ani_int *result, ...); 2246 2247 /** 2248 * @brief Calls a function and retrieves an integer result (array-based). 2249 * 2250 * This function calls the specified function with arguments provided in an array and retrieves an integer result. 2251 * 2252 * @param[in] env A pointer to the environment structure. 2253 * @param[in] fn The function to call. 2254 * @param[out] result A pointer to store the integer result. 2255 * @param[in] args A pointer to an array of arguments to pass to the function. 2256 * @return Returns a status code of type `ani_status` indicating success or failure. 2257 */ 2258 ani_status (*Function_Call_Int_A)(ani_env *env, ani_function fn, ani_int *result, const ani_value *args); 2259 2260 /** 2261 * @brief Calls a function and retrieves an integer result (variadic arguments). 2262 * 2263 * This function calls the specified function with arguments provided in a `va_list` and retrieves an integer 2264 * result. 2265 * 2266 * @param[in] env A pointer to the environment structure. 2267 * @param[in] fn The function to call. 2268 * @param[out] result A pointer to store the integer result. 2269 * @param[in] args A `va_list` containing the arguments to pass to the function. 2270 * @return Returns a status code of type `ani_status` indicating success or failure. 2271 */ 2272 ani_status (*Function_Call_Int_V)(ani_env *env, ani_function fn, ani_int *result, va_list args); 2273 2274 /** 2275 * @brief Calls a function and retrieves a long result. 2276 * 2277 * This function calls the specified function with variadic arguments and retrieves a long result. 2278 * 2279 * @param[in] env A pointer to the environment structure. 2280 * @param[in] fn The function to call. 2281 * @param[out] result A pointer to store the long result. 2282 * @param[in] ... Variadic arguments to pass to the function. 2283 * @return Returns a status code of type `ani_status` indicating success or failure. 2284 */ 2285 ani_status (*Function_Call_Long)(ani_env *env, ani_function fn, ani_long *result, ...); 2286 2287 /** 2288 * @brief Calls a function and retrieves a long result (array-based). 2289 * 2290 * This function calls the specified function with arguments provided in an array and retrieves a long result. 2291 * 2292 * @param[in] env A pointer to the environment structure. 2293 * @param[in] fn The function to call. 2294 * @param[out] result A pointer to store the long result. 2295 * @param[in] args A pointer to an array of arguments to pass to the function. 2296 * @return Returns a status code of type `ani_status` indicating success or failure. 2297 */ 2298 ani_status (*Function_Call_Long_A)(ani_env *env, ani_function fn, ani_long *result, const ani_value *args); 2299 2300 /** 2301 * @brief Calls a function and retrieves a long result (variadic arguments). 2302 * 2303 * This function calls the specified function with arguments provided in a `va_list` and retrieves a long result. 2304 * 2305 * @param[in] env A pointer to the environment structure. 2306 * @param[in] fn The function to call. 2307 * @param[out] result A pointer to store the long result. 2308 * @param[in] args A `va_list` containing the arguments to pass to the function. 2309 * @return Returns a status code of type `ani_status` indicating success or failure. 2310 */ 2311 ani_status (*Function_Call_Long_V)(ani_env *env, ani_function fn, ani_long *result, va_list args); 2312 2313 /** 2314 * @brief Calls a function and retrieves a float result. 2315 * 2316 * This function calls the specified function with variadic arguments and retrieves a float result. 2317 * 2318 * @param[in] env A pointer to the environment structure. 2319 * @param[in] fn The function to call. 2320 * @param[out] result A pointer to store the float result. 2321 * @param[in] ... Variadic arguments to pass to the function. 2322 * @return Returns a status code of type `ani_status` indicating success or failure. 2323 */ 2324 ani_status (*Function_Call_Float)(ani_env *env, ani_function fn, ani_float *result, ...); 2325 2326 /** 2327 * @brief Calls a function and retrieves a float result (array-based). 2328 * 2329 * This function calls the specified function with arguments provided in an array and retrieves a float result. 2330 * 2331 * @param[in] env A pointer to the environment structure. 2332 * @param[in] fn The function to call. 2333 * @param[out] result A pointer to store the float result. 2334 * @param[in] args A pointer to an array of arguments to pass to the function. 2335 * @return Returns a status code of type `ani_status` indicating success or failure. 2336 */ 2337 ani_status (*Function_Call_Float_A)(ani_env *env, ani_function fn, ani_float *result, const ani_value *args); 2338 2339 /** 2340 * @brief Calls a function and retrieves a float result (variadic arguments). 2341 * 2342 * This function calls the specified function with arguments provided in a `va_list` and retrieves a float result. 2343 * 2344 * @param[in] env A pointer to the environment structure. 2345 * @param[in] fn The function to call. 2346 * @param[out] result A pointer to store the float result. 2347 * @param[in] args A `va_list` containing the arguments to pass to the function. 2348 * @return Returns a status code of type `ani_status` indicating success or failure. 2349 */ 2350 ani_status (*Function_Call_Float_V)(ani_env *env, ani_function fn, ani_float *result, va_list args); 2351 2352 /** 2353 * @brief Calls a function and retrieves a double result. 2354 * 2355 * This function calls the specified function with variadic arguments and retrieves a double result. 2356 * 2357 * @param[in] env A pointer to the environment structure. 2358 * @param[in] fn The function to call. 2359 * @param[out] result A pointer to store the double result. 2360 * @param[in] ... Variadic arguments to pass to the function. 2361 * @return Returns a status code of type `ani_status` indicating success or failure. 2362 */ 2363 ani_status (*Function_Call_Double)(ani_env *env, ani_function fn, ani_double *result, ...); 2364 2365 /** 2366 * @brief Calls a function and retrieves a double result (array-based). 2367 * 2368 * This function calls the specified function with arguments provided in an array and retrieves a double result. 2369 * 2370 * @param[in] env A pointer to the environment structure. 2371 * @param[in] fn The function to call. 2372 * @param[out] result A pointer to store the double result. 2373 * @param[in] args A pointer to an array of arguments to pass to the function. 2374 * @return Returns a status code of type `ani_status` indicating success or failure. 2375 */ 2376 ani_status (*Function_Call_Double_A)(ani_env *env, ani_function fn, ani_double *result, const ani_value *args); 2377 2378 /** 2379 * @brief Calls a function and retrieves a double result (variadic arguments). 2380 * 2381 * This function calls the specified function with arguments provided in a `va_list` and retrieves a double result. 2382 * 2383 * @param[in] env A pointer to the environment structure. 2384 * @param[in] fn The function to call. 2385 * @param[out] result A pointer to store the double result. 2386 * @param[in] args A `va_list` containing the arguments to pass to the function. 2387 * @return Returns a status code of type `ani_status` indicating success or failure. 2388 */ 2389 ani_status (*Function_Call_Double_V)(ani_env *env, ani_function fn, ani_double *result, va_list args); 2390 2391 /** 2392 * @brief Calls a function and retrieves a reference result. 2393 * 2394 * This function calls the specified function with variadic arguments and retrieves a reference result. 2395 * 2396 * @param[in] env A pointer to the environment structure. 2397 * @param[in] fn The function to call. 2398 * @param[out] result A pointer to store the reference result. 2399 * @param[in] ... Variadic arguments to pass to the function. 2400 * @return Returns a status code of type `ani_status` indicating success or failure. 2401 */ 2402 ani_status (*Function_Call_Ref)(ani_env *env, ani_function fn, ani_ref *result, ...); 2403 2404 /** 2405 * @brief Calls a function and retrieves a reference result (array-based). 2406 * 2407 * This function calls the specified function with arguments provided in an array and retrieves a reference result. 2408 * 2409 * @param[in] env A pointer to the environment structure. 2410 * @param[in] fn The function to call. 2411 * @param[out] result A pointer to store the reference result. 2412 * @param[in] args A pointer to an array of arguments to pass to the function. 2413 * @return Returns a status code of type `ani_status` indicating success or failure. 2414 */ 2415 ani_status (*Function_Call_Ref_A)(ani_env *env, ani_function fn, ani_ref *result, const ani_value *args); 2416 2417 /** 2418 * @brief Calls a function and retrieves a reference result (variadic arguments). 2419 * 2420 * This function calls the specified function with arguments provided in a `va_list` and retrieves a reference 2421 * result. 2422 * 2423 * @param[in] env A pointer to the environment structure. 2424 * @param[in] fn The function to call. 2425 * @param[out] result A pointer to store the reference result. 2426 * @param[in] args A `va_list` containing the arguments to pass to the function. 2427 * @return Returns a status code of type `ani_status` indicating success or failure. 2428 */ 2429 ani_status (*Function_Call_Ref_V)(ani_env *env, ani_function fn, ani_ref *result, va_list args); 2430 2431 /** 2432 * @brief Calls a function without returning a result. 2433 * 2434 * This function calls the specified function with variadic arguments and does not return a result. 2435 * 2436 * @param[in] env A pointer to the environment structure. 2437 * @param[in] fn The function to call. 2438 * @param[in] ... Variadic arguments to pass to the function. 2439 * @return Returns a status code of type `ani_status` indicating success or failure. 2440 */ 2441 ani_status (*Function_Call_Void)(ani_env *env, ani_function fn, ...); 2442 2443 /** 2444 * @brief Calls a function without returning a result (array-based). 2445 * 2446 * This function calls the specified function with arguments provided in an array and does not return a result. 2447 * 2448 * @param[in] env A pointer to the environment structure. 2449 * @param[in] fn The function to call. 2450 * @param[in] args A pointer to an array of arguments to pass to the function. 2451 * @return Returns a status code of type `ani_status` indicating success or failure. 2452 */ 2453 ani_status (*Function_Call_Void_A)(ani_env *env, ani_function fn, const ani_value *args); 2454 2455 /** 2456 * @brief Calls a function without returning a result (variadic arguments). 2457 * 2458 * This function calls the specified function with arguments provided in a `va_list` and does not return a result. 2459 * 2460 * @param[in] env A pointer to the environment structure. 2461 * @param[in] fn The function to call. 2462 * @param[in] args A `va_list` containing the arguments to pass to the function. 2463 * @return Returns a status code of type `ani_status` indicating success or failure. 2464 */ 2465 ani_status (*Function_Call_Void_V)(ani_env *env, ani_function fn, va_list args); 2466 2467 /** 2468 * @brief Retrieves the partial class representation. 2469 * 2470 * This function retrieves the partial class representation of the specified class. 2471 * 2472 * @param[in] env A pointer to the environment structure. 2473 * @param[in] cls The class to query. 2474 * @param[out] result A pointer to store the partial class representation. 2475 * @return Returns a status code of type `ani_status` indicating success or failure. 2476 */ 2477 ani_status (*Class_GetPartial)(ani_env *env, ani_class cls, ani_class *result); 2478 2479 /** 2480 * @brief Retrieves the required class representation. 2481 * 2482 * This function retrieves the required class representation of the specified class. 2483 * 2484 * @param[in] env A pointer to the environment structure. 2485 * @param[in] cls The class to query. 2486 * @param[out] result A pointer to store the required class representation. 2487 * @return Returns a status code of type `ani_status` indicating success or failure. 2488 */ 2489 ani_status (*Class_GetRequired)(ani_env *env, ani_class cls, ani_class *result); 2490 2491 /** 2492 * @brief Retrieves a field from the class. 2493 * 2494 * This function retrieves the specified field by name from the given class. 2495 * 2496 * @param[in] env A pointer to the environment structure. 2497 * @param[in] cls The class to query. 2498 * @param[in] name The name of the field to retrieve. 2499 * @param[out] result A pointer to store the retrieved field. 2500 * @return Returns a status code of type `ani_status` indicating success or failure. 2501 */ 2502 ani_status (*Class_GetField)(ani_env *env, ani_class cls, const char *name, ani_field *result); 2503 2504 /** 2505 * @brief Retrieves a static field from the class. 2506 * 2507 * This function retrieves the specified static field by name from the given class. 2508 * 2509 * @param[in] env A pointer to the environment structure. 2510 * @param[in] cls The class to query. 2511 * @param[in] name The name of the static field to retrieve. 2512 * @param[out] result A pointer to store the retrieved static field. 2513 * @return Returns a status code of type `ani_status` indicating success or failure. 2514 */ 2515 ani_status (*Class_GetStaticField)(ani_env *env, ani_class cls, const char *name, ani_static_field *result); 2516 2517 /** 2518 * @brief Retrieves a method from the class. 2519 * 2520 * This function retrieves the specified method by name and signature from the given class. 2521 * 2522 * @param[in] env A pointer to the environment structure. 2523 * @param[in] cls The class to query. 2524 * @param[in] name The name of the method to retrieve. 2525 * @param[in] signature The signature of the method to retrieve. 2526 * @param[out] result A pointer to store the retrieved method. 2527 * @return Returns a status code of type `ani_status` indicating success or failure. 2528 */ 2529 ani_status (*Class_GetMethod)(ani_env *env, ani_class cls, const char *name, const char *signature, 2530 ani_method *result); 2531 2532 /** 2533 * @brief Retrieves a static method from the class. 2534 * 2535 * This function retrieves the specified static method by name and signature from the given class. 2536 * 2537 * @param[in] env A pointer to the environment structure. 2538 * @param[in] cls The class to query. 2539 * @param[in] name The name of the static method to retrieve. 2540 * @param[in] signature The signature of the static method to retrieve. 2541 * @param[out] result A pointer to store the retrieved static method. 2542 * @return Returns a status code of type `ani_status` indicating success or failure. 2543 */ 2544 ani_status (*Class_GetStaticMethod)(ani_env *env, ani_class cls, const char *name, const char *signature, 2545 ani_static_method *result); 2546 2547 /** 2548 * @brief Retrieves a property from the class. 2549 * 2550 * This function retrieves the specified property by name from the given class. 2551 * 2552 * @param[in] env A pointer to the environment structure. 2553 * @param[in] cls The class to query. 2554 * @param[in] name The name of the property to retrieve. 2555 * @param[out] result A pointer to store the retrieved property. 2556 * @return Returns a status code of type `ani_status` indicating success or failure. 2557 */ 2558 ani_status (*Class_GetProperty)(ani_env *env, ani_class cls, const char *name, ani_property *result); 2559 2560 /** 2561 * @brief Retrieves the setter method of a property from the class. 2562 * 2563 * This function retrieves the setter method for the specified property by name from the given class. 2564 * 2565 * @param[in] env A pointer to the environment structure. 2566 * @param[in] cls The class to query. 2567 * @param[in] name The name of the property whose setter is to be retrieved. 2568 * @param[out] result A pointer to store the retrieved setter method. 2569 * @return Returns a status code of type `ani_status` indicating success or failure. 2570 */ 2571 ani_status (*Class_GetSetter)(ani_env *env, ani_class cls, const char *name, ani_method *result); 2572 2573 /** 2574 * @brief Retrieves the getter method of a property from the class. 2575 * 2576 * This function retrieves the getter method for the specified property by name from the given class. 2577 * 2578 * @param[in] env A pointer to the environment structure. 2579 * @param[in] cls The class to query. 2580 * @param[in] name The name of the property whose getter is to be retrieved. 2581 * @param[out] result A pointer to store the retrieved getter method. 2582 * @return Returns a status code of type `ani_status` indicating success or failure. 2583 */ 2584 ani_status (*Class_GetGetter)(ani_env *env, ani_class cls, const char *name, ani_method *result); 2585 2586 /** 2587 * @brief Retrieves the indexable getter method from the class. 2588 * 2589 * This function retrieves the indexable getter method for the specified signature from the given class. 2590 * 2591 * @param[in] env A pointer to the environment structure. 2592 * @param[in] cls The class to query. 2593 * @param[in] signature The signature of the indexable getter to retrieve. 2594 * @param[out] result A pointer to store the retrieved indexable getter method. 2595 * @return Returns a status code of type `ani_status` indicating success or failure. 2596 */ 2597 ani_status (*Class_GetIndexableGetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result); 2598 2599 /** 2600 * @brief Retrieves the indexable setter method from the class. 2601 * 2602 * This function retrieves the indexable setter method for the specified signature from the given class. 2603 * 2604 * @param[in] env A pointer to the environment structure. 2605 * @param[in] cls The class to query. 2606 * @param[in] signature The signature of the indexable setter to retrieve. 2607 * @param[out] result A pointer to store the retrieved indexable setter method. 2608 * @return Returns a status code of type `ani_status` indicating success or failure. 2609 */ 2610 ani_status (*Class_GetIndexableSetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result); 2611 2612 /** 2613 * @brief Retrieves the iterator method from the class. 2614 * 2615 * This function retrieves the iterator method from the specified class. 2616 * 2617 * @param[in] env A pointer to the environment structure. 2618 * @param[in] cls The class to query. 2619 * @param[out] result A pointer to store the retrieved iterator method. 2620 * @return Returns a status code of type `ani_status` indicating success or failure. 2621 */ 2622 ani_status (*Class_GetIterator)(ani_env *env, ani_class cls, ani_method *result); 2623 2624 /** 2625 * @brief Retrieves a boolean value from a static field of a class. 2626 * 2627 * This function retrieves the boolean value of the specified static field from the given class. 2628 * 2629 * @param[in] env A pointer to the environment structure. 2630 * @param[in] cls The class containing the static field. 2631 * @param[in] field The static field to retrieve. 2632 * @param[out] result A pointer to store the retrieved boolean value. 2633 * @return Returns a status code of type `ani_status` indicating success or failure. 2634 */ 2635 ani_status (*Class_GetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field, 2636 ani_boolean *result); 2637 2638 /** 2639 * @brief Retrieves a character value from a static field of a class. 2640 * 2641 * This function retrieves the character value of the specified static field from the given class. 2642 * 2643 * @param[in] env A pointer to the environment structure. 2644 * @param[in] cls The class containing the static field. 2645 * @param[in] field The static field to retrieve. 2646 * @param[out] result A pointer to store the retrieved character value. 2647 * @return Returns a status code of type `ani_status` indicating success or failure. 2648 */ 2649 ani_status (*Class_GetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char *result); 2650 2651 /** 2652 * @brief Retrieves a byte value from a static field of a class. 2653 * 2654 * This function retrieves the byte value of the specified static field from the given class. 2655 * 2656 * @param[in] env A pointer to the environment structure. 2657 * @param[in] cls The class containing the static field. 2658 * @param[in] field The static field to retrieve. 2659 * @param[out] result A pointer to store the retrieved byte value. 2660 * @return Returns a status code of type `ani_status` indicating success or failure. 2661 */ 2662 ani_status (*Class_GetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte *result); 2663 2664 /** 2665 * @brief Retrieves a short value from a static field of a class. 2666 * 2667 * This function retrieves the short value of the specified static field from the given class. 2668 * 2669 * @param[in] env A pointer to the environment structure. 2670 * @param[in] cls The class containing the static field. 2671 * @param[in] field The static field to retrieve. 2672 * @param[out] result A pointer to store the retrieved short value. 2673 * @return Returns a status code of type `ani_status` indicating success or failure. 2674 */ 2675 ani_status (*Class_GetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short *result); 2676 2677 /** 2678 * @brief Retrieves an integer value from a static field of a class. 2679 * 2680 * This function retrieves the integer value of the specified static field from the given class. 2681 * 2682 * @param[in] env A pointer to the environment structure. 2683 * @param[in] cls The class containing the static field. 2684 * @param[in] field The static field to retrieve. 2685 * @param[out] result A pointer to store the retrieved integer value. 2686 * @return Returns a status code of type `ani_status` indicating success or failure. 2687 */ 2688 ani_status (*Class_GetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int *result); 2689 2690 /** 2691 * @brief Retrieves a long value from a static field of a class. 2692 * 2693 * This function retrieves the long value of the specified static field from the given class. 2694 * 2695 * @param[in] env A pointer to the environment structure. 2696 * @param[in] cls The class containing the static field. 2697 * @param[in] field The static field to retrieve. 2698 * @param[out] result A pointer to store the retrieved long value. 2699 * @return Returns a status code of type `ani_status` indicating success or failure. 2700 */ 2701 ani_status (*Class_GetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long *result); 2702 2703 /** 2704 * @brief Retrieves a float value from a static field of a class. 2705 * 2706 * This function retrieves the float value of the specified static field from the given class. 2707 * 2708 * @param[in] env A pointer to the environment structure. 2709 * @param[in] cls The class containing the static field. 2710 * @param[in] field The static field to retrieve. 2711 * @param[out] result A pointer to store the retrieved float value. 2712 * @return Returns a status code of type `ani_status` indicating success or failure. 2713 */ 2714 ani_status (*Class_GetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float *result); 2715 2716 /** 2717 * @brief Retrieves a double value from a static field of a class. 2718 * 2719 * This function retrieves the double value of the specified static field from the given class. 2720 * 2721 * @param[in] env A pointer to the environment structure. 2722 * @param[in] cls The class containing the static field. 2723 * @param[in] field The static field to retrieve. 2724 * @param[out] result A pointer to store the retrieved double value. 2725 * @return Returns a status code of type `ani_status` indicating success or failure. 2726 */ 2727 ani_status (*Class_GetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double *result); 2728 2729 /** 2730 * @brief Retrieves a reference value from a static field of a class. 2731 * 2732 * This function retrieves the reference value of the specified static field from the given class. 2733 * 2734 * @param[in] env A pointer to the environment structure. 2735 * @param[in] cls The class containing the static field. 2736 * @param[in] field The static field to retrieve. 2737 * @param[out] result A pointer to store the retrieved reference value. 2738 * @return Returns a status code of type `ani_status` indicating success or failure. 2739 */ 2740 ani_status (*Class_GetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref *result); 2741 2742 /** 2743 * @brief Sets a boolean value to a static field of a class. 2744 * 2745 * This function assigns a boolean value to the specified static field of the given class. 2746 * 2747 * @param[in] env A pointer to the environment structure. 2748 * @param[in] cls The class containing the static field. 2749 * @param[in] field The static field to modify. 2750 * @param[in] value The boolean value to assign. 2751 * @return Returns a status code of type `ani_status` indicating success or failure. 2752 */ 2753 ani_status (*Class_SetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field, ani_boolean value); 2754 2755 /** 2756 * @brief Sets a character value to a static field of a class. 2757 * 2758 * This function assigns a character value to the specified static field of the given class. 2759 * 2760 * @param[in] env A pointer to the environment structure. 2761 * @param[in] cls The class containing the static field. 2762 * @param[in] field The static field to modify. 2763 * @param[in] value The character value to assign. 2764 * @return Returns a status code of type `ani_status` indicating success or failure. 2765 */ 2766 ani_status (*Class_SetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char value); 2767 2768 /** 2769 * @brief Sets a byte value to a static field of a class. 2770 * 2771 * This function assigns a byte value to the specified static field of the given class. 2772 * 2773 * @param[in] env A pointer to the environment structure. 2774 * @param[in] cls The class containing the static field. 2775 * @param[in] field The static field to modify. 2776 * @param[in] value The byte value to assign. 2777 * @return Returns a status code of type `ani_status` indicating success or failure. 2778 */ 2779 ani_status (*Class_SetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte value); 2780 2781 /** 2782 * @brief Sets a short value to a static field of a class. 2783 * 2784 * This function assigns a short value to the specified static field of the given class. 2785 * 2786 * @param[in] env A pointer to the environment structure. 2787 * @param[in] cls The class containing the static field. 2788 * @param[in] field The static field to modify. 2789 * @param[in] value The short value to assign. 2790 * @return Returns a status code of type `ani_status` indicating success or failure. 2791 */ 2792 ani_status (*Class_SetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short value); 2793 2794 /** 2795 * @brief Sets an integer value to a static field of a class. 2796 * 2797 * This function assigns an integer value to the specified static field of the given class. 2798 * 2799 * @param[in] env A pointer to the environment structure. 2800 * @param[in] cls The class containing the static field. 2801 * @param[in] field The static field to modify. 2802 * @param[in] value The integer value to assign. 2803 * @return Returns a status code of type `ani_status` indicating success or failure. 2804 */ 2805 ani_status (*Class_SetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int value); 2806 2807 /** 2808 * @brief Sets a long value to a static field of a class. 2809 * 2810 * This function assigns a long value to the specified static field of the given class. 2811 * 2812 * @param[in] env A pointer to the environment structure. 2813 * @param[in] cls The class containing the static field. 2814 * @param[in] field The static field to modify. 2815 * @param[in] value The long value to assign. 2816 * @return Returns a status code of type `ani_status` indicating success or failure. 2817 */ 2818 ani_status (*Class_SetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long value); 2819 2820 /** 2821 * @brief Sets a float value to a static field of a class. 2822 * 2823 * This function assigns a float value to the specified static field of the given class. 2824 * 2825 * @param[in] env A pointer to the environment structure. 2826 * @param[in] cls The class containing the static field. 2827 * @param[in] field The static field to modify. 2828 * @param[in] value The float value to assign. 2829 * @return Returns a status code of type `ani_status` indicating success or failure. 2830 */ 2831 ani_status (*Class_SetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float value); 2832 2833 /** 2834 * @brief Sets a double value to a static field of a class. 2835 * 2836 * This function assigns a double value to the specified static field of the given class. 2837 * 2838 * @param[in] env A pointer to the environment structure. 2839 * @param[in] cls The class containing the static field. 2840 * @param[in] field The static field to modify. 2841 * @param[in] value The double value to assign. 2842 * @return Returns a status code of type `ani_status` indicating success or failure. 2843 */ 2844 ani_status (*Class_SetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double value); 2845 2846 /** 2847 * @brief Sets a reference value to a static field of a class. 2848 * 2849 * This function assigns a reference value to the specified static field of the given class. 2850 * 2851 * @param[in] env A pointer to the environment structure. 2852 * @param[in] cls The class containing the static field. 2853 * @param[in] field The static field to modify. 2854 * @param[in] value The reference value to assign. 2855 * @return Returns a status code of type `ani_status` indicating success or failure. 2856 */ 2857 ani_status (*Class_SetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref value); 2858 2859 /** 2860 * @brief Retrieves a boolean value from a static field of a class by its name. 2861 * 2862 * This function retrieves the boolean value of the specified static field from the given class by its name. 2863 * 2864 * @param[in] env A pointer to the environment structure. 2865 * @param[in] cls The class containing the static field. 2866 * @param[in] name The name of the static field to retrieve. 2867 * @param[out] result A pointer to store the retrieved boolean value. 2868 * @return Returns a status code of type `ani_status` indicating success or failure. 2869 */ 2870 ani_status (*Class_GetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name, 2871 ani_boolean *result); 2872 2873 /** 2874 * @brief Retrieves a character value from a static field of a class by its name. 2875 * 2876 * This function retrieves the character value of the specified static field from the given class by its name. 2877 * 2878 * @param[in] env A pointer to the environment structure. 2879 * @param[in] cls The class containing the static field. 2880 * @param[in] name The name of the static field to retrieve. 2881 * @param[out] result A pointer to store the retrieved character value. 2882 * @return Returns a status code of type `ani_status` indicating success or failure. 2883 */ 2884 ani_status (*Class_GetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char *result); 2885 2886 /** 2887 * @brief Retrieves a byte value from a static field of a class by its name. 2888 * 2889 * This function retrieves the byte value of the specified static field from the given class by its name. 2890 * 2891 * @param[in] env A pointer to the environment structure. 2892 * @param[in] cls The class containing the static field. 2893 * @param[in] name The name of the static field to retrieve. 2894 * @param[out] result A pointer to store the retrieved byte value. 2895 * @return Returns a status code of type `ani_status` indicating success or failure. 2896 */ 2897 ani_status (*Class_GetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte *result); 2898 2899 /** 2900 * @brief Retrieves a short value from a static field of a class by its name. 2901 * 2902 * This function retrieves the short value of the specified static field from the given class by its name. 2903 * 2904 * @param[in] env A pointer to the environment structure. 2905 * @param[in] cls The class containing the static field. 2906 * @param[in] name The name of the static field to retrieve. 2907 * @param[out] result A pointer to store the retrieved short value. 2908 * @return Returns a status code of type `ani_status` indicating success or failure. 2909 */ 2910 ani_status (*Class_GetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short *result); 2911 2912 /** 2913 * @brief Retrieves an integer value from a static field of a class by its name. 2914 * 2915 * This function retrieves the integer value of the specified static field from the given class by its name. 2916 * 2917 * @param[in] env A pointer to the environment structure. 2918 * @param[in] cls The class containing the static field. 2919 * @param[in] name The name of the static field to retrieve. 2920 * @param[out] result A pointer to store the retrieved integer value. 2921 * @return Returns a status code of type `ani_status` indicating success or failure. 2922 */ 2923 ani_status (*Class_GetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int *result); 2924 2925 /** 2926 * @brief Retrieves a long value from a static field of a class by its name. 2927 * 2928 * This function retrieves the long value of the specified static field from the given class by its name. 2929 * 2930 * @param[in] env A pointer to the environment structure. 2931 * @param[in] cls The class containing the static field. 2932 * @param[in] name The name of the static field to retrieve. 2933 * @param[out] result A pointer to store the retrieved long value. 2934 * @return Returns a status code of type `ani_status` indicating success or failure. 2935 */ 2936 ani_status (*Class_GetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long *result); 2937 2938 /** 2939 * @brief Retrieves a float value from a static field of a class by its name. 2940 * 2941 * This function retrieves the float value of the specified static field from the given class by its name. 2942 * 2943 * @param[in] env A pointer to the environment structure. 2944 * @param[in] cls The class containing the static field. 2945 * @param[in] name The name of the static field to retrieve. 2946 * @param[out] result A pointer to store the retrieved float value. 2947 * @return Returns a status code of type `ani_status` indicating success or failure. 2948 */ 2949 ani_status (*Class_GetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float *result); 2950 2951 /** 2952 * @brief Retrieves a double value from a static field of a class by its name. 2953 * 2954 * This function retrieves the double value of the specified static field from the given class by its name. 2955 * 2956 * @param[in] env A pointer to the environment structure. 2957 * @param[in] cls The class containing the static field. 2958 * @param[in] name The name of the static field to retrieve. 2959 * @param[out] result A pointer to store the retrieved double value. 2960 * @return Returns a status code of type `ani_status` indicating success or failure. 2961 */ 2962 ani_status (*Class_GetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double *result); 2963 2964 /** 2965 * @brief Retrieves a reference value from a static field of a class by its name. 2966 * 2967 * This function retrieves the reference value of the specified static field from the given class by its name. 2968 * 2969 * @param[in] env A pointer to the environment structure. 2970 * @param[in] cls The class containing the static field. 2971 * @param[in] name The name of the static field to retrieve. 2972 * @param[out] result A pointer to store the retrieved reference value. 2973 * @return Returns a status code of type `ani_status` indicating success or failure. 2974 */ 2975 ani_status (*Class_GetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref *result); 2976 2977 /** 2978 * @brief Sets a boolean value to a static field of a class by its name. 2979 * 2980 * This function assigns a boolean value to the specified static field of the given class by its name. 2981 * 2982 * @param[in] env A pointer to the environment structure. 2983 * @param[in] cls The class containing the static field. 2984 * @param[in] name The name of the static field to modify. 2985 * @param[in] value The boolean value to assign. 2986 * @return Returns a status code of type `ani_status` indicating success or failure. 2987 */ 2988 ani_status (*Class_SetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name, ani_boolean value); 2989 2990 /** 2991 * @brief Sets a character value to a static field of a class by its name. 2992 * 2993 * This function assigns a character value to the specified static field of the given class by its name. 2994 * 2995 * @param[in] env A pointer to the environment structure. 2996 * @param[in] cls The class containing the static field. 2997 * @param[in] name The name of the static field to modify. 2998 * @param[in] value The character value to assign. 2999 * @return Returns a status code of type `ani_status` indicating success or failure. 3000 */ 3001 ani_status (*Class_SetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char value); 3002 3003 /** 3004 * @brief Sets a byte value to a static field of a class by its name. 3005 * 3006 * This function assigns a byte value to the specified static field of the given class by its name. 3007 * 3008 * @param[in] env A pointer to the environment structure. 3009 * @param[in] cls The class containing the static field. 3010 * @param[in] name The name of the static field to modify. 3011 * @param[in] value The byte value to assign. 3012 * @return Returns a status code of type `ani_status` indicating success or failure. 3013 */ 3014 ani_status (*Class_SetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte value); 3015 3016 /** 3017 * @brief Sets a short value to a static field of a class by its name. 3018 * 3019 * This function assigns a short value to the specified static field of the given class by its name. 3020 * 3021 * @param[in] env A pointer to the environment structure. 3022 * @param[in] cls The class containing the static field. 3023 * @param[in] name The name of the static field to modify. 3024 * @param[in] value The short value to assign. 3025 * @return Returns a status code of type `ani_status` indicating success or failure. 3026 */ 3027 ani_status (*Class_SetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short value); 3028 3029 /** 3030 * @brief Sets an integer value to a static field of a class by its name. 3031 * 3032 * This function assigns an integer value to the specified static field of the given class by its name. 3033 * 3034 * @param[in] env A pointer to the environment structure. 3035 * @param[in] cls The class containing the static field. 3036 * @param[in] name The name of the static field to modify. 3037 * @param[in] value The integer value to assign. 3038 * @return Returns a status code of type `ani_status` indicating success or failure. 3039 */ 3040 ani_status (*Class_SetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int value); 3041 3042 /** 3043 * @brief Sets a long value to a static field of a class by its name. 3044 * 3045 * This function assigns a long value to the specified static field of the given class by its name. 3046 * 3047 * @param[in] env A pointer to the environment structure. 3048 * @param[in] cls The class containing the static field. 3049 * @param[in] name The name of the static field to modify. 3050 * @param[in] value The long value to assign. 3051 * @return Returns a status code of type `ani_status` indicating success or failure. 3052 */ 3053 ani_status (*Class_SetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long value); 3054 3055 /** 3056 * @brief Sets a float value to a static field of a class by its name. 3057 * 3058 * This function assigns a float value to the specified static field of the given class by its name. 3059 * 3060 * @param[in] env A pointer to the environment structure. 3061 * @param[in] cls The class containing the static field. 3062 * @param[in] name The name of the static field to modify. 3063 * @param[in] value The float value to assign. 3064 * @return Returns a status code of type `ani_status` indicating success or failure. 3065 */ 3066 ani_status (*Class_SetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float value); 3067 3068 /** 3069 * @brief Sets a double value to a static field of a class by its name. 3070 * 3071 * This function assigns a double value to the specified static field of the given class by its name. 3072 * 3073 * @param[in] env A pointer to the environment structure. 3074 * @param[in] cls The class containing the static field. 3075 * @param[in] name The name of the static field to modify. 3076 * @param[in] value The double value to assign. 3077 * @return Returns a status code of type `ani_status` indicating success or failure. 3078 */ 3079 ani_status (*Class_SetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double value); 3080 3081 /** 3082 * @brief Sets a reference value to a static field of a class by its name. 3083 * 3084 * This function assigns a reference value to the specified static field of the given class by its name. 3085 * 3086 * @param[in] env A pointer to the environment structure. 3087 * @param[in] cls The class containing the static field. 3088 * @param[in] name The name of the static field to modify. 3089 * @param[in] value The reference value to assign. 3090 * @return Returns a status code of type `ani_status` indicating success or failure. 3091 */ 3092 ani_status (*Class_SetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref value); 3093 3094 /** 3095 * @brief Calls a static method with a boolean return type. 3096 * 3097 * This function calls the specified static method of a class and retrieves a boolean result using variadic 3098 * arguments. 3099 * 3100 * @param[in] env A pointer to the environment structure. 3101 * @param[in] cls The class containing the static method. 3102 * @param[in] method The static method to call. 3103 * @param[out] result A pointer to store the boolean result. 3104 * @param[in] ... Variadic arguments to pass to the method. 3105 * @return Returns a status code of type `ani_status` indicating success or failure. 3106 */ 3107 ani_status (*Class_CallStaticMethod_Boolean)(ani_env *env, ani_class cls, ani_static_method method, 3108 ani_boolean *result, ...); 3109 3110 /** 3111 * @brief Calls a static method with a boolean return type (array-based). 3112 * 3113 * This function calls the specified static method of a class and retrieves a boolean result using arguments from an 3114 * array. 3115 * 3116 * @param[in] env A pointer to the environment structure. 3117 * @param[in] cls The class containing the static method. 3118 * @param[in] method The static method to call. 3119 * @param[out] result A pointer to store the boolean result. 3120 * @param[in] args An array of arguments to pass to the method. 3121 * @return Returns a status code of type `ani_status` indicating success or failure. 3122 */ 3123 ani_status (*Class_CallStaticMethod_Boolean_A)(ani_env *env, ani_class cls, ani_static_method method, 3124 ani_boolean *result, const ani_value *args); 3125 3126 /** 3127 * @brief Calls a static method with a boolean return type (variadic arguments). 3128 * 3129 * This function calls the specified static method of a class and retrieves a boolean result using a `va_list`. 3130 * 3131 * @param[in] env A pointer to the environment structure. 3132 * @param[in] cls The class containing the static method. 3133 * @param[in] method The static method to call. 3134 * @param[out] result A pointer to store the boolean result. 3135 * @param[in] args A `va_list` of arguments to pass to the method. 3136 * @return Returns a status code of type `ani_status` indicating success or failure. 3137 */ 3138 ani_status (*Class_CallStaticMethod_Boolean_V)(ani_env *env, ani_class cls, ani_static_method method, 3139 ani_boolean *result, va_list args); 3140 3141 /** 3142 * @brief Calls a static method with a character return type. 3143 * 3144 * This function calls the specified static method of a class and retrieves a character result using variadic 3145 * arguments. 3146 * 3147 * @param[in] env A pointer to the environment structure. 3148 * @param[in] cls The class containing the static method. 3149 * @param[in] method The static method to call. 3150 * @param[out] result A pointer to store the character result. 3151 * @param[in] ... Variadic arguments to pass to the method. 3152 * @return Returns a status code of type `ani_status` indicating success or failure. 3153 */ 3154 ani_status (*Class_CallStaticMethod_Char)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result, 3155 ...); 3156 3157 /** 3158 * @brief Calls a static method with a character return type (array-based). 3159 * 3160 * This function calls the specified static method of a class and retrieves a character result using arguments from 3161 * an array. 3162 * 3163 * @param[in] env A pointer to the environment structure. 3164 * @param[in] cls The class containing the static method. 3165 * @param[in] method The static method to call. 3166 * @param[out] result A pointer to store the character result. 3167 * @param[in] args An array of arguments to pass to the method. 3168 * @return Returns a status code of type `ani_status` indicating success or failure. 3169 */ 3170 ani_status (*Class_CallStaticMethod_Char_A)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result, 3171 const ani_value *args); 3172 3173 /** 3174 * @brief Calls a static method with a character return type (variadic arguments). 3175 * 3176 * This function calls the specified static method of a class and retrieves a character result using a `va_list`. 3177 * 3178 * @param[in] env A pointer to the environment structure. 3179 * @param[in] cls The class containing the static method. 3180 * @param[in] method The static method to call. 3181 * @param[out] result A pointer to store the character result. 3182 * @param[in] args A `va_list` of arguments to pass to the method. 3183 * @return Returns a status code of type `ani_status` indicating success or failure. 3184 */ 3185 ani_status (*Class_CallStaticMethod_Char_V)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result, 3186 va_list args); 3187 3188 /** 3189 * @brief Calls a static method with a byte return type. 3190 * 3191 * This function calls the specified static method of a class and retrieves a byte result using variadic arguments. 3192 * 3193 * @param[in] env A pointer to the environment structure. 3194 * @param[in] cls The class containing the static method. 3195 * @param[in] method The static method to call. 3196 * @param[out] result A pointer to store the byte result. 3197 * @param[in] ... Variadic arguments to pass to the method. 3198 * @return Returns a status code of type `ani_status` indicating success or failure. 3199 */ 3200 ani_status (*Class_CallStaticMethod_Byte)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result, 3201 ...); 3202 3203 /** 3204 * @brief Calls a static method with a byte return type (array-based). 3205 * 3206 * This function calls the specified static method of a class and retrieves a byte result using arguments from an 3207 * array. 3208 * 3209 * @param[in] env A pointer to the environment structure. 3210 * @param[in] cls The class containing the static method. 3211 * @param[in] method The static method to call. 3212 * @param[out] result A pointer to store the byte result. 3213 * @param[in] args An array of arguments to pass to the method. 3214 * @return Returns a status code of type `ani_status` indicating success or failure. 3215 */ 3216 ani_status (*Class_CallStaticMethod_Byte_A)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result, 3217 const ani_value *args); 3218 3219 /** 3220 * @brief Calls a static method with a byte return type (variadic arguments). 3221 * 3222 * This function calls the specified static method of a class and retrieves a byte result using a `va_list`. 3223 * 3224 * @param[in] env A pointer to the environment structure. 3225 * @param[in] cls The class containing the static method. 3226 * @param[in] method The static method to call. 3227 * @param[out] result A pointer to store the byte result. 3228 * @param[in] args A `va_list` of arguments to pass to the method. 3229 * @return Returns a status code of type `ani_status` indicating success or failure. 3230 */ 3231 ani_status (*Class_CallStaticMethod_Byte_V)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result, 3232 va_list args); 3233 3234 /** 3235 * @brief Calls a static method with a short return type. 3236 * 3237 * This function calls the specified static method of a class and retrieves a short result using variadic arguments. 3238 * 3239 * @param[in] env A pointer to the environment structure. 3240 * @param[in] cls The class containing the static method. 3241 * @param[in] method The static method to call. 3242 * @param[out] result A pointer to store the short result. 3243 * @param[in] ... Variadic arguments to pass to the method. 3244 * @return Returns a status code of type `ani_status` indicating success or failure. 3245 */ 3246 ani_status (*Class_CallStaticMethod_Short)(ani_env *env, ani_class cls, ani_static_method method, ani_short *result, 3247 ...); 3248 3249 /** 3250 * @brief Calls a static method with a short return type (array-based). 3251 * 3252 * This function calls the specified static method of a class and retrieves a short result using arguments from an 3253 * array. 3254 * 3255 * @param[in] env A pointer to the environment structure. 3256 * @param[in] cls The class containing the static method. 3257 * @param[in] method The static method to call. 3258 * @param[out] result A pointer to store the short result. 3259 * @param[in] args An array of arguments to pass to the method. 3260 * @return Returns a status code of type `ani_status` indicating success or failure. 3261 */ 3262 ani_status (*Class_CallStaticMethod_Short_A)(ani_env *env, ani_class cls, ani_static_method method, 3263 ani_short *result, const ani_value *args); 3264 3265 /** 3266 * @brief Calls a static method with a short return type (variadic arguments). 3267 * 3268 * This function calls the specified static method of a class and retrieves a short result using a `va_list`. 3269 * 3270 * @param[in] env A pointer to the environment structure. 3271 * @param[in] cls The class containing the static method. 3272 * @param[in] method The static method to call. 3273 * @param[out] result A pointer to store the short result. 3274 * @param[in] args A `va_list` of arguments to pass to the method. 3275 * @return Returns a status code of type `ani_status` indicating success or failure. 3276 */ 3277 ani_status (*Class_CallStaticMethod_Short_V)(ani_env *env, ani_class cls, ani_static_method method, 3278 ani_short *result, va_list args); 3279 3280 /** 3281 * @brief Calls a static method with an integer return type. 3282 * 3283 * This function calls the specified static method of a class and retrieves an integer result using variadic 3284 * arguments. 3285 * 3286 * @param[in] env A pointer to the environment structure. 3287 * @param[in] cls The class containing the static method. 3288 * @param[in] method The static method to call. 3289 * @param[out] result A pointer to store the integer result. 3290 * @param[in] ... Variadic arguments to pass to the method. 3291 * @return Returns a status code of type `ani_status` indicating success or failure. 3292 */ 3293 ani_status (*Class_CallStaticMethod_Int)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result, 3294 ...); 3295 3296 /** 3297 * @brief Calls a static method with an integer return type (array-based). 3298 * 3299 * This function calls the specified static method of a class and retrieves an integer result using arguments from 3300 * an array. 3301 * 3302 * @param[in] env A pointer to the environment structure. 3303 * @param[in] cls The class containing the static method. 3304 * @param[in] method The static method to call. 3305 * @param[out] result A pointer to store the integer result. 3306 * @param[in] args An array of arguments to pass to the method. 3307 * @return Returns a status code of type `ani_status` indicating success or failure. 3308 */ 3309 ani_status (*Class_CallStaticMethod_Int_A)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result, 3310 const ani_value *args); 3311 3312 /** 3313 * @brief Calls a static method with an integer return type (variadic arguments). 3314 * 3315 * This function calls the specified static method of a class and retrieves an integer result using a `va_list`. 3316 * 3317 * @param[in] env A pointer to the environment structure. 3318 * @param[in] cls The class containing the static method. 3319 * @param[in] method The static method to call. 3320 * @param[out] result A pointer to store the integer result. 3321 * @param[in] args A `va_list` of arguments to pass to the method. 3322 * @return Returns a status code of type `ani_status` indicating success or failure. 3323 */ 3324 ani_status (*Class_CallStaticMethod_Int_V)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result, 3325 va_list args); 3326 3327 /** 3328 * @brief Calls a static method with a long return type. 3329 * 3330 * This function calls the specified static method of a class and retrieves a long result using variadic arguments. 3331 * 3332 * @param[in] env A pointer to the environment structure. 3333 * @param[in] cls The class containing the static method. 3334 * @param[in] method The static method to call. 3335 * @param[out] result A pointer to store the long result. 3336 * @param[in] ... Variadic arguments to pass to the method. 3337 * @return Returns a status code of type `ani_status` indicating success or failure. 3338 */ 3339 ani_status (*Class_CallStaticMethod_Long)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result, 3340 ...); 3341 3342 /** 3343 * @brief Calls a static method with a long return type (array-based). 3344 * 3345 * This function calls the specified static method of a class and retrieves a long result using arguments from an 3346 * array. 3347 * 3348 * @param[in] env A pointer to the environment structure. 3349 * @param[in] cls The class containing the static method. 3350 * @param[in] method The static method to call. 3351 * @param[out] result A pointer to store the long result. 3352 * @param[in] args An array of arguments to pass to the method. 3353 * @return Returns a status code of type `ani_status` indicating success or failure. 3354 */ 3355 ani_status (*Class_CallStaticMethod_Long_A)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result, 3356 const ani_value *args); 3357 3358 /** 3359 * @brief Calls a static method with a long return type (variadic arguments). 3360 * 3361 * This function calls the specified static method of a class and retrieves a long result using a `va_list`. 3362 * 3363 * @param[in] env A pointer to the environment structure. 3364 * @param[in] cls The class containing the static method. 3365 * @param[in] method The static method to call. 3366 * @param[out] result A pointer to store the long result. 3367 * @param[in] args A `va_list` of arguments to pass to the method. 3368 * @return Returns a status code of type `ani_status` indicating success or failure. 3369 */ 3370 ani_status (*Class_CallStaticMethod_Long_V)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result, 3371 va_list args); 3372 3373 /** 3374 * @brief Calls a static method with a float return type. 3375 * 3376 * This function calls the specified static method of a class and retrieves a float result using variadic arguments. 3377 * 3378 * @param[in] env A pointer to the environment structure. 3379 * @param[in] cls The class containing the static method. 3380 * @param[in] method The static method to call. 3381 * @param[out] result A pointer to store the float result. 3382 * @param[in] ... Variadic arguments to pass to the method. 3383 * @return Returns a status code of type `ani_status` indicating success or failure. 3384 */ 3385 ani_status (*Class_CallStaticMethod_Float)(ani_env *env, ani_class cls, ani_static_method method, ani_float *result, 3386 ...); 3387 3388 /** 3389 * @brief Calls a static method with a float return type (array-based). 3390 * 3391 * This function calls the specified static method of a class and retrieves a float result using arguments from an 3392 * array. 3393 * 3394 * @param[in] env A pointer to the environment structure. 3395 * @param[in] cls The class containing the static method. 3396 * @param[in] method The static method to call. 3397 * @param[out] result A pointer to store the float result. 3398 * @param[in] args An array of arguments to pass to the method. 3399 * @return Returns a status code of type `ani_status` indicating success or failure. 3400 */ 3401 ani_status (*Class_CallStaticMethod_Float_A)(ani_env *env, ani_class cls, ani_static_method method, 3402 ani_float *result, const ani_value *args); 3403 3404 /** 3405 * @brief Calls a static method with a float return type (variadic arguments). 3406 * 3407 * This function calls the specified static method of a class and retrieves a float result using a `va_list`. 3408 * 3409 * @param[in] env A pointer to the environment structure. 3410 * @param[in] cls The class containing the static method. 3411 * @param[in] method The static method to call. 3412 * @param[out] result A pointer to store the float result. 3413 * @param[in] args A `va_list` of arguments to pass to the method. 3414 * @return Returns a status code of type `ani_status` indicating success or failure. 3415 */ 3416 ani_status (*Class_CallStaticMethod_Float_V)(ani_env *env, ani_class cls, ani_static_method method, 3417 ani_float *result, va_list args); 3418 3419 /** 3420 * @brief Calls a static method with a double return type. 3421 * 3422 * This function calls the specified static method of a class and retrieves a double result using variadic 3423 * arguments. 3424 * 3425 * @param[in] env A pointer to the environment structure. 3426 * @param[in] cls The class containing the static method. 3427 * @param[in] method The static method to call. 3428 * @param[out] result A pointer to store the double result. 3429 * @param[in] ... Variadic arguments to pass to the method. 3430 * @return Returns a status code of type `ani_status` indicating success or failure. 3431 */ 3432 ani_status (*Class_CallStaticMethod_Double)(ani_env *env, ani_class cls, ani_static_method method, 3433 ani_double *result, ...); 3434 3435 /** 3436 * @brief Calls a static method with a double return type (array-based). 3437 * 3438 * This function calls the specified static method of a class and retrieves a double result using arguments from an 3439 * array. 3440 * 3441 * @param[in] env A pointer to the environment structure. 3442 * @param[in] cls The class containing the static method. 3443 * @param[in] method The static method to call. 3444 * @param[out] result A pointer to store the double result. 3445 * @param[in] args An array of arguments to pass to the method. 3446 * @return Returns a status code of type `ani_status` indicating success or failure. 3447 */ 3448 ani_status (*Class_CallStaticMethod_Double_A)(ani_env *env, ani_class cls, ani_static_method method, 3449 ani_double *result, const ani_value *args); 3450 3451 /** 3452 * @brief Calls a static method with a double return type (variadic arguments). 3453 * 3454 * This function calls the specified static method of a class and retrieves a double result using a `va_list`. 3455 * 3456 * @param[in] env A pointer to the environment structure. 3457 * @param[in] cls The class containing the static method. 3458 * @param[in] method The static method to call. 3459 * @param[out] result A pointer to store the double result. 3460 * @param[in] args A `va_list` of arguments to pass to the method. 3461 * @return Returns a status code of type `ani_status` indicating success or failure. 3462 */ 3463 ani_status (*Class_CallStaticMethod_Double_V)(ani_env *env, ani_class cls, ani_static_method method, 3464 ani_double *result, va_list args); 3465 3466 /** 3467 * @brief Calls a static method with a reference return type. 3468 * 3469 * This function calls the specified static method of a class and retrieves a reference result using variadic 3470 * arguments. 3471 * 3472 * @param[in] env A pointer to the environment structure. 3473 * @param[in] cls The class containing the static method. 3474 * @param[in] method The static method to call. 3475 * @param[out] result A pointer to store the reference result. 3476 * @param[in] ... Variadic arguments to pass to the method. 3477 * @return Returns a status code of type `ani_status` indicating success or failure. 3478 */ 3479 ani_status (*Class_CallStaticMethod_Ref)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result, 3480 ...); 3481 3482 /** 3483 * @brief Calls a static method with a reference return type (array-based). 3484 * 3485 * This function calls the specified static method of a class and retrieves a reference result using arguments from 3486 * an array. 3487 * 3488 * @param[in] env A pointer to the environment structure. 3489 * @param[in] cls The class containing the static method. 3490 * @param[in] method The static method to call. 3491 * @param[out] result A pointer to store the reference result. 3492 * @param[in] args An array of arguments to pass to the method. 3493 * @return Returns a status code of type `ani_status` indicating success or failure. 3494 */ 3495 ani_status (*Class_CallStaticMethod_Ref_A)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result, 3496 const ani_value *args); 3497 3498 /** 3499 * @brief Calls a static method with a reference return type (variadic arguments). 3500 * 3501 * This function calls the specified static method of a class and retrieves a reference result using a `va_list`. 3502 * 3503 * @param[in] env A pointer to the environment structure. 3504 * @param[in] cls The class containing the static method. 3505 * @param[in] method The static method to call. 3506 * @param[out] result A pointer to store the reference result. 3507 * @param[in] args A `va_list` of arguments to pass to the method. 3508 * @return Returns a status code of type `ani_status` indicating success or failure. 3509 */ 3510 ani_status (*Class_CallStaticMethod_Ref_V)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result, 3511 va_list args); 3512 3513 /** 3514 * @brief Calls a static method with no return value. 3515 * 3516 * This function calls the specified static method of a class using variadic arguments. The method does not return a 3517 * value. 3518 * 3519 * @param[in] env A pointer to the environment structure. 3520 * @param[in] cls The class containing the static method. 3521 * @param[in] method The static method to call. 3522 * @param[in] ... Variadic arguments to pass to the method. 3523 * @return Returns a status code of type `ani_status` indicating success or failure. 3524 */ 3525 ani_status (*Class_CallStaticMethod_Void)(ani_env *env, ani_class cls, ani_static_method method, ...); 3526 3527 /** 3528 * @brief Calls a static method with no return value (array-based). 3529 * 3530 * This function calls the specified static method of a class using arguments from an array. The method does not 3531 * return a value. 3532 * 3533 * @param[in] env A pointer to the environment structure. 3534 * @param[in] cls The class containing the static method. 3535 * @param[in] method The static method to call. 3536 * @param[in] args An array of arguments to pass to the method. 3537 * @return Returns a status code of type `ani_status` indicating success or failure. 3538 */ 3539 ani_status (*Class_CallStaticMethod_Void_A)(ani_env *env, ani_class cls, ani_static_method method, 3540 const ani_value *args); 3541 3542 /** 3543 * @brief Calls a static method with no return value (variadic arguments). 3544 * 3545 * This function calls the specified static method of a class using a `va_list`. The method does not return a value. 3546 * 3547 * @param[in] env A pointer to the environment structure. 3548 * @param[in] cls The class containing the static method. 3549 * @param[in] method The static method to call. 3550 * @param[in] args A `va_list` of arguments to pass to the method. 3551 * @return Returns a status code of type `ani_status` indicating success or failure. 3552 */ 3553 ani_status (*Class_CallStaticMethod_Void_V)(ani_env *env, ani_class cls, ani_static_method method, va_list args); 3554 3555 /** 3556 * @brief Calls a static method by name with a boolean return type. 3557 * 3558 * This function calls the specified static method of a class by its name and retrieves a boolean result using 3559 * variadic arguments. 3560 * 3561 * @param[in] env A pointer to the environment structure. 3562 * @param[in] cls The class containing the static method. 3563 * @param[in] name The name of the static method to call. 3564 * @param[out] result A pointer to store the boolean result. 3565 * @param[in] ... Variadic arguments to pass to the method. 3566 * @return Returns a status code of type `ani_status` indicating success or failure. 3567 */ 3568 ani_status (*Class_CallStaticMethodByName_Boolean)(ani_env *env, ani_class cls, const char *name, 3569 ani_boolean *result, ...); 3570 3571 /** 3572 * @brief Calls a static method by name with a boolean return type (array-based). 3573 * 3574 * This function calls the specified static method of a class by its name and retrieves a boolean result using 3575 * arguments from an array. 3576 * 3577 * @param[in] env A pointer to the environment structure. 3578 * @param[in] cls The class containing the static method. 3579 * @param[in] name The name of the static method to call. 3580 * @param[out] result A pointer to store the boolean result. 3581 * @param[in] args An array of arguments to pass to the method. 3582 * @return Returns a status code of type `ani_status` indicating success or failure. 3583 */ 3584 ani_status (*Class_CallStaticMethodByName_Boolean_A)(ani_env *env, ani_class cls, const char *name, 3585 ani_boolean *result, const ani_value *args); 3586 3587 /** 3588 * @brief Calls a static method by name with a boolean return type (variadic arguments). 3589 * 3590 * This function calls the specified static method of a class by its name and retrieves a boolean result using a 3591 * `va_list`. 3592 * 3593 * @param[in] env A pointer to the environment structure. 3594 * @param[in] cls The class containing the static method. 3595 * @param[in] name The name of the static method to call. 3596 * @param[out] result A pointer to store the boolean result. 3597 * @param[in] args A `va_list` of arguments to pass to the method. 3598 * @return Returns a status code of type `ani_status` indicating success or failure. 3599 */ 3600 ani_status (*Class_CallStaticMethodByName_Boolean_V)(ani_env *env, ani_class cls, const char *name, 3601 ani_boolean *result, va_list args); 3602 3603 /** 3604 * @brief Calls a static method by name with a char return type. 3605 * 3606 * This function calls the specified static method of a class by its name and retrieves a char result using variadic 3607 * arguments. 3608 * 3609 * @param[in] env A pointer to the environment structure. 3610 * @param[in] cls The class containing the static method. 3611 * @param[in] name The name of the static method to call. 3612 * @param[out] result A pointer to store the char result. 3613 * @param[in] ... Variadic arguments to pass to the method. 3614 * @return Returns a status code of type `ani_status` indicating success or failure. 3615 */ 3616 ani_status (*Class_CallStaticMethodByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char *result, 3617 ...); 3618 3619 /** 3620 * @brief Calls a static method by name with a char return type (array-based). 3621 * 3622 * This function calls the specified static method of a class by its name and retrieves a char result using 3623 * arguments from an array. 3624 * 3625 * @param[in] env A pointer to the environment structure. 3626 * @param[in] cls The class containing the static method. 3627 * @param[in] name The name of the static method to call. 3628 * @param[out] result A pointer to store the char result. 3629 * @param[in] args An array of arguments to pass to the method. 3630 * @return Returns a status code of type `ani_status` indicating success or failure. 3631 */ 3632 ani_status (*Class_CallStaticMethodByName_Char_A)(ani_env *env, ani_class cls, const char *name, ani_char *result, 3633 const ani_value *args); 3634 3635 /** 3636 * @brief Calls a static method by name with a char return type (variadic arguments). 3637 * 3638 * This function calls the specified static method of a class by its name and retrieves a char result using a 3639 * `va_list`. 3640 * 3641 * @param[in] env A pointer to the environment structure. 3642 * @param[in] cls The class containing the static method. 3643 * @param[in] name The name of the static method to call. 3644 * @param[out] result A pointer to store the char result. 3645 * @param[in] args A `va_list` of arguments to pass to the method. 3646 * @return Returns a status code of type `ani_status` indicating success or failure. 3647 */ 3648 ani_status (*Class_CallStaticMethodByName_Char_V)(ani_env *env, ani_class cls, const char *name, ani_char *result, 3649 va_list args); 3650 3651 /** 3652 * @brief Calls a static method by name with a byte return type. 3653 * 3654 * This function calls the specified static method of a class by its name and retrieves a byte result using variadic 3655 * arguments. 3656 * 3657 * @param[in] env A pointer to the environment structure. 3658 * @param[in] cls The class containing the static method. 3659 * @param[in] name The name of the static method to call. 3660 * @param[out] result A pointer to store the byte result. 3661 * @param[in] ... Variadic arguments to pass to the method. 3662 * @return Returns a status code of type `ani_status` indicating success or failure. 3663 */ 3664 ani_status (*Class_CallStaticMethodByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte *result, 3665 ...); 3666 3667 /** 3668 * @brief Calls a static method by name with a byte return type (array-based). 3669 * 3670 * This function calls the specified static method of a class by its name and retrieves a byte result using 3671 * arguments from an array. 3672 * 3673 * @param[in] env A pointer to the environment structure. 3674 * @param[in] cls The class containing the static method. 3675 * @param[in] name The name of the static method to call. 3676 * @param[out] result A pointer to store the byte result. 3677 * @param[in] args An array of arguments to pass to the method. 3678 * @return Returns a status code of type `ani_status` indicating success or failure. 3679 */ 3680 ani_status (*Class_CallStaticMethodByName_Byte_A)(ani_env *env, ani_class cls, const char *name, ani_byte *result, 3681 const ani_value *args); 3682 3683 /** 3684 * @brief Calls a static method by name with a byte return type (variadic arguments). 3685 * 3686 * This function calls the specified static method of a class by its name and retrieves a byte result using a 3687 * `va_list`. 3688 * 3689 * @param[in] env A pointer to the environment structure. 3690 * @param[in] cls The class containing the static method. 3691 * @param[in] name The name of the static method to call. 3692 * @param[out] result A pointer to store the byte result. 3693 * @param[in] args A `va_list` of arguments to pass to the method. 3694 * @return Returns a status code of type `ani_status` indicating success or failure. 3695 */ 3696 ani_status (*Class_CallStaticMethodByName_Byte_V)(ani_env *env, ani_class cls, const char *name, ani_byte *result, 3697 va_list args); 3698 3699 /** 3700 * @brief Calls a static method by name with a short return type. 3701 * 3702 * This function calls the specified static method of a class by its name and retrieves a short result using 3703 * variadic arguments. 3704 * 3705 * @param[in] env A pointer to the environment structure. 3706 * @param[in] cls The class containing the static method. 3707 * @param[in] name The name of the static method to call. 3708 * @param[out] result A pointer to store the short result. 3709 * @param[in] ... Variadic arguments to pass to the method. 3710 * @return Returns a status code of type `ani_status` indicating success or failure. 3711 */ 3712 ani_status (*Class_CallStaticMethodByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short *result, 3713 ...); 3714 3715 /** 3716 * @brief Calls a static method by name with a short return type (array-based). 3717 * 3718 * This function calls the specified static method of a class by its name and retrieves a short result using 3719 * arguments from an array. 3720 * 3721 * @param[in] env A pointer to the environment structure. 3722 * @param[in] cls The class containing the static method. 3723 * @param[in] name The name of the static method to call. 3724 * @param[out] result A pointer to store the short result. 3725 * @param[in] args An array of arguments to pass to the method. 3726 * @return Returns a status code of type `ani_status` indicating success or failure. 3727 */ 3728 ani_status (*Class_CallStaticMethodByName_Short_A)(ani_env *env, ani_class cls, const char *name, ani_short *result, 3729 const ani_value *args); 3730 3731 /** 3732 * @brief Calls a static method by name with a short return type (variadic arguments). 3733 * 3734 * This function calls the specified static method of a class by its name and retrieves a short result using a 3735 * `va_list`. 3736 * 3737 * @param[in] env A pointer to the environment structure. 3738 * @param[in] cls The class containing the static method. 3739 * @param[in] name The name of the static method to call. 3740 * @param[out] result A pointer to store the short result. 3741 * @param[in] args A `va_list` of arguments to pass to the method. 3742 * @return Returns a status code of type `ani_status` indicating success or failure. 3743 */ 3744 ani_status (*Class_CallStaticMethodByName_Short_V)(ani_env *env, ani_class cls, const char *name, ani_short *result, 3745 va_list args); 3746 3747 /** 3748 * @brief Calls a static method by name with a integer return type. 3749 * 3750 * This function calls the specified static method of a class by its name and retrieves a integer result using 3751 * variadic arguments. 3752 * 3753 * @param[in] env A pointer to the environment structure. 3754 * @param[in] cls The class containing the static method. 3755 * @param[in] name The name of the static method to call. 3756 * @param[out] result A pointer to store the integer result. 3757 * @param[in] ... Variadic arguments to pass to the method. 3758 * @return Returns a status code of type `ani_status` indicating success or failure. 3759 */ 3760 ani_status (*Class_CallStaticMethodByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int *result, ...); 3761 3762 /** 3763 * @brief Calls a static method by name with a integer return type (array-based). 3764 * 3765 * This function calls the specified static method of a class by its name and retrieves a integer result using 3766 * arguments from an array. 3767 * 3768 * @param[in] env A pointer to the environment structure. 3769 * @param[in] cls The class containing the static method. 3770 * @param[in] name The name of the static method to call. 3771 * @param[out] result A pointer to store the integer result. 3772 * @param[in] args An array of arguments to pass to the method. 3773 * @return Returns a status code of type `ani_status` indicating success or failure. 3774 */ 3775 ani_status (*Class_CallStaticMethodByName_Int_A)(ani_env *env, ani_class cls, const char *name, ani_int *result, 3776 const ani_value *args); 3777 3778 /** 3779 * @brief Calls a static method by name with a integer return type (variadic arguments). 3780 * 3781 * This function calls the specified static method of a class by its name and retrieves a integer result using a 3782 * `va_list`. 3783 * 3784 * @param[in] env A pointer to the environment structure. 3785 * @param[in] cls The class containing the static method. 3786 * @param[in] name The name of the static method to call. 3787 * @param[out] result A pointer to store the integer result. 3788 * @param[in] args A `va_list` of arguments to pass to the method. 3789 * @return Returns a status code of type `ani_status` indicating success or failure. 3790 */ 3791 ani_status (*Class_CallStaticMethodByName_Int_V)(ani_env *env, ani_class cls, const char *name, ani_int *result, 3792 va_list args); 3793 3794 /** 3795 * @brief Calls a static method by name with a long return type. 3796 * 3797 * This function calls the specified static method of a class by its name and retrieves a long result using variadic 3798 * arguments. 3799 * 3800 * @param[in] env A pointer to the environment structure. 3801 * @param[in] cls The class containing the static method. 3802 * @param[in] name The name of the static method to call. 3803 * @param[out] result A pointer to store the long result. 3804 * @param[in] ... Variadic arguments to pass to the method. 3805 * @return Returns a status code of type `ani_status` indicating success or failure. 3806 */ 3807 ani_status (*Class_CallStaticMethodByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long *result, 3808 ...); 3809 3810 /** 3811 * @brief Calls a static method by name with a long return type (array-based). 3812 * 3813 * This function calls the specified static method of a class by its name and retrieves a long result using 3814 * arguments from an array. 3815 * 3816 * @param[in] env A pointer to the environment structure. 3817 * @param[in] cls The class containing the static method. 3818 * @param[in] name The name of the static method to call. 3819 * @param[out] result A pointer to store the long result. 3820 * @param[in] args An array of arguments to pass to the method. 3821 * @return Returns a status code of type `ani_status` indicating success or failure. 3822 */ 3823 ani_status (*Class_CallStaticMethodByName_Long_A)(ani_env *env, ani_class cls, const char *name, ani_long *result, 3824 const ani_value *args); 3825 3826 /** 3827 * @brief Calls a static method by name with a long return type (variadic arguments). 3828 * 3829 * This function calls the specified static method of a class by its name and retrieves a long result using a 3830 * `va_list`. 3831 * 3832 * @param[in] env A pointer to the environment structure. 3833 * @param[in] cls The class containing the static method. 3834 * @param[in] name The name of the static method to call. 3835 * @param[out] result A pointer to store the long result. 3836 * @param[in] args A `va_list` of arguments to pass to the method. 3837 * @return Returns a status code of type `ani_status` indicating success or failure. 3838 */ 3839 ani_status (*Class_CallStaticMethodByName_Long_V)(ani_env *env, ani_class cls, const char *name, ani_long *result, 3840 va_list args); 3841 3842 /** 3843 * @brief Calls a static method by name with a float return type. 3844 * 3845 * This function calls the specified static method of a class by its name and retrieves a float result using 3846 * variadic arguments. 3847 * 3848 * @param[in] env A pointer to the environment structure. 3849 * @param[in] cls The class containing the static method. 3850 * @param[in] name The name of the static method to call. 3851 * @param[out] result A pointer to store the float result. 3852 * @param[in] ... Variadic arguments to pass to the method. 3853 * @return Returns a status code of type `ani_status` indicating success or failure. 3854 */ 3855 ani_status (*Class_CallStaticMethodByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float *result, 3856 ...); 3857 3858 /** 3859 * @brief Calls a static method by name with a float return type (array-based). 3860 * 3861 * This function calls the specified static method of a class by its name and retrieves a float result using 3862 * arguments from an array. 3863 * 3864 * @param[in] env A pointer to the environment structure. 3865 * @param[in] cls The class containing the static method. 3866 * @param[in] name The name of the static method to call. 3867 * @param[out] result A pointer to store the float result. 3868 * @param[in] args An array of arguments to pass to the method. 3869 * @return Returns a status code of type `ani_status` indicating success or failure. 3870 */ 3871 ani_status (*Class_CallStaticMethodByName_Float_A)(ani_env *env, ani_class cls, const char *name, ani_float *result, 3872 const ani_value *args); 3873 3874 /** 3875 * @brief Calls a static method by name with a float return type (variadic arguments). 3876 * 3877 * This function calls the specified static method of a class by its name and retrieves a float result using a 3878 * `va_list`. 3879 * 3880 * @param[in] env A pointer to the environment structure. 3881 * @param[in] cls The class containing the static method. 3882 * @param[in] name The name of the static method to call. 3883 * @param[out] result A pointer to store the float result. 3884 * @param[in] args A `va_list` of arguments to pass to the method. 3885 * @return Returns a status code of type `ani_status` indicating success or failure. 3886 */ 3887 ani_status (*Class_CallStaticMethodByName_Float_V)(ani_env *env, ani_class cls, const char *name, ani_float *result, 3888 va_list args); 3889 3890 /** 3891 * @brief Calls a static method by name with a double return type. 3892 * 3893 * This function calls the specified static method of a class by its name and retrieves a double result using 3894 * variadic arguments. 3895 * 3896 * @param[in] env A pointer to the environment structure. 3897 * @param[in] cls The class containing the static method. 3898 * @param[in] name The name of the static method to call. 3899 * @param[out] result A pointer to store the double result. 3900 * @param[in] ... Variadic arguments to pass to the method. 3901 * @return Returns a status code of type `ani_status` indicating success or failure. 3902 */ 3903 ani_status (*Class_CallStaticMethodByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double *result, 3904 ...); 3905 3906 /** 3907 * @brief Calls a static method by name with a double return type (array-based). 3908 * 3909 * This function calls the specified static method of a class by its name and retrieves a double result using 3910 * arguments from an array. 3911 * 3912 * @param[in] env A pointer to the environment structure. 3913 * @param[in] cls The class containing the static method. 3914 * @param[in] name The name of the static method to call. 3915 * @param[out] result A pointer to store the double result. 3916 * @param[in] args An array of arguments to pass to the method. 3917 * @return Returns a status code of type `ani_status` indicating success or failure. 3918 */ 3919 ani_status (*Class_CallStaticMethodByName_Double_A)(ani_env *env, ani_class cls, const char *name, 3920 ani_double *result, const ani_value *args); 3921 3922 /** 3923 * @brief Calls a static method by name with a double return type (variadic arguments). 3924 * 3925 * This function calls the specified static method of a class by its name and retrieves a double result using a 3926 * `va_list`. 3927 * 3928 * @param[in] env A pointer to the environment structure. 3929 * @param[in] cls The class containing the static method. 3930 * @param[in] name The name of the static method to call. 3931 * @param[out] result A pointer to store the double result. 3932 * @param[in] args A `va_list` of arguments to pass to the method. 3933 * @return Returns a status code of type `ani_status` indicating success or failure. 3934 */ 3935 ani_status (*Class_CallStaticMethodByName_Double_V)(ani_env *env, ani_class cls, const char *name, 3936 ani_double *result, va_list args); 3937 3938 /** 3939 * @brief Calls a static method by name with a reference return type. 3940 * 3941 * This function calls the specified static method of a class by its name and retrieves a reference result using 3942 * variadic arguments. 3943 * 3944 * @param[in] env A pointer to the environment structure. 3945 * @param[in] cls The class containing the static method. 3946 * @param[in] name The name of the static method to call. 3947 * @param[out] result A pointer to store the reference result. 3948 * @param[in] ... Variadic arguments to pass to the method. 3949 * @return Returns a status code of type `ani_status` indicating success or failure. 3950 */ 3951 ani_status (*Class_CallStaticMethodByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref *result, ...); 3952 3953 /** 3954 * @brief Calls a static method by name with a reference return type (array-based). 3955 * 3956 * This function calls the specified static method of a class by its name and retrieves a reference result using 3957 * arguments from an array. 3958 * 3959 * @param[in] env A pointer to the environment structure. 3960 * @param[in] cls The class containing the static method. 3961 * @param[in] name The name of the static method to call. 3962 * @param[out] result A pointer to store the reference result. 3963 * @param[in] args An array of arguments to pass to the method. 3964 * @return Returns a status code of type `ani_status` indicating success or failure. 3965 */ 3966 ani_status (*Class_CallStaticMethodByName_Ref_A)(ani_env *env, ani_class cls, const char *name, ani_ref *result, 3967 const ani_value *args); 3968 3969 /** 3970 * @brief Calls a static method by name with a reference return type (variadic arguments). 3971 * 3972 * This function calls the specified static method of a class by its name and retrieves a reference result using a 3973 * `va_list`. 3974 * 3975 * @param[in] env A pointer to the environment structure. 3976 * @param[in] cls The class containing the static method. 3977 * @param[in] name The name of the static method to call. 3978 * @param[out] result A pointer to store the reference result. 3979 * @param[in] args A `va_list` of arguments to pass to the method. 3980 * @return Returns a status code of type `ani_status` indicating success or failure. 3981 */ 3982 ani_status (*Class_CallStaticMethodByName_Ref_V)(ani_env *env, ani_class cls, const char *name, ani_ref *result, 3983 va_list args); 3984 3985 /** 3986 * @brief Calls a static method by name with no return value. 3987 * 3988 * This function calls the specified static method of a class by its name using variadic arguments. The method does 3989 * not return a value. 3990 * 3991 * @param[in] env A pointer to the environment structure. 3992 * @param[in] cls The class containing the static method. 3993 * @param[in] name The name of the static method to call. 3994 * @param[in] ... Variadic arguments to pass to the method. 3995 * @return Returns a status code of type `ani_status` indicating success or failure. 3996 */ 3997 ani_status (*Class_CallStaticMethodByName_Void)(ani_env *env, ani_class cls, const char *name, ...); 3998 3999 /** 4000 * @brief Calls a static method by name with no return value (array-based). 4001 * 4002 * This function calls the specified static method of a class by its name using arguments from an array. The method 4003 * does not return a value. 4004 * 4005 * @param[in] env A pointer to the environment structure. 4006 * @param[in] cls The class containing the static method. 4007 * @param[in] name The name of the static method to call. 4008 * @param[in] args An array of arguments to pass to the method. 4009 * @return Returns a status code of type `ani_status` indicating success or failure. 4010 */ 4011 ani_status (*Class_CallStaticMethodByName_Void_A)(ani_env *env, ani_class cls, const char *name, 4012 const ani_value *args); 4013 4014 /** 4015 * @brief Calls a static method by name with no return value (variadic arguments). 4016 * 4017 * This function calls the specified static method of a class by its name using a `va_list`. The method does not 4018 * return a value. 4019 * 4020 * @param[in] env A pointer to the environment structure. 4021 * @param[in] cls The class containing the static method. 4022 * @param[in] name The name of the static method to call. 4023 * @param[in] args A `va_list` of arguments to pass to the method. 4024 * @return Returns a status code of type `ani_status` indicating success or failure. 4025 */ 4026 ani_status (*Class_CallStaticMethodByName_Void_V)(ani_env *env, ani_class cls, const char *name, va_list args); 4027 4028 /** 4029 * @brief Retrieves a boolean value from a field of an object. 4030 * 4031 * This function retrieves the boolean value of the specified field from the given object. 4032 * 4033 * @param[in] env A pointer to the environment structure. 4034 * @param[in] object The object containing the field. 4035 * @param[in] field The field to retrieve the boolean value from. 4036 * @param[out] result A pointer to store the retrieved boolean value. 4037 * @return Returns a status code of type `ani_status` indicating success or failure. 4038 */ 4039 ani_status (*Object_GetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean *result); 4040 4041 /** 4042 * @brief Retrieves a char value from a field of an object. 4043 * 4044 * This function retrieves the char value of the specified field from the given object. 4045 * 4046 * @param[in] env A pointer to the environment structure. 4047 * @param[in] object The object containing the field. 4048 * @param[in] field The field to retrieve the char value from. 4049 * @param[out] result A pointer to store the retrieved char value. 4050 * @return Returns a status code of type `ani_status` indicating success or failure. 4051 */ 4052 ani_status (*Object_GetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char *result); 4053 4054 /** 4055 * @brief Retrieves a byte value from a field of an object. 4056 * 4057 * This function retrieves the byte value of the specified field from the given object. 4058 * 4059 * @param[in] env A pointer to the environment structure. 4060 * @param[in] object The object containing the field. 4061 * @param[in] field The field to retrieve the byte value from. 4062 * @param[out] result A pointer to store the retrieved byte value. 4063 * @return Returns a status code of type `ani_status` indicating success or failure. 4064 */ 4065 ani_status (*Object_GetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte *result); 4066 4067 /** 4068 * @brief Retrieves a short value from a field of an object. 4069 * 4070 * This function retrieves the short value of the specified field from the given object. 4071 * 4072 * @param[in] env A pointer to the environment structure. 4073 * @param[in] object The object containing the field. 4074 * @param[in] field The field to retrieve the short value from. 4075 * @param[out] result A pointer to store the retrieved short value. 4076 * @return Returns a status code of type `ani_status` indicating success or failure. 4077 */ 4078 ani_status (*Object_GetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short *result); 4079 4080 /** 4081 * @brief Retrieves a integer value from a field of an object. 4082 * 4083 * This function retrieves the integer value of the specified field from the given object. 4084 * 4085 * @param[in] env A pointer to the environment structure. 4086 * @param[in] object The object containing the field. 4087 * @param[in] field The field to retrieve the integer value from. 4088 * @param[out] result A pointer to store the retrieved integer value. 4089 * @return Returns a status code of type `ani_status` indicating success or failure. 4090 */ 4091 ani_status (*Object_GetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int *result); 4092 4093 /** 4094 * @brief Retrieves a long value from a field of an object. 4095 * 4096 * This function retrieves the long value of the specified field from the given object. 4097 * 4098 * @param[in] env A pointer to the environment structure. 4099 * @param[in] object The object containing the field. 4100 * @param[in] field The field to retrieve the long value from. 4101 * @param[out] result A pointer to store the retrieved long value. 4102 * @return Returns a status code of type `ani_status` indicating success or failure. 4103 */ 4104 ani_status (*Object_GetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long *result); 4105 4106 /** 4107 * @brief Retrieves a float value from a field of an object. 4108 * 4109 * This function retrieves the float value of the specified field from the given object. 4110 * 4111 * @param[in] env A pointer to the environment structure. 4112 * @param[in] object The object containing the field. 4113 * @param[in] field The field to retrieve the float value from. 4114 * @param[out] result A pointer to store the retrieved float value. 4115 * @return Returns a status code of type `ani_status` indicating success or failure. 4116 */ 4117 ani_status (*Object_GetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float *result); 4118 4119 /** 4120 * @brief Retrieves a double value from a field of an object. 4121 * 4122 * This function retrieves the double value of the specified field from the given object. 4123 * 4124 * @param[in] env A pointer to the environment structure. 4125 * @param[in] object The object containing the field. 4126 * @param[in] field The field to retrieve the double value from. 4127 * @param[out] result A pointer to store the retrieved double value. 4128 * @return Returns a status code of type `ani_status` indicating success or failure. 4129 */ 4130 ani_status (*Object_GetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double *result); 4131 4132 /** 4133 * @brief Retrieves a reference value from a field of an object. 4134 * 4135 * This function retrieves the reference value of the specified field from the given object. 4136 * 4137 * @param[in] env A pointer to the environment structure. 4138 * @param[in] object The object containing the field. 4139 * @param[in] field The field to retrieve the reference value from. 4140 * @param[out] result A pointer to store the retrieved reference value. 4141 * @return Returns a status code of type `ani_status` indicating success or failure. 4142 */ 4143 ani_status (*Object_GetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref *result); 4144 4145 /** 4146 * @brief Sets a boolean value to a field of an object. 4147 * 4148 * This function assigns a boolean value to the specified field of the given object. 4149 * 4150 * @param[in] env A pointer to the environment structure. 4151 * @param[in] object The object containing the field. 4152 * @param[in] field The field to set the boolean value to. 4153 * @param[in] value The boolean value to assign to the field. 4154 * @return Returns a status code of type `ani_status` indicating success or failure. 4155 */ 4156 ani_status (*Object_SetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean value); 4157 4158 /** 4159 * @brief Sets a char value to a field of an object. 4160 * 4161 * This function assigns a char value to the specified field of the given object. 4162 * 4163 * @param[in] env A pointer to the environment structure. 4164 * @param[in] object The object containing the field. 4165 * @param[in] field The field to set the char value to. 4166 * @param[in] value The char value to assign to the field. 4167 * @return Returns a status code of type `ani_status` indicating success or failure. 4168 */ 4169 ani_status (*Object_SetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char value); 4170 4171 /** 4172 * @brief Sets a byte value to a field of an object. 4173 * 4174 * This function assigns a byte value to the specified field of the given object. 4175 * 4176 * @param[in] env A pointer to the environment structure. 4177 * @param[in] object The object containing the field. 4178 * @param[in] field The field to set the byte value to. 4179 * @param[in] value The byte value to assign to the field. 4180 * @return Returns a status code of type `ani_status` indicating success or failure. 4181 */ 4182 ani_status (*Object_SetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte value); 4183 4184 /** 4185 * @brief Sets a short value to a field of an object. 4186 * 4187 * This function assigns a short value to the specified field of the given object. 4188 * 4189 * @param[in] env A pointer to the environment structure. 4190 * @param[in] object The object containing the field. 4191 * @param[in] field The field to set the short value to. 4192 * @param[in] value The short value to assign to the field. 4193 * @return Returns a status code of type `ani_status` indicating success or failure. 4194 */ 4195 ani_status (*Object_SetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short value); 4196 4197 /** 4198 * @brief Sets a integer value to a field of an object. 4199 * 4200 * This function assigns a integer value to the specified field of the given object. 4201 * 4202 * @param[in] env A pointer to the environment structure. 4203 * @param[in] object The object containing the field. 4204 * @param[in] field The field to set the integer value to. 4205 * @param[in] value The integer value to assign to the field. 4206 * @return Returns a status code of type `ani_status` indicating success or failure. 4207 */ 4208 ani_status (*Object_SetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int value); 4209 4210 /** 4211 * @brief Sets a long value to a field of an object. 4212 * 4213 * This function assigns a long value to the specified field of the given object. 4214 * 4215 * @param[in] env A pointer to the environment structure. 4216 * @param[in] object The object containing the field. 4217 * @param[in] field The field to set the long value to. 4218 * @param[in] value The long value to assign to the field. 4219 * @return Returns a status code of type `ani_status` indicating success or failure. 4220 */ 4221 ani_status (*Object_SetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long value); 4222 4223 /** 4224 * @brief Sets a float value to a field of an object. 4225 * 4226 * This function assigns a float value to the specified field of the given object. 4227 * 4228 * @param[in] env A pointer to the environment structure. 4229 * @param[in] object The object containing the field. 4230 * @param[in] field The field to set the float value to. 4231 * @param[in] value The float value to assign to the field. 4232 * @return Returns a status code of type `ani_status` indicating success or failure. 4233 */ 4234 ani_status (*Object_SetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float value); 4235 4236 /** 4237 * @brief Sets a double value to a field of an object. 4238 * 4239 * This function assigns a double value to the specified field of the given object. 4240 * 4241 * @param[in] env A pointer to the environment structure. 4242 * @param[in] object The object containing the field. 4243 * @param[in] field The field to set the double value to. 4244 * @param[in] value The double value to assign to the field. 4245 * @return Returns a status code of type `ani_status` indicating success or failure. 4246 */ 4247 ani_status (*Object_SetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double value); 4248 4249 /** 4250 * @brief Sets a reference value to a field of an object. 4251 * 4252 * This function assigns a reference value to the specified field of the given object. 4253 * 4254 * @param[in] env A pointer to the environment structure. 4255 * @param[in] object The object containing the field. 4256 * @param[in] field The field to set the reference value to. 4257 * @param[in] value The reference value to assign to the field. 4258 * @return Returns a status code of type `ani_status` indicating success or failure. 4259 */ 4260 ani_status (*Object_SetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref value); 4261 4262 /** 4263 * @brief Retrieves a boolean value from a field of an object by its name. 4264 * 4265 * This function retrieves the boolean value of the specified field from the given object by its name. 4266 * 4267 * @param[in] env A pointer to the environment structure. 4268 * @param[in] object The object containing the field. 4269 * @param[in] name The name of the field to retrieve the boolean value from. 4270 * @param[out] result A pointer to store the retrieved boolean value. 4271 * @return Returns a status code of type `ani_status` indicating success or failure. 4272 */ 4273 ani_status (*Object_GetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean *result); 4274 4275 /** 4276 * @brief Retrieves a char value from a field of an object by its name. 4277 * 4278 * This function retrieves the char value of the specified field from the given object by its name. 4279 * 4280 * @param[in] env A pointer to the environment structure. 4281 * @param[in] object The object containing the field. 4282 * @param[in] name The name of the field to retrieve the char value from. 4283 * @param[out] result A pointer to store the retrieved char value. 4284 * @return Returns a status code of type `ani_status` indicating success or failure. 4285 */ 4286 ani_status (*Object_GetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result); 4287 4288 /** 4289 * @brief Retrieves a byte value from a field of an object by its name. 4290 * 4291 * This function retrieves the byte value of the specified field from the given object by its name. 4292 * 4293 * @param[in] env A pointer to the environment structure. 4294 * @param[in] object The object containing the field. 4295 * @param[in] name The name of the field to retrieve the byte value from. 4296 * @param[out] result A pointer to store the retrieved byte value. 4297 * @return Returns a status code of type `ani_status` indicating success or failure. 4298 */ 4299 ani_status (*Object_GetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result); 4300 4301 /** 4302 * @brief Retrieves a short value from a field of an object by its name. 4303 * 4304 * This function retrieves the short value of the specified field from the given object by its name. 4305 * 4306 * @param[in] env A pointer to the environment structure. 4307 * @param[in] object The object containing the field. 4308 * @param[in] name The name of the field to retrieve the short value from. 4309 * @param[out] result A pointer to store the retrieved short value. 4310 * @return Returns a status code of type `ani_status` indicating success or failure. 4311 */ 4312 ani_status (*Object_GetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result); 4313 4314 /** 4315 * @brief Retrieves a integer value from a field of an object by its name. 4316 * 4317 * This function retrieves the integer value of the specified field from the given object by its name. 4318 * 4319 * @param[in] env A pointer to the environment structure. 4320 * @param[in] object The object containing the field. 4321 * @param[in] name The name of the field to retrieve the integer value from. 4322 * @param[out] result A pointer to store the retrieved integer value. 4323 * @return Returns a status code of type `ani_status` indicating success or failure. 4324 */ 4325 ani_status (*Object_GetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result); 4326 4327 /** 4328 * @brief Retrieves a long value from a field of an object by its name. 4329 * 4330 * This function retrieves the long value of the specified field from the given object by its name. 4331 * 4332 * @param[in] env A pointer to the environment structure. 4333 * @param[in] object The object containing the field. 4334 * @param[in] name The name of the field to retrieve the long value from. 4335 * @param[out] result A pointer to store the retrieved long value. 4336 * @return Returns a status code of type `ani_status` indicating success or failure. 4337 */ 4338 ani_status (*Object_GetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result); 4339 4340 /** 4341 * @brief Retrieves a float value from a field of an object by its name. 4342 * 4343 * This function retrieves the float value of the specified field from the given object by its name. 4344 * 4345 * @param[in] env A pointer to the environment structure. 4346 * @param[in] object The object containing the field. 4347 * @param[in] name The name of the field to retrieve the float value from. 4348 * @param[out] result A pointer to store the retrieved float value. 4349 * @return Returns a status code of type `ani_status` indicating success or failure. 4350 */ 4351 ani_status (*Object_GetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result); 4352 4353 /** 4354 * @brief Retrieves a double value from a field of an object by its name. 4355 * 4356 * This function retrieves the double value of the specified field from the given object by its name. 4357 * 4358 * @param[in] env A pointer to the environment structure. 4359 * @param[in] object The object containing the field. 4360 * @param[in] name The name of the field to retrieve the double value from. 4361 * @param[out] result A pointer to store the retrieved double value. 4362 * @return Returns a status code of type `ani_status` indicating success or failure. 4363 */ 4364 ani_status (*Object_GetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double *result); 4365 4366 /** 4367 * @brief Retrieves a reference value from a field of an object by its name. 4368 * 4369 * This function retrieves the reference value of the specified field from the given object by its name. 4370 * 4371 * @param[in] env A pointer to the environment structure. 4372 * @param[in] object The object containing the field. 4373 * @param[in] name The name of the field to retrieve the reference value from. 4374 * @param[out] result A pointer to store the retrieved reference value. 4375 * @return Returns a status code of type `ani_status` indicating success or failure. 4376 */ 4377 ani_status (*Object_GetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result); 4378 4379 /** 4380 * @brief Sets a boolean value to a field of an object by its name. 4381 * 4382 * This function assigns a boolean value to the specified field of the given object by its name. 4383 * 4384 * @param[in] env A pointer to the environment structure. 4385 * @param[in] object The object containing the field. 4386 * @param[in] name The name of the field to set the boolean value to. 4387 * @param[in] value The boolean value to assign to the field. 4388 * @return Returns a status code of type `ani_status` indicating success or failure. 4389 */ 4390 ani_status (*Object_SetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean value); 4391 4392 /** 4393 * @brief Sets a char value to a field of an object by its name. 4394 * 4395 * This function assigns a char value to the specified field of the given object by its name. 4396 * 4397 * @param[in] env A pointer to the environment structure. 4398 * @param[in] object The object containing the field. 4399 * @param[in] name The name of the field to set the char value to. 4400 * @param[in] value The char value to assign to the field. 4401 * @return Returns a status code of type `ani_status` indicating success or failure. 4402 */ 4403 ani_status (*Object_SetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value); 4404 4405 /** 4406 * @brief Sets a byte value to a field of an object by its name. 4407 * 4408 * This function assigns a byte value to the specified field of the given object by its name. 4409 * 4410 * @param[in] env A pointer to the environment structure. 4411 * @param[in] object The object containing the field. 4412 * @param[in] name The name of the field to set the byte value to. 4413 * @param[in] value The byte value to assign to the field. 4414 * @return Returns a status code of type `ani_status` indicating success or failure. 4415 */ 4416 ani_status (*Object_SetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value); 4417 4418 /** 4419 * @brief Sets a short value to a field of an object by its name. 4420 * 4421 * This function assigns a short value to the specified field of the given object by its name. 4422 * 4423 * @param[in] env A pointer to the environment structure. 4424 * @param[in] object The object containing the field. 4425 * @param[in] name The name of the field to set the short value to. 4426 * @param[in] value The short value to assign to the field. 4427 * @return Returns a status code of type `ani_status` indicating success or failure. 4428 */ 4429 ani_status (*Object_SetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value); 4430 4431 /** 4432 * @brief Sets a integer value to a field of an object by its name. 4433 * 4434 * This function assigns a integer value to the specified field of the given object by its name. 4435 * 4436 * @param[in] env A pointer to the environment structure. 4437 * @param[in] object The object containing the field. 4438 * @param[in] name The name of the field to set the integer value to. 4439 * @param[in] value The integer value to assign to the field. 4440 * @return Returns a status code of type `ani_status` indicating success or failure. 4441 */ 4442 ani_status (*Object_SetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value); 4443 4444 /** 4445 * @brief Sets a long value to a field of an object by its name. 4446 * 4447 * This function assigns a long value to the specified field of the given object by its name. 4448 * 4449 * @param[in] env A pointer to the environment structure. 4450 * @param[in] object The object containing the field. 4451 * @param[in] name The name of the field to set the long value to. 4452 * @param[in] value The long value to assign to the field. 4453 * @return Returns a status code of type `ani_status` indicating success or failure. 4454 */ 4455 ani_status (*Object_SetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value); 4456 4457 /** 4458 * @brief Sets a float value to a field of an object by its name. 4459 * 4460 * This function assigns a float value to the specified field of the given object by its name. 4461 * 4462 * @param[in] env A pointer to the environment structure. 4463 * @param[in] object The object containing the field. 4464 * @param[in] name The name of the field to set the float value to. 4465 * @param[in] value The float value to assign to the field. 4466 * @return Returns a status code of type `ani_status` indicating success or failure. 4467 */ 4468 ani_status (*Object_SetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value); 4469 4470 /** 4471 * @brief Sets a double value to a field of an object by its name. 4472 * 4473 * This function assigns a double value to the specified field of the given object by its name. 4474 * 4475 * @param[in] env A pointer to the environment structure. 4476 * @param[in] object The object containing the field. 4477 * @param[in] name The name of the field to set the double value to. 4478 * @param[in] value The double value to assign to the field. 4479 * @return Returns a status code of type `ani_status` indicating success or failure. 4480 */ 4481 ani_status (*Object_SetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value); 4482 4483 /** 4484 * @brief Sets a reference value to a field of an object by its name. 4485 * 4486 * This function assigns a reference value to the specified field of the given object by its name. 4487 * 4488 * @param[in] env A pointer to the environment structure. 4489 * @param[in] object The object containing the field. 4490 * @param[in] name The name of the field to set the reference value to. 4491 * @param[in] value The reference value to assign to the field. 4492 * @return Returns a status code of type `ani_status` indicating success or failure. 4493 */ 4494 ani_status (*Object_SetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value); 4495 4496 /** 4497 * @brief Retrieves a boolean value from a property of an object. 4498 * 4499 * This function retrieves the boolean value of the specified property from the given object. 4500 * 4501 * @param[in] env A pointer to the environment structure. 4502 * @param[in] object The object containing the property. 4503 * @param[in] property The property to retrieve the boolean value from. 4504 * @param[out] result A pointer to store the retrieved boolean value. 4505 * @return Returns a status code of type `ani_status` indicating success or failure. 4506 */ 4507 ani_status (*Object_GetProperty_Boolean)(ani_env *env, ani_object object, ani_property property, 4508 ani_boolean *result); 4509 4510 /** 4511 * @brief Retrieves a char value from a property of an object. 4512 * 4513 * This function retrieves the char value of the specified property from the given object. 4514 * 4515 * @param[in] env A pointer to the environment structure. 4516 * @param[in] object The object containing the property. 4517 * @param[in] property The property to retrieve the char value from. 4518 * @param[out] result A pointer to store the retrieved char value. 4519 * @return Returns a status code of type `ani_status` indicating success or failure. 4520 */ 4521 ani_status (*Object_GetProperty_Char)(ani_env *env, ani_object object, ani_property property, ani_char *result); 4522 4523 /** 4524 * @brief Retrieves a byte value from a property of an object. 4525 * 4526 * This function retrieves the byte value of the specified property from the given object. 4527 * 4528 * @param[in] env A pointer to the environment structure. 4529 * @param[in] object The object containing the property. 4530 * @param[in] property The property to retrieve the byte value from. 4531 * @param[out] result A pointer to store the retrieved byte value. 4532 * @return Returns a status code of type `ani_status` indicating success or failure. 4533 */ 4534 ani_status (*Object_GetProperty_Byte)(ani_env *env, ani_object object, ani_property property, ani_byte *result); 4535 4536 /** 4537 * @brief Retrieves a short value from a property of an object. 4538 * 4539 * This function retrieves the short value of the specified property from the given object. 4540 * 4541 * @param[in] env A pointer to the environment structure. 4542 * @param[in] object The object containing the property. 4543 * @param[in] property The property to retrieve the short value from. 4544 * @param[out] result A pointer to store the retrieved short value. 4545 * @return Returns a status code of type `ani_status` indicating success or failure. 4546 */ 4547 ani_status (*Object_GetProperty_Short)(ani_env *env, ani_object object, ani_property property, ani_short *result); 4548 4549 /** 4550 * @brief Retrieves a integer value from a property of an object. 4551 * 4552 * This function retrieves the integer value of the specified property from the given object. 4553 * 4554 * @param[in] env A pointer to the environment structure. 4555 * @param[in] object The object containing the property. 4556 * @param[in] property The property to retrieve the integer value from. 4557 * @param[out] result A pointer to store the retrieved integer value. 4558 * @return Returns a status code of type `ani_status` indicating success or failure. 4559 */ 4560 ani_status (*Object_GetProperty_Int)(ani_env *env, ani_object object, ani_property property, ani_int *result); 4561 4562 /** 4563 * @brief Retrieves a long value from a property of an object. 4564 * 4565 * This function retrieves the long value of the specified property from the given object. 4566 * 4567 * @param[in] env A pointer to the environment structure. 4568 * @param[in] object The object containing the property. 4569 * @param[in] property The property to retrieve the long value from. 4570 * @param[out] result A pointer to store the retrieved long value. 4571 * @return Returns a status code of type `ani_status` indicating success or failure. 4572 */ 4573 ani_status (*Object_GetProperty_Long)(ani_env *env, ani_object object, ani_property property, ani_long *result); 4574 4575 /** 4576 * @brief Retrieves a float value from a property of an object. 4577 * 4578 * This function retrieves the float value of the specified property from the given object. 4579 * 4580 * @param[in] env A pointer to the environment structure. 4581 * @param[in] object The object containing the property. 4582 * @param[in] property The property to retrieve the float value from. 4583 * @param[out] result A pointer to store the retrieved float value. 4584 * @return Returns a status code of type `ani_status` indicating success or failure. 4585 */ 4586 ani_status (*Object_GetProperty_Float)(ani_env *env, ani_object object, ani_property property, ani_float *result); 4587 4588 /** 4589 * @brief Retrieves a double value from a property of an object. 4590 * 4591 * This function retrieves the double value of the specified property from the given object. 4592 * 4593 * @param[in] env A pointer to the environment structure. 4594 * @param[in] object The object containing the property. 4595 * @param[in] property The property to retrieve the double value from. 4596 * @param[out] result A pointer to store the retrieved double value. 4597 * @return Returns a status code of type `ani_status` indicating success or failure. 4598 */ 4599 ani_status (*Object_GetProperty_Double)(ani_env *env, ani_object object, ani_property property, ani_double *result); 4600 4601 /** 4602 * @brief Retrieves a reference value from a property of an object. 4603 * 4604 * This function retrieves the reference value of the specified property from the given object. 4605 * 4606 * @param[in] env A pointer to the environment structure. 4607 * @param[in] object The object containing the property. 4608 * @param[in] property The property to retrieve the reference value from. 4609 * @param[out] result A pointer to store the retrieved reference value. 4610 * @return Returns a status code of type `ani_status` indicating success or failure. 4611 */ 4612 ani_status (*Object_GetProperty_Ref)(ani_env *env, ani_object object, ani_property property, ani_ref *result); 4613 4614 /** 4615 * @brief Sets a boolean value to a property of an object. 4616 * 4617 * This function assigns a boolean value to the specified property of the given object. 4618 * 4619 * @param[in] env A pointer to the environment structure. 4620 * @param[in] object The object containing the property. 4621 * @param[in] property The property to set the boolean value to. 4622 * @param[in] value The boolean value to assign to the property. 4623 * @return Returns a status code of type `ani_status` indicating success or failure. 4624 */ 4625 ani_status (*Object_SetProperty_Boolean)(ani_env *env, ani_object object, ani_property property, ani_boolean value); 4626 4627 /** 4628 * @brief Sets a char value to a property of an object. 4629 * 4630 * This function assigns a char value to the specified property of the given object. 4631 * 4632 * @param[in] env A pointer to the environment structure. 4633 * @param[in] object The object containing the property. 4634 * @param[in] property The property to set the char value to. 4635 * @param[in] value The char value to assign to the property. 4636 * @return Returns a status code of type `ani_status` indicating success or failure. 4637 */ 4638 ani_status (*Object_SetProperty_Char)(ani_env *env, ani_object object, ani_property property, ani_char value); 4639 4640 /** 4641 * @brief Sets a byte value to a property of an object. 4642 * 4643 * This function assigns a byte value to the specified property of the given object. 4644 * 4645 * @param[in] env A pointer to the environment structure. 4646 * @param[in] object The object containing the property. 4647 * @param[in] property The property to set the byte value to. 4648 * @param[in] value The byte value to assign to the property. 4649 * @return Returns a status code of type `ani_status` indicating success or failure. 4650 */ 4651 ani_status (*Object_SetProperty_Byte)(ani_env *env, ani_object object, ani_property property, ani_byte value); 4652 4653 /** 4654 * @brief Sets a short value to a property of an object. 4655 * 4656 * This function assigns a short value to the specified property of the given object. 4657 * 4658 * @param[in] env A pointer to the environment structure. 4659 * @param[in] object The object containing the property. 4660 * @param[in] property The property to set the short value to. 4661 * @param[in] value The short value to assign to the property. 4662 * @return Returns a status code of type `ani_status` indicating success or failure. 4663 */ 4664 ani_status (*Object_SetProperty_Short)(ani_env *env, ani_object object, ani_property property, ani_short value); 4665 4666 /** 4667 * @brief Sets a integer value to a property of an object. 4668 * 4669 * This function assigns a integer value to the specified property of the given object. 4670 * 4671 * @param[in] env A pointer to the environment structure. 4672 * @param[in] object The object containing the property. 4673 * @param[in] property The property to set the integer value to. 4674 * @param[in] value The integer value to assign to the property. 4675 * @return Returns a status code of type `ani_status` indicating success or failure. 4676 */ 4677 ani_status (*Object_SetProperty_Int)(ani_env *env, ani_object object, ani_property property, ani_int value); 4678 4679 /** 4680 * @brief Sets a long value to a property of an object. 4681 * 4682 * This function assigns a long value to the specified property of the given object. 4683 * 4684 * @param[in] env A pointer to the environment structure. 4685 * @param[in] object The object containing the property. 4686 * @param[in] property The property to set the long value to. 4687 * @param[in] value The long value to assign to the property. 4688 * @return Returns a status code of type `ani_status` indicating success or failure. 4689 */ 4690 ani_status (*Object_SetProperty_Long)(ani_env *env, ani_object object, ani_property property, ani_long value); 4691 4692 /** 4693 * @brief Sets a float value to a property of an object. 4694 * 4695 * This function assigns a float value to the specified property of the given object. 4696 * 4697 * @param[in] env A pointer to the environment structure. 4698 * @param[in] object The object containing the property. 4699 * @param[in] property The property to set the float value to. 4700 * @param[in] value The float value to assign to the property. 4701 * @return Returns a status code of type `ani_status` indicating success or failure. 4702 */ 4703 ani_status (*Object_SetProperty_Float)(ani_env *env, ani_object object, ani_property property, ani_float value); 4704 4705 /** 4706 * @brief Sets a double value to a property of an object. 4707 * 4708 * This function assigns a double value to the specified property of the given object. 4709 * 4710 * @param[in] env A pointer to the environment structure. 4711 * @param[in] object The object containing the property. 4712 * @param[in] property The property to set the double value to. 4713 * @param[in] value The double value to assign to the property. 4714 * @return Returns a status code of type `ani_status` indicating success or failure. 4715 */ 4716 ani_status (*Object_SetProperty_Double)(ani_env *env, ani_object object, ani_property property, ani_double value); 4717 4718 /** 4719 * @brief Sets a reference value to a property of an object. 4720 * 4721 * This function assigns a reference value to the specified property of the given object. 4722 * 4723 * @param[in] env A pointer to the environment structure. 4724 * @param[in] object The object containing the property. 4725 * @param[in] property The property to set the reference value to. 4726 * @param[in] value The reference value to assign to the property. 4727 * @return Returns a status code of type `ani_status` indicating success or failure. 4728 */ 4729 ani_status (*Object_SetProperty_Ref)(ani_env *env, ani_object object, ani_property property, ani_ref value); 4730 4731 /** 4732 * @brief Retrieves a boolean value from a property of an object by its name. 4733 * 4734 * This function retrieves the boolean value of the specified property from the given object by its name. 4735 * 4736 * @param[in] env A pointer to the environment structure. 4737 * @param[in] object The object containing the property. 4738 * @param[in] name The name of the property to retrieve the boolean value from. 4739 * @param[out] result A pointer to store the retrieved boolean value. 4740 * @return Returns a status code of type `ani_status` indicating success or failure. 4741 */ 4742 ani_status (*Object_GetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name, 4743 ani_boolean *result); 4744 4745 /** 4746 * @brief Retrieves a char value from a property of an object by its name. 4747 * 4748 * This function retrieves the char value of the specified property from the given object by its name. 4749 * 4750 * @param[in] env A pointer to the environment structure. 4751 * @param[in] object The object containing the property. 4752 * @param[in] name The name of the property to retrieve the char value from. 4753 * @param[out] result A pointer to store the retrieved char value. 4754 * @return Returns a status code of type `ani_status` indicating success or failure. 4755 */ 4756 ani_status (*Object_GetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result); 4757 4758 /** 4759 * @brief Retrieves a byte value from a property of an object by its name. 4760 * 4761 * This function retrieves the byte value of the specified property from the given object by its name. 4762 * 4763 * @param[in] env A pointer to the environment structure. 4764 * @param[in] object The object containing the property. 4765 * @param[in] name The name of the property to retrieve the byte value from. 4766 * @param[out] result A pointer to store the retrieved byte value. 4767 * @return Returns a status code of type `ani_status` indicating success or failure. 4768 */ 4769 ani_status (*Object_GetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result); 4770 4771 /** 4772 * @brief Retrieves a short value from a property of an object by its name. 4773 * 4774 * This function retrieves the short value of the specified property from the given object by its name. 4775 * 4776 * @param[in] env A pointer to the environment structure. 4777 * @param[in] object The object containing the property. 4778 * @param[in] name The name of the property to retrieve the short value from. 4779 * @param[out] result A pointer to store the retrieved short value. 4780 * @return Returns a status code of type `ani_status` indicating success or failure. 4781 */ 4782 ani_status (*Object_GetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result); 4783 4784 /** 4785 * @brief Retrieves a integer value from a property of an object by its name. 4786 * 4787 * This function retrieves the integer value of the specified property from the given object by its name. 4788 * 4789 * @param[in] env A pointer to the environment structure. 4790 * @param[in] object The object containing the property. 4791 * @param[in] name The name of the property to retrieve the integer value from. 4792 * @param[out] result A pointer to store the retrieved integer value. 4793 * @return Returns a status code of type `ani_status` indicating success or failure. 4794 */ 4795 ani_status (*Object_GetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result); 4796 4797 /** 4798 * @brief Retrieves a long value from a property of an object by its name. 4799 * 4800 * This function retrieves the long value of the specified property from the given object by its name. 4801 * 4802 * @param[in] env A pointer to the environment structure. 4803 * @param[in] object The object containing the property. 4804 * @param[in] name The name of the property to retrieve the long value from. 4805 * @param[out] result A pointer to store the retrieved long value. 4806 * @return Returns a status code of type `ani_status` indicating success or failure. 4807 */ 4808 ani_status (*Object_GetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result); 4809 4810 /** 4811 * @brief Retrieves a float value from a property of an object by its name. 4812 * 4813 * This function retrieves the float value of the specified property from the given object by its name. 4814 * 4815 * @param[in] env A pointer to the environment structure. 4816 * @param[in] object The object containing the property. 4817 * @param[in] name The name of the property to retrieve the float value from. 4818 * @param[out] result A pointer to store the retrieved float value. 4819 * @return Returns a status code of type `ani_status` indicating success or failure. 4820 */ 4821 ani_status (*Object_GetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result); 4822 4823 /** 4824 * @brief Retrieves a double value from a property of an object by its name. 4825 * 4826 * This function retrieves the double value of the specified property from the given object by its name. 4827 * 4828 * @param[in] env A pointer to the environment structure. 4829 * @param[in] object The object containing the property. 4830 * @param[in] name The name of the property to retrieve the double value from. 4831 * @param[out] result A pointer to store the retrieved double value. 4832 * @return Returns a status code of type `ani_status` indicating success or failure. 4833 */ 4834 ani_status (*Object_GetPropertyByName_Double)(ani_env *env, ani_object object, const char *name, 4835 ani_double *result); 4836 4837 /** 4838 * @brief Retrieves a reference value from a property of an object by its name. 4839 * 4840 * This function retrieves the reference value of the specified property from the given object by its name. 4841 * 4842 * @param[in] env A pointer to the environment structure. 4843 * @param[in] object The object containing the property. 4844 * @param[in] name The name of the property to retrieve the reference value from. 4845 * @param[out] result A pointer to store the retrieved reference value. 4846 * @return Returns a status code of type `ani_status` indicating success or failure. 4847 */ 4848 ani_status (*Object_GetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result); 4849 4850 /** 4851 * @brief Sets a boolean value to a property of an object by its name. 4852 * 4853 * This function assigns a boolean value to the specified property of the given object by its name. 4854 * 4855 * @param[in] env A pointer to the environment structure. 4856 * @param[in] object The object containing the property. 4857 * @param[in] name The name of the property to set the boolean value to. 4858 * @param[in] value The boolean value to assign to the property. 4859 * @return Returns a status code of type `ani_status` indicating success or failure. 4860 */ 4861 ani_status (*Object_SetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name, 4862 ani_boolean value); 4863 4864 /** 4865 * @brief Sets a char value to a property of an object by its name. 4866 * 4867 * This function assigns a char value to the specified property of the given object by its name. 4868 * 4869 * @param[in] env A pointer to the environment structure. 4870 * @param[in] object The object containing the property. 4871 * @param[in] name The name of the property to set the char value to. 4872 * @param[in] value The char value to assign to the property. 4873 * @return Returns a status code of type `ani_status` indicating success or failure. 4874 */ 4875 ani_status (*Object_SetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value); 4876 4877 /** 4878 * @brief Sets a byte value to a property of an object by its name. 4879 * 4880 * This function assigns a byte value to the specified property of the given object by its name. 4881 * 4882 * @param[in] env A pointer to the environment structure. 4883 * @param[in] object The object containing the property. 4884 * @param[in] name The name of the property to set the byte value to. 4885 * @param[in] value The byte value to assign to the property. 4886 * @return Returns a status code of type `ani_status` indicating success or failure. 4887 */ 4888 ani_status (*Object_SetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value); 4889 4890 /** 4891 * @brief Sets a short value to a property of an object by its name. 4892 * 4893 * This function assigns a short value to the specified property of the given object by its name. 4894 * 4895 * @param[in] env A pointer to the environment structure. 4896 * @param[in] object The object containing the property. 4897 * @param[in] name The name of the property to set the short value to. 4898 * @param[in] value The short value to assign to the property. 4899 * @return Returns a status code of type `ani_status` indicating success or failure. 4900 */ 4901 ani_status (*Object_SetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value); 4902 4903 /** 4904 * @brief Sets a integer value to a property of an object by its name. 4905 * 4906 * This function assigns a integer value to the specified property of the given object by its name. 4907 * 4908 * @param[in] env A pointer to the environment structure. 4909 * @param[in] object The object containing the property. 4910 * @param[in] name The name of the property to set the integer value to. 4911 * @param[in] value The integer value to assign to the property. 4912 * @return Returns a status code of type `ani_status` indicating success or failure. 4913 */ 4914 ani_status (*Object_SetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value); 4915 4916 /** 4917 * @brief Sets a long value to a property of an object by its name. 4918 * 4919 * This function assigns a long value to the specified property of the given object by its name. 4920 * 4921 * @param[in] env A pointer to the environment structure. 4922 * @param[in] object The object containing the property. 4923 * @param[in] name The name of the property to set the long value to. 4924 * @param[in] value The long value to assign to the property. 4925 * @return Returns a status code of type `ani_status` indicating success or failure. 4926 */ 4927 ani_status (*Object_SetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value); 4928 4929 /** 4930 * @brief Sets a float value to a property of an object by its name. 4931 * 4932 * This function assigns a float value to the specified property of the given object by its name. 4933 * 4934 * @param[in] env A pointer to the environment structure. 4935 * @param[in] object The object containing the property. 4936 * @param[in] name The name of the property to set the float value to. 4937 * @param[in] value The float value to assign to the property. 4938 * @return Returns a status code of type `ani_status` indicating success or failure. 4939 */ 4940 ani_status (*Object_SetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value); 4941 4942 /** 4943 * @brief Sets a double value to a property of an object by its name. 4944 * 4945 * This function assigns a double value to the specified property of the given object by its name. 4946 * 4947 * @param[in] env A pointer to the environment structure. 4948 * @param[in] object The object containing the property. 4949 * @param[in] name The name of the property to set the double value to. 4950 * @param[in] value The double value to assign to the property. 4951 * @return Returns a status code of type `ani_status` indicating success or failure. 4952 */ 4953 ani_status (*Object_SetPropertyByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value); 4954 4955 /** 4956 * @brief Sets a reference value to a property of an object by its name. 4957 * 4958 * This function assigns a reference value to the specified property of the given object by its name. 4959 * 4960 * @param[in] env A pointer to the environment structure. 4961 * @param[in] object The object containing the property. 4962 * @param[in] name The name of the property to set the reference value to. 4963 * @param[in] value The reference value to assign to the property. 4964 * @return Returns a status code of type `ani_status` indicating success or failure. 4965 */ 4966 ani_status (*Object_SetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value); 4967 4968 /** 4969 * @brief Calls a method on an object and retrieves a boolean return value. 4970 * 4971 * This function calls the specified method of an object using variadic arguments and retrieves a boolean result. 4972 * 4973 * @param[in] env A pointer to the environment structure. 4974 * @param[in] object The object on which the method is to be called. 4975 * @param[in] method The method to call. 4976 * @param[out] result A pointer to store the boolean return value. 4977 * @param[in] ... Variadic arguments to pass to the method. 4978 * @return Returns a status code of type `ani_status` indicating success or failure. 4979 */ 4980 ani_status (*Object_CallMethod_Boolean)(ani_env *env, ani_object object, ani_method method, ani_boolean *result, 4981 ...); 4982 4983 /** 4984 * @brief Calls a method on an object and retrieves a boolean return value (array-based). 4985 * 4986 * This function calls the specified method of an object using arguments provided in an array and retrieves a 4987 * boolean result. 4988 * 4989 * @param[in] env A pointer to the environment structure. 4990 * @param[in] object The object on which the method is to be called. 4991 * @param[in] method The method to call. 4992 * @param[out] result A pointer to store the boolean return value. 4993 * @param[in] args An array of arguments to pass to the method. 4994 * @return Returns a status code of type `ani_status` indicating success or failure. 4995 */ 4996 ani_status (*Object_CallMethod_Boolean_A)(ani_env *env, ani_object object, ani_method method, ani_boolean *result, 4997 const ani_value *args); 4998 4999 /** 5000 * @brief Calls a method on an object and retrieves a boolean return value (variadic arguments). 5001 * 5002 * This function calls the specified method of an object using a `va_list` and retrieves a boolean result. 5003 * 5004 * @param[in] env A pointer to the environment structure. 5005 * @param[in] object The object on which the method is to be called. 5006 * @param[in] method The method to call. 5007 * @param[out] result A pointer to store the boolean return value. 5008 * @param[in] args A `va_list` of arguments to pass to the method. 5009 * @return Returns a status code of type `ani_status` indicating success or failure. 5010 */ 5011 ani_status (*Object_CallMethod_Boolean_V)(ani_env *env, ani_object object, ani_method method, ani_boolean *result, 5012 va_list args); 5013 5014 /** 5015 * @brief Calls a method on an object and retrieves a char return value. 5016 * 5017 * This function calls the specified method of an object using variadic arguments and retrieves a char result. 5018 * 5019 * @param[in] env A pointer to the environment structure. 5020 * @param[in] object The object on which the method is to be called. 5021 * @param[in] method The method to call. 5022 * @param[out] result A pointer to store the char return value. 5023 * @param[in] ... Variadic arguments to pass to the method. 5024 * @return Returns a status code of type `ani_status` indicating success or failure. 5025 */ 5026 ani_status (*Object_CallMethod_Char)(ani_env *env, ani_object object, ani_method method, ani_char *result, ...); 5027 5028 /** 5029 * @brief Calls a method on an object and retrieves a char return value (array-based). 5030 * 5031 * This function calls the specified method of an object using arguments provided in an array and retrieves a char 5032 * result. 5033 * 5034 * @param[in] env A pointer to the environment structure. 5035 * @param[in] object The object on which the method is to be called. 5036 * @param[in] method The method to call. 5037 * @param[out] result A pointer to store the char return value. 5038 * @param[in] args An array of arguments to pass to the method. 5039 * @return Returns a status code of type `ani_status` indicating success or failure. 5040 */ 5041 ani_status (*Object_CallMethod_Char_A)(ani_env *env, ani_object object, ani_method method, ani_char *result, 5042 const ani_value *args); 5043 5044 /** 5045 * @brief Calls a method on an object and retrieves a char return value (variadic arguments). 5046 * 5047 * This function calls the specified method of an object using a `va_list` and retrieves a char result. 5048 * 5049 * @param[in] env A pointer to the environment structure. 5050 * @param[in] object The object on which the method is to be called. 5051 * @param[in] method The method to call. 5052 * @param[out] result A pointer to store the char return value. 5053 * @param[in] args A `va_list` of arguments to pass to the method. 5054 * @return Returns a status code of type `ani_status` indicating success or failure. 5055 */ 5056 ani_status (*Object_CallMethod_Char_V)(ani_env *env, ani_object object, ani_method method, ani_char *result, 5057 va_list args); 5058 5059 /** 5060 * @brief Calls a method on an object and retrieves a byte return value. 5061 * 5062 * This function calls the specified method of an object using variadic arguments and retrieves a byte result. 5063 * 5064 * @param[in] env A pointer to the environment structure. 5065 * @param[in] object The object on which the method is to be called. 5066 * @param[in] method The method to call. 5067 * @param[out] result A pointer to store the byte return value. 5068 * @param[in] ... Variadic arguments to pass to the method. 5069 * @return Returns a status code of type `ani_status` indicating success or failure. 5070 */ 5071 ani_status (*Object_CallMethod_Byte)(ani_env *env, ani_object object, ani_method method, ani_byte *result, ...); 5072 5073 /** 5074 * @brief Calls a method on an object and retrieves a byte return value (array-based). 5075 * 5076 * This function calls the specified method of an object using arguments provided in an array and retrieves a byte 5077 * result. 5078 * 5079 * @param[in] env A pointer to the environment structure. 5080 * @param[in] object The object on which the method is to be called. 5081 * @param[in] method The method to call. 5082 * @param[out] result A pointer to store the byte return value. 5083 * @param[in] args An array of arguments to pass to the method. 5084 * @return Returns a status code of type `ani_status` indicating success or failure. 5085 */ 5086 ani_status (*Object_CallMethod_Byte_A)(ani_env *env, ani_object object, ani_method method, ani_byte *result, 5087 const ani_value *args); 5088 5089 /** 5090 * @brief Calls a method on an object and retrieves a byte return value (variadic arguments). 5091 * 5092 * This function calls the specified method of an object using a `va_list` and retrieves a byte result. 5093 * 5094 * @param[in] env A pointer to the environment structure. 5095 * @param[in] object The object on which the method is to be called. 5096 * @param[in] method The method to call. 5097 * @param[out] result A pointer to store the byte return value. 5098 * @param[in] args A `va_list` of arguments to pass to the method. 5099 * @return Returns a status code of type `ani_status` indicating success or failure. 5100 */ 5101 ani_status (*Object_CallMethod_Byte_V)(ani_env *env, ani_object object, ani_method method, ani_byte *result, 5102 va_list args); 5103 5104 /** 5105 * @brief Calls a method on an object and retrieves a short return value. 5106 * 5107 * This function calls the specified method of an object using variadic arguments and retrieves a short result. 5108 * 5109 * @param[in] env A pointer to the environment structure. 5110 * @param[in] object The object on which the method is to be called. 5111 * @param[in] method The method to call. 5112 * @param[out] result A pointer to store the short return value. 5113 * @param[in] ... Variadic arguments to pass to the method. 5114 * @return Returns a status code of type `ani_status` indicating success or failure. 5115 */ 5116 ani_status (*Object_CallMethod_Short)(ani_env *env, ani_object object, ani_method method, ani_short *result, ...); 5117 5118 /** 5119 * @brief Calls a method on an object and retrieves a short return value (array-based). 5120 * 5121 * This function calls the specified method of an object using arguments provided in an array and retrieves a short 5122 * result. 5123 * 5124 * @param[in] env A pointer to the environment structure. 5125 * @param[in] object The object on which the method is to be called. 5126 * @param[in] method The method to call. 5127 * @param[out] result A pointer to store the short return value. 5128 * @param[in] args An array of arguments to pass to the method. 5129 * @return Returns a status code of type `ani_status` indicating success or failure. 5130 */ 5131 ani_status (*Object_CallMethod_Short_A)(ani_env *env, ani_object object, ani_method method, ani_short *result, 5132 const ani_value *args); 5133 5134 /** 5135 * @brief Calls a method on an object and retrieves a short return value (variadic arguments). 5136 * 5137 * This function calls the specified method of an object using a `va_list` and retrieves a short result. 5138 * 5139 * @param[in] env A pointer to the environment structure. 5140 * @param[in] object The object on which the method is to be called. 5141 * @param[in] method The method to call. 5142 * @param[out] result A pointer to store the short return value. 5143 * @param[in] args A `va_list` of arguments to pass to the method. 5144 * @return Returns a status code of type `ani_status` indicating success or failure. 5145 */ 5146 ani_status (*Object_CallMethod_Short_V)(ani_env *env, ani_object object, ani_method method, ani_short *result, 5147 va_list args); 5148 5149 /** 5150 * @brief Calls a method on an object and retrieves a integer return value. 5151 * 5152 * This function calls the specified method of an object using variadic arguments and retrieves a integer result. 5153 * 5154 * @param[in] env A pointer to the environment structure. 5155 * @param[in] object The object on which the method is to be called. 5156 * @param[in] method The method to call. 5157 * @param[out] result A pointer to store the integer return value. 5158 * @param[in] ... Variadic arguments to pass to the method. 5159 * @return Returns a status code of type `ani_status` indicating success or failure. 5160 */ 5161 ani_status (*Object_CallMethod_Int)(ani_env *env, ani_object object, ani_method method, ani_int *result, ...); 5162 5163 /** 5164 * @brief Calls a method on an object and retrieves a integer return value (array-based). 5165 * 5166 * This function calls the specified method of an object using arguments provided in an array and retrieves a 5167 * integer result. 5168 * 5169 * @param[in] env A pointer to the environment structure. 5170 * @param[in] object The object on which the method is to be called. 5171 * @param[in] method The method to call. 5172 * @param[out] result A pointer to store the integer return value. 5173 * @param[in] args An array of arguments to pass to the method. 5174 * @return Returns a status code of type `ani_status` indicating success or failure. 5175 */ 5176 ani_status (*Object_CallMethod_Int_A)(ani_env *env, ani_object object, ani_method method, ani_int *result, 5177 const ani_value *args); 5178 5179 /** 5180 * @brief Calls a method on an object and retrieves a integer return value (variadic arguments). 5181 * 5182 * This function calls the specified method of an object using a `va_list` and retrieves a integer result. 5183 * 5184 * @param[in] env A pointer to the environment structure. 5185 * @param[in] object The object on which the method is to be called. 5186 * @param[in] method The method to call. 5187 * @param[out] result A pointer to store the integer return value. 5188 * @param[in] args A `va_list` of arguments to pass to the method. 5189 * @return Returns a status code of type `ani_status` indicating success or failure. 5190 */ 5191 ani_status (*Object_CallMethod_Int_V)(ani_env *env, ani_object object, ani_method method, ani_int *result, 5192 va_list args); 5193 5194 /** 5195 * @brief Calls a method on an object and retrieves a long return value. 5196 * 5197 * This function calls the specified method of an object using variadic arguments and retrieves a long result. 5198 * 5199 * @param[in] env A pointer to the environment structure. 5200 * @param[in] object The object on which the method is to be called. 5201 * @param[in] method The method to call. 5202 * @param[out] result A pointer to store the long return value. 5203 * @param[in] ... Variadic arguments to pass to the method. 5204 * @return Returns a status code of type `ani_status` indicating success or failure. 5205 */ 5206 ani_status (*Object_CallMethod_Long)(ani_env *env, ani_object object, ani_method method, ani_long *result, ...); 5207 5208 /** 5209 * @brief Calls a method on an object and retrieves a long return value (array-based). 5210 * 5211 * This function calls the specified method of an object using arguments provided in an array and retrieves a long 5212 * result. 5213 * 5214 * @param[in] env A pointer to the environment structure. 5215 * @param[in] object The object on which the method is to be called. 5216 * @param[in] method The method to call. 5217 * @param[out] result A pointer to store the long return value. 5218 * @param[in] args An array of arguments to pass to the method. 5219 * @return Returns a status code of type `ani_status` indicating success or failure. 5220 */ 5221 ani_status (*Object_CallMethod_Long_A)(ani_env *env, ani_object object, ani_method method, ani_long *result, 5222 const ani_value *args); 5223 5224 /** 5225 * @brief Calls a method on an object and retrieves a long return value (variadic arguments). 5226 * 5227 * This function calls the specified method of an object using a `va_list` and retrieves a long result. 5228 * 5229 * @param[in] env A pointer to the environment structure. 5230 * @param[in] object The object on which the method is to be called. 5231 * @param[in] method The method to call. 5232 * @param[out] result A pointer to store the long return value. 5233 * @param[in] args A `va_list` of arguments to pass to the method. 5234 * @return Returns a status code of type `ani_status` indicating success or failure. 5235 */ 5236 ani_status (*Object_CallMethod_Long_V)(ani_env *env, ani_object object, ani_method method, ani_long *result, 5237 va_list args); 5238 5239 /** 5240 * @brief Calls a method on an object and retrieves a float return value. 5241 * 5242 * This function calls the specified method of an object using variadic arguments and retrieves a float result. 5243 * 5244 * @param[in] env A pointer to the environment structure. 5245 * @param[in] object The object on which the method is to be called. 5246 * @param[in] method The method to call. 5247 * @param[out] result A pointer to store the float return value. 5248 * @param[in] ... Variadic arguments to pass to the method. 5249 * @return Returns a status code of type `ani_status` indicating success or failure. 5250 */ 5251 ani_status (*Object_CallMethod_Float)(ani_env *env, ani_object object, ani_method method, ani_float *result, ...); 5252 5253 /** 5254 * @brief Calls a method on an object and retrieves a float return value (array-based). 5255 * 5256 * This function calls the specified method of an object using arguments provided in an array and retrieves a float 5257 * result. 5258 * 5259 * @param[in] env A pointer to the environment structure. 5260 * @param[in] object The object on which the method is to be called. 5261 * @param[in] method The method to call. 5262 * @param[out] result A pointer to store the float return value. 5263 * @param[in] args An array of arguments to pass to the method. 5264 * @return Returns a status code of type `ani_status` indicating success or failure. 5265 */ 5266 ani_status (*Object_CallMethod_Float_A)(ani_env *env, ani_object object, ani_method method, ani_float *result, 5267 const ani_value *args); 5268 5269 /** 5270 * @brief Calls a method on an object and retrieves a float return value (variadic arguments). 5271 * 5272 * This function calls the specified method of an object using a `va_list` and retrieves a float result. 5273 * 5274 * @param[in] env A pointer to the environment structure. 5275 * @param[in] object The object on which the method is to be called. 5276 * @param[in] method The method to call. 5277 * @param[out] result A pointer to store the float return value. 5278 * @param[in] args A `va_list` of arguments to pass to the method. 5279 * @return Returns a status code of type `ani_status` indicating success or failure. 5280 */ 5281 ani_status (*Object_CallMethod_Float_V)(ani_env *env, ani_object object, ani_method method, ani_float *result, 5282 va_list args); 5283 5284 /** 5285 * @brief Calls a method on an object and retrieves a double return value. 5286 * 5287 * This function calls the specified method of an object using variadic arguments and retrieves a double result. 5288 * 5289 * @param[in] env A pointer to the environment structure. 5290 * @param[in] object The object on which the method is to be called. 5291 * @param[in] method The method to call. 5292 * @param[out] result A pointer to store the double return value. 5293 * @param[in] ... Variadic arguments to pass to the method. 5294 * @return Returns a status code of type `ani_status` indicating success or failure. 5295 */ 5296 ani_status (*Object_CallMethod_Double)(ani_env *env, ani_object object, ani_method method, ani_double *result, ...); 5297 5298 /** 5299 * @brief Calls a method on an object and retrieves a double return value (array-based). 5300 * 5301 * This function calls the specified method of an object using arguments provided in an array and retrieves a double 5302 * result. 5303 * 5304 * @param[in] env A pointer to the environment structure. 5305 * @param[in] object The object on which the method is to be called. 5306 * @param[in] method The method to call. 5307 * @param[out] result A pointer to store the double return value. 5308 * @param[in] args An array of arguments to pass to the method. 5309 * @return Returns a status code of type `ani_status` indicating success or failure. 5310 */ 5311 ani_status (*Object_CallMethod_Double_A)(ani_env *env, ani_object object, ani_method method, ani_double *result, 5312 const ani_value *args); 5313 5314 /** 5315 * @brief Calls a method on an object and retrieves a double return value (variadic arguments). 5316 * 5317 * This function calls the specified method of an object using a `va_list` and retrieves a double result. 5318 * 5319 * @param[in] env A pointer to the environment structure. 5320 * @param[in] object The object on which the method is to be called. 5321 * @param[in] method The method to call. 5322 * @param[out] result A pointer to store the double return value. 5323 * @param[in] args A `va_list` of arguments to pass to the method. 5324 * @return Returns a status code of type `ani_status` indicating success or failure. 5325 */ 5326 ani_status (*Object_CallMethod_Double_V)(ani_env *env, ani_object object, ani_method method, ani_double *result, 5327 va_list args); 5328 5329 /** 5330 * @brief Calls a method on an object and retrieves a reference return value. 5331 * 5332 * This function calls the specified method of an object using variadic arguments and retrieves a reference result. 5333 * 5334 * @param[in] env A pointer to the environment structure. 5335 * @param[in] object The object on which the method is to be called. 5336 * @param[in] method The method to call. 5337 * @param[out] result A pointer to store the reference return value. 5338 * @param[in] ... Variadic arguments to pass to the method. 5339 * @return Returns a status code of type `ani_status` indicating success or failure. 5340 */ 5341 ani_status (*Object_CallMethod_Ref)(ani_env *env, ani_object object, ani_method method, ani_ref *result, ...); 5342 5343 /** 5344 * @brief Calls a method on an object and retrieves a reference return value (array-based). 5345 * 5346 * This function calls the specified method of an object using arguments provided in an array and retrieves a 5347 * reference result. 5348 * 5349 * @param[in] env A pointer to the environment structure. 5350 * @param[in] object The object on which the method is to be called. 5351 * @param[in] method The method to call. 5352 * @param[out] result A pointer to store the reference return value. 5353 * @param[in] args An array of arguments to pass to the method. 5354 * @return Returns a status code of type `ani_status` indicating success or failure. 5355 */ 5356 ani_status (*Object_CallMethod_Ref_A)(ani_env *env, ani_object object, ani_method method, ani_ref *result, 5357 const ani_value *args); 5358 5359 /** 5360 * @brief Calls a method on an object and retrieves a reference return value (variadic arguments). 5361 * 5362 * This function calls the specified method of an object using a `va_list` and retrieves a reference result. 5363 * 5364 * @param[in] env A pointer to the environment structure. 5365 * @param[in] object The object on which the method is to be called. 5366 * @param[in] method The method to call. 5367 * @param[out] result A pointer to store the reference return value. 5368 * @param[in] args A `va_list` of arguments to pass to the method. 5369 * @return Returns a status code of type `ani_status` indicating success or failure. 5370 */ 5371 ani_status (*Object_CallMethod_Ref_V)(ani_env *env, ani_object object, ani_method method, ani_ref *result, 5372 va_list args); 5373 5374 /** 5375 * @brief Calls a method on an object with no return value. 5376 * 5377 * This function calls the specified method of an object using variadic arguments. The method does not return a 5378 * value. 5379 * 5380 * @param[in] env A pointer to the environment structure. 5381 * @param[in] object The object on which the method is to be called. 5382 * @param[in] method The method to call. 5383 * @param[in] ... Variadic arguments to pass to the method. 5384 * @return Returns a status code of type `ani_status` indicating success or failure. 5385 */ 5386 ani_status (*Object_CallMethod_Void)(ani_env *env, ani_object object, ani_method method, ...); 5387 5388 /** 5389 * @brief Calls a method on an object with no return value (array-based). 5390 * 5391 * This function calls the specified method of an object using arguments provided in an array. The method does not 5392 * return a value. 5393 * 5394 * @param[in] env A pointer to the environment structure. 5395 * @param[in] object The object on which the method is to be called. 5396 * @param[in] method The method to call. 5397 * @param[in] args An array of arguments to pass to the method. 5398 * @return Returns a status code of type `ani_status` indicating success or failure. 5399 */ 5400 ani_status (*Object_CallMethod_Void_A)(ani_env *env, ani_object object, ani_method method, const ani_value *args); 5401 5402 /** 5403 * @brief Calls a method on an object with no return value (variadic arguments). 5404 * 5405 * This function calls the specified method of an object using a `va_list`. The method does not return a value. 5406 * 5407 * @param[in] env A pointer to the environment structure. 5408 * @param[in] object The object on which the method is to be called. 5409 * @param[in] method The method to call. 5410 * @param[in] args A `va_list` of arguments to pass to the method. 5411 * @return Returns a status code of type `ani_status` indicating success or failure. 5412 */ 5413 ani_status (*Object_CallMethod_Void_V)(ani_env *env, ani_object object, ani_method method, va_list args); 5414 5415 /** 5416 * @brief Calls a method by name on an object and retrieves a boolean return value. 5417 * 5418 * This function calls the specified method by its name and signature on an object using variadic arguments and 5419 * retrieves a boolean result. 5420 * 5421 * @param[in] env A pointer to the environment structure. 5422 * @param[in] object The object on which the method is to be called. 5423 * @param[in] name The name of the method to call. 5424 * @param[in] signature The signature of the method to call. 5425 * @param[out] result A pointer to store the boolean return value. 5426 * @param[in] ... Variadic arguments to pass to the method. 5427 * @return Returns a status code of type `ani_status` indicating success or failure. 5428 */ 5429 ani_status (*Object_CallMethodByName_Boolean)(ani_env *env, ani_object object, const char *name, 5430 const char *signature, ani_boolean *result, ...); 5431 5432 /** 5433 * @brief Calls a method by name on an object and retrieves a boolean return value (array-based). 5434 * 5435 * This function calls the specified method by its name and signature on an object using arguments provided in an 5436 * array and retrieves a boolean result. 5437 * 5438 * @param[in] env A pointer to the environment structure. 5439 * @param[in] object The object on which the method is to be called. 5440 * @param[in] name The name of the method to call. 5441 * @param[in] signature The signature of the method to call. 5442 * @param[out] result A pointer to store the boolean return value. 5443 * @param[in] args An array of arguments to pass to the method. 5444 * @return Returns a status code of type `ani_status` indicating success or failure. 5445 */ 5446 ani_status (*Object_CallMethodByName_Boolean_A)(ani_env *env, ani_object object, const char *name, 5447 const char *signature, ani_boolean *result, const ani_value *args); 5448 5449 /** 5450 * @brief Calls a method by name on an object and retrieves a boolean return value (variadic arguments). 5451 * 5452 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5453 * boolean result. 5454 * 5455 * @param[in] env A pointer to the environment structure. 5456 * @param[in] object The object on which the method is to be called. 5457 * @param[in] name The name of the method to call. 5458 * @param[in] signature The signature of the method to call. 5459 * @param[out] result A pointer to store the boolean return value. 5460 * @param[in] args A `va_list` of arguments to pass to the method. 5461 * @return Returns a status code of type `ani_status` indicating success or failure. 5462 */ 5463 ani_status (*Object_CallMethodByName_Boolean_V)(ani_env *env, ani_object object, const char *name, 5464 const char *signature, ani_boolean *result, va_list args); 5465 5466 /** 5467 * @brief Calls a method by name on an object and retrieves a char return value. 5468 * 5469 * This function calls the specified method by its name and signature on an object using variadic arguments and 5470 * retrieves a char result. 5471 * 5472 * @param[in] env A pointer to the environment structure. 5473 * @param[in] object The object on which the method is to be called. 5474 * @param[in] name The name of the method to call. 5475 * @param[in] signature The signature of the method to call. 5476 * @param[out] result A pointer to store the char return value. 5477 * @param[in] ... Variadic arguments to pass to the method. 5478 * @return Returns a status code of type `ani_status` indicating success or failure. 5479 */ 5480 ani_status (*Object_CallMethodByName_Char)(ani_env *env, ani_object object, const char *name, const char *signature, 5481 ani_char *result, ...); 5482 5483 /** 5484 * @brief Calls a method by name on an object and retrieves a char return value (array-based). 5485 * 5486 * This function calls the specified method by its name and signature on an object using arguments provided in an 5487 * array and retrieves a char result. 5488 * 5489 * @param[in] env A pointer to the environment structure. 5490 * @param[in] object The object on which the method is to be called. 5491 * @param[in] name The name of the method to call. 5492 * @param[in] signature The signature of the method to call. 5493 * @param[out] result A pointer to store the char return value. 5494 * @param[in] args An array of arguments to pass to the method. 5495 * @return Returns a status code of type `ani_status` indicating success or failure. 5496 */ 5497 ani_status (*Object_CallMethodByName_Char_A)(ani_env *env, ani_object object, const char *name, 5498 const char *signature, ani_char *result, const ani_value *args); 5499 5500 /** 5501 * @brief Calls a method by name on an object and retrieves a char return value (variadic arguments). 5502 * 5503 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5504 * char result. 5505 * 5506 * @param[in] env A pointer to the environment structure. 5507 * @param[in] object The object on which the method is to be called. 5508 * @param[in] name The name of the method to call. 5509 * @param[in] signature The signature of the method to call. 5510 * @param[out] result A pointer to store the char return value. 5511 * @param[in] args A `va_list` of arguments to pass to the method. 5512 * @return Returns a status code of type `ani_status` indicating success or failure. 5513 */ 5514 ani_status (*Object_CallMethodByName_Char_V)(ani_env *env, ani_object object, const char *name, 5515 const char *signature, ani_char *result, va_list args); 5516 5517 /** 5518 * @brief Calls a method by name on an object and retrieves a byte return value. 5519 * 5520 * This function calls the specified method by its name and signature on an object using variadic arguments and 5521 * retrieves a byte result. 5522 * 5523 * @param[in] env A pointer to the environment structure. 5524 * @param[in] object The object on which the method is to be called. 5525 * @param[in] name The name of the method to call. 5526 * @param[in] signature The signature of the method to call. 5527 * @param[out] result A pointer to store the byte return value. 5528 * @param[in] ... Variadic arguments to pass to the method. 5529 * @return Returns a status code of type `ani_status` indicating success or failure. 5530 */ 5531 ani_status (*Object_CallMethodByName_Byte)(ani_env *env, ani_object object, const char *name, const char *signature, 5532 ani_byte *result, ...); 5533 5534 /** 5535 * @brief Calls a method by name on an object and retrieves a byte return value (array-based). 5536 * 5537 * This function calls the specified method by its name and signature on an object using arguments provided in an 5538 * array and retrieves a byte result. 5539 * 5540 * @param[in] env A pointer to the environment structure. 5541 * @param[in] object The object on which the method is to be called. 5542 * @param[in] name The name of the method to call. 5543 * @param[in] signature The signature of the method to call. 5544 * @param[out] result A pointer to store the byte return value. 5545 * @param[in] args An array of arguments to pass to the method. 5546 * @return Returns a status code of type `ani_status` indicating success or failure. 5547 */ 5548 ani_status (*Object_CallMethodByName_Byte_A)(ani_env *env, ani_object object, const char *name, 5549 const char *signature, ani_byte *result, const ani_value *args); 5550 5551 /** 5552 * @brief Calls a method by name on an object and retrieves a byte return value (variadic arguments). 5553 * 5554 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5555 * byte result. 5556 * 5557 * @param[in] env A pointer to the environment structure. 5558 * @param[in] object The object on which the method is to be called. 5559 * @param[in] name The name of the method to call. 5560 * @param[in] signature The signature of the method to call. 5561 * @param[out] result A pointer to store the byte return value. 5562 * @param[in] args A `va_list` of arguments to pass to the method. 5563 * @return Returns a status code of type `ani_status` indicating success or failure. 5564 */ 5565 ani_status (*Object_CallMethodByName_Byte_V)(ani_env *env, ani_object object, const char *name, 5566 const char *signature, ani_byte *result, va_list args); 5567 5568 /** 5569 * @brief Calls a method by name on an object and retrieves a short return value. 5570 * 5571 * This function calls the specified method by its name and signature on an object using variadic arguments and 5572 * retrieves a short result. 5573 * 5574 * @param[in] env A pointer to the environment structure. 5575 * @param[in] object The object on which the method is to be called. 5576 * @param[in] name The name of the method to call. 5577 * @param[in] signature The signature of the method to call. 5578 * @param[out] result A pointer to store the short return value. 5579 * @param[in] ... Variadic arguments to pass to the method. 5580 * @return Returns a status code of type `ani_status` indicating success or failure. 5581 */ 5582 ani_status (*Object_CallMethodByName_Short)(ani_env *env, ani_object object, const char *name, 5583 const char *signature, ani_short *result, ...); 5584 5585 /** 5586 * @brief Calls a method by name on an object and retrieves a short return value (array-based). 5587 * 5588 * This function calls the specified method by its name and signature on an object using arguments provided in an 5589 * array and retrieves a short result. 5590 * 5591 * @param[in] env A pointer to the environment structure. 5592 * @param[in] object The object on which the method is to be called. 5593 * @param[in] name The name of the method to call. 5594 * @param[in] signature The signature of the method to call. 5595 * @param[out] result A pointer to store the short return value. 5596 * @param[in] args An array of arguments to pass to the method. 5597 * @return Returns a status code of type `ani_status` indicating success or failure. 5598 */ 5599 ani_status (*Object_CallMethodByName_Short_A)(ani_env *env, ani_object object, const char *name, 5600 const char *signature, ani_short *result, const ani_value *args); 5601 5602 /** 5603 * @brief Calls a method by name on an object and retrieves a short return value (variadic arguments). 5604 * 5605 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5606 * short result. 5607 * 5608 * @param[in] env A pointer to the environment structure. 5609 * @param[in] object The object on which the method is to be called. 5610 * @param[in] name The name of the method to call. 5611 * @param[in] signature The signature of the method to call. 5612 * @param[out] result A pointer to store the short return value. 5613 * @param[in] args A `va_list` of arguments to pass to the method. 5614 * @return Returns a status code of type `ani_status` indicating success or failure. 5615 */ 5616 ani_status (*Object_CallMethodByName_Short_V)(ani_env *env, ani_object object, const char *name, 5617 const char *signature, ani_short *result, va_list args); 5618 5619 /** 5620 * @brief Calls a method by name on an object and retrieves a integer return value. 5621 * 5622 * This function calls the specified method by its name and signature on an object using variadic arguments and 5623 * retrieves a integer result. 5624 * 5625 * @param[in] env A pointer to the environment structure. 5626 * @param[in] object The object on which the method is to be called. 5627 * @param[in] name The name of the method to call. 5628 * @param[in] signature The signature of the method to call. 5629 * @param[out] result A pointer to store the integer return value. 5630 * @param[in] ... Variadic arguments to pass to the method. 5631 * @return Returns a status code of type `ani_status` indicating success or failure. 5632 */ 5633 ani_status (*Object_CallMethodByName_Int)(ani_env *env, ani_object object, const char *name, const char *signature, 5634 ani_int *result, ...); 5635 5636 /** 5637 * @brief Calls a method by name on an object and retrieves a integer return value (array-based). 5638 * 5639 * This function calls the specified method by its name and signature on an object using arguments provided in an 5640 * array and retrieves a integer result. 5641 * 5642 * @param[in] env A pointer to the environment structure. 5643 * @param[in] object The object on which the method is to be called. 5644 * @param[in] name The name of the method to call. 5645 * @param[in] signature The signature of the method to call. 5646 * @param[out] result A pointer to store the integer return value. 5647 * @param[in] args An array of arguments to pass to the method. 5648 * @return Returns a status code of type `ani_status` indicating success or failure. 5649 */ 5650 ani_status (*Object_CallMethodByName_Int_A)(ani_env *env, ani_object object, const char *name, 5651 const char *signature, ani_int *result, const ani_value *args); 5652 5653 /** 5654 * @brief Calls a method by name on an object and retrieves a integer return value (variadic arguments). 5655 * 5656 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5657 * integer result. 5658 * 5659 * @param[in] env A pointer to the environment structure. 5660 * @param[in] object The object on which the method is to be called. 5661 * @param[in] name The name of the method to call. 5662 * @param[in] signature The signature of the method to call. 5663 * @param[out] result A pointer to store the integer return value. 5664 * @param[in] args A `va_list` of arguments to pass to the method. 5665 * @return Returns a status code of type `ani_status` indicating success or failure. 5666 */ 5667 ani_status (*Object_CallMethodByName_Int_V)(ani_env *env, ani_object object, const char *name, 5668 const char *signature, ani_int *result, va_list args); 5669 5670 /** 5671 * @brief Calls a method by name on an object and retrieves a long return value. 5672 * 5673 * This function calls the specified method by its name and signature on an object using variadic arguments and 5674 * retrieves a long result. 5675 * 5676 * @param[in] env A pointer to the environment structure. 5677 * @param[in] object The object on which the method is to be called. 5678 * @param[in] name The name of the method to call. 5679 * @param[in] signature The signature of the method to call. 5680 * @param[out] result A pointer to store the long return value. 5681 * @param[in] ... Variadic arguments to pass to the method. 5682 * @return Returns a status code of type `ani_status` indicating success or failure. 5683 */ 5684 ani_status (*Object_CallMethodByName_Long)(ani_env *env, ani_object object, const char *name, const char *signature, 5685 ani_long *result, ...); 5686 5687 /** 5688 * @brief Calls a method by name on an object and retrieves a long return value (array-based). 5689 * 5690 * This function calls the specified method by its name and signature on an object using arguments provided in an 5691 * array and retrieves a long result. 5692 * 5693 * @param[in] env A pointer to the environment structure. 5694 * @param[in] object The object on which the method is to be called. 5695 * @param[in] name The name of the method to call. 5696 * @param[in] signature The signature of the method to call. 5697 * @param[out] result A pointer to store the long return value. 5698 * @param[in] args An array of arguments to pass to the method. 5699 * @return Returns a status code of type `ani_status` indicating success or failure. 5700 */ 5701 ani_status (*Object_CallMethodByName_Long_A)(ani_env *env, ani_object object, const char *name, 5702 const char *signature, ani_long *result, const ani_value *args); 5703 5704 /** 5705 * @brief Calls a method by name on an object and retrieves a long return value (variadic arguments). 5706 * 5707 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5708 * long result. 5709 * 5710 * @param[in] env A pointer to the environment structure. 5711 * @param[in] object The object on which the method is to be called. 5712 * @param[in] name The name of the method to call. 5713 * @param[in] signature The signature of the method to call. 5714 * @param[out] result A pointer to store the long return value. 5715 * @param[in] args A `va_list` of arguments to pass to the method. 5716 * @return Returns a status code of type `ani_status` indicating success or failure. 5717 */ 5718 ani_status (*Object_CallMethodByName_Long_V)(ani_env *env, ani_object object, const char *name, 5719 const char *signature, ani_long *result, va_list args); 5720 5721 /** 5722 * @brief Calls a method by name on an object and retrieves a float return value. 5723 * 5724 * This function calls the specified method by its name and signature on an object using variadic arguments and 5725 * retrieves a float result. 5726 * 5727 * @param[in] env A pointer to the environment structure. 5728 * @param[in] object The object on which the method is to be called. 5729 * @param[in] name The name of the method to call. 5730 * @param[in] signature The signature of the method to call. 5731 * @param[out] result A pointer to store the float return value. 5732 * @param[in] ... Variadic arguments to pass to the method. 5733 * @return Returns a status code of type `ani_status` indicating success or failure. 5734 */ 5735 ani_status (*Object_CallMethodByName_Float)(ani_env *env, ani_object object, const char *name, 5736 const char *signature, ani_float *result, ...); 5737 5738 /** 5739 * @brief Calls a method by name on an object and retrieves a float return value (array-based). 5740 * 5741 * This function calls the specified method by its name and signature on an object using arguments provided in an 5742 * array and retrieves a float result. 5743 * 5744 * @param[in] env A pointer to the environment structure. 5745 * @param[in] object The object on which the method is to be called. 5746 * @param[in] name The name of the method to call. 5747 * @param[in] signature The signature of the method to call. 5748 * @param[out] result A pointer to store the float return value. 5749 * @param[in] args An array of arguments to pass to the method. 5750 * @return Returns a status code of type `ani_status` indicating success or failure. 5751 */ 5752 ani_status (*Object_CallMethodByName_Float_A)(ani_env *env, ani_object object, const char *name, 5753 const char *signature, ani_float *result, const ani_value *args); 5754 5755 /** 5756 * @brief Calls a method by name on an object and retrieves a float return value (variadic arguments). 5757 * 5758 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5759 * float result. 5760 * 5761 * @param[in] env A pointer to the environment structure. 5762 * @param[in] object The object on which the method is to be called. 5763 * @param[in] name The name of the method to call. 5764 * @param[in] signature The signature of the method to call. 5765 * @param[out] result A pointer to store the float return value. 5766 * @param[in] args A `va_list` of arguments to pass to the method. 5767 * @return Returns a status code of type `ani_status` indicating success or failure. 5768 */ 5769 ani_status (*Object_CallMethodByName_Float_V)(ani_env *env, ani_object object, const char *name, 5770 const char *signature, ani_float *result, va_list args); 5771 5772 /** 5773 * @brief Calls a method by name on an object and retrieves a double return value. 5774 * 5775 * This function calls the specified method by its name and signature on an object using variadic arguments and 5776 * retrieves a double result. 5777 * 5778 * @param[in] env A pointer to the environment structure. 5779 * @param[in] object The object on which the method is to be called. 5780 * @param[in] name The name of the method to call. 5781 * @param[in] signature The signature of the method to call. 5782 * @param[out] result A pointer to store the double return value. 5783 * @param[in] ... Variadic arguments to pass to the method. 5784 * @return Returns a status code of type `ani_status` indicating success or failure. 5785 */ 5786 ani_status (*Object_CallMethodByName_Double)(ani_env *env, ani_object object, const char *name, 5787 const char *signature, ani_double *result, ...); 5788 5789 /** 5790 * @brief Calls a method by name on an object and retrieves a double return value (array-based). 5791 * 5792 * This function calls the specified method by its name and signature on an object using arguments provided in an 5793 * array and retrieves a double result. 5794 * 5795 * @param[in] env A pointer to the environment structure. 5796 * @param[in] object The object on which the method is to be called. 5797 * @param[in] name The name of the method to call. 5798 * @param[in] signature The signature of the method to call. 5799 * @param[out] result A pointer to store the double return value. 5800 * @param[in] args An array of arguments to pass to the method. 5801 * @return Returns a status code of type `ani_status` indicating success or failure. 5802 */ 5803 ani_status (*Object_CallMethodByName_Double_A)(ani_env *env, ani_object object, const char *name, 5804 const char *signature, ani_double *result, const ani_value *args); 5805 5806 /** 5807 * @brief Calls a method by name on an object and retrieves a double return value (variadic arguments). 5808 * 5809 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5810 * double result. 5811 * 5812 * @param[in] env A pointer to the environment structure. 5813 * @param[in] object The object on which the method is to be called. 5814 * @param[in] name The name of the method to call. 5815 * @param[in] signature The signature of the method to call. 5816 * @param[out] result A pointer to store the double return value. 5817 * @param[in] args A `va_list` of arguments to pass to the method. 5818 * @return Returns a status code of type `ani_status` indicating success or failure. 5819 */ 5820 ani_status (*Object_CallMethodByName_Double_V)(ani_env *env, ani_object object, const char *name, 5821 const char *signature, ani_double *result, va_list args); 5822 5823 /** 5824 * @brief Calls a method by name on an object and retrieves a reference return value. 5825 * 5826 * This function calls the specified method by its name and signature on an object using variadic arguments and 5827 * retrieves a reference result. 5828 * 5829 * @param[in] env A pointer to the environment structure. 5830 * @param[in] object The object on which the method is to be called. 5831 * @param[in] name The name of the method to call. 5832 * @param[in] signature The signature of the method to call. 5833 * @param[out] result A pointer to store the reference return value. 5834 * @param[in] ... Variadic arguments to pass to the method. 5835 * @return Returns a status code of type `ani_status` indicating success or failure. 5836 */ 5837 ani_status (*Object_CallMethodByName_Ref)(ani_env *env, ani_object object, const char *name, const char *signature, 5838 ani_ref *result, ...); 5839 5840 /** 5841 * @brief Calls a method by name on an object and retrieves a reference return value (array-based). 5842 * 5843 * This function calls the specified method by its name and signature on an object using arguments provided in an 5844 * array and retrieves a reference result. 5845 * 5846 * @param[in] env A pointer to the environment structure. 5847 * @param[in] object The object on which the method is to be called. 5848 * @param[in] name The name of the method to call. 5849 * @param[in] signature The signature of the method to call. 5850 * @param[out] result A pointer to store the reference return value. 5851 * @param[in] args An array of arguments to pass to the method. 5852 * @return Returns a status code of type `ani_status` indicating success or failure. 5853 */ 5854 ani_status (*Object_CallMethodByName_Ref_A)(ani_env *env, ani_object object, const char *name, 5855 const char *signature, ani_ref *result, const ani_value *args); 5856 5857 /** 5858 * @brief Calls a method by name on an object and retrieves a reference return value (variadic arguments). 5859 * 5860 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5861 * reference result. 5862 * 5863 * @param[in] env A pointer to the environment structure. 5864 * @param[in] object The object on which the method is to be called. 5865 * @param[in] name The name of the method to call. 5866 * @param[in] signature The signature of the method to call. 5867 * @param[out] result A pointer to store the reference return value. 5868 * @param[in] args A `va_list` of arguments to pass to the method. 5869 * @return Returns a status code of type `ani_status` indicating success or failure. 5870 */ 5871 ani_status (*Object_CallMethodByName_Ref_V)(ani_env *env, ani_object object, const char *name, 5872 const char *signature, ani_ref *result, va_list args); 5873 5874 /** 5875 * @brief Calls a method by name on an object with no return value. 5876 * 5877 * This function calls the specified method by its name and signature on an object using variadic arguments. The 5878 * method does not return a value. 5879 * 5880 * @param[in] env A pointer to the environment structure. 5881 * @param[in] object The object on which the method is to be called. 5882 * @param[in] name The name of the method to call. 5883 * @param[in] signature The signature of the method to call. 5884 * @param[in] ... Variadic arguments to pass to the method. 5885 * @return Returns a status code of type `ani_status` indicating success or failure. 5886 */ 5887 ani_status (*Object_CallMethodByName_Void)(ani_env *env, ani_object object, const char *name, const char *signature, 5888 ...); 5889 5890 /** 5891 * @brief Calls a method by name on an object with no return value (array-based). 5892 * 5893 * This function calls the specified method by its name and signature on an object using arguments provided in an 5894 * array. The method does not return a value. 5895 * 5896 * @param[in] env A pointer to the environment structure. 5897 * @param[in] object The object on which the method is to be called. 5898 * @param[in] name The name of the method to call. 5899 * @param[in] signature The signature of the method to call. 5900 * @param[in] args An array of arguments to pass to the method. 5901 * @return Returns a status code of type `ani_status` indicating success or failure. 5902 */ 5903 ani_status (*Object_CallMethodByName_Void_A)(ani_env *env, ani_object object, const char *name, 5904 const char *signature, const ani_value *args); 5905 5906 /** 5907 * @brief Calls a method by name on an object with no return value (variadic arguments). 5908 * 5909 * This function calls the specified method by its name and signature on an object using a `va_list`. The method 5910 * does not return a value. 5911 * 5912 * @param[in] env A pointer to the environment structure. 5913 * @param[in] object The object on which the method is to be called. 5914 * @param[in] name The name of the method to call. 5915 * @param[in] signature The signature of the method to call. 5916 * @param[in] args A `va_list` of arguments to pass to the method. 5917 * @return Returns a status code of type `ani_status` indicating success or failure. 5918 */ 5919 ani_status (*Object_CallMethodByName_Void_V)(ani_env *env, ani_object object, const char *name, 5920 const char *signature, va_list args); 5921 5922 /** 5923 * @brief Creates a new tuple value. 5924 * 5925 * This function creates a new value for the specified tuple using variadic arguments. 5926 * 5927 * @param[in] env A pointer to the environment structure. 5928 * @param[in] tuple The tuple for which to create a new value. 5929 * @param[out] result A pointer to store the new tuple value. 5930 * @param[in] ... Variadic arguments to initialize the tuple value. 5931 * @return Returns a status code of type `ani_status` indicating success or failure. 5932 */ 5933 ani_status (*Tuple_NewTupleValue)(ani_env *env, ani_tuple tuple, ani_tuple_value *result, ...); 5934 5935 /** 5936 * @brief Creates a new tuple value (array-based). 5937 * 5938 * This function creates a new value for the specified tuple using arguments provided in an array. 5939 * 5940 * @param[in] env A pointer to the environment structure. 5941 * @param[in] tuple The tuple for which to create a new value. 5942 * @param[out] result A pointer to store the new tuple value. 5943 * @param[in] args An array of arguments to initialize the tuple value. 5944 * @return Returns a status code of type `ani_status` indicating success or failure. 5945 */ 5946 ani_status (*Tuple_NewTupleValue_A)(ani_env *env, ani_tuple tuple, ani_tuple_value *result, const ani_value *args); 5947 5948 /** 5949 * @brief Creates a new tuple value (variadic arguments). 5950 * 5951 * This function creates a new value for the specified tuple using a `va_list`. 5952 * 5953 * @param[in] env A pointer to the environment structure. 5954 * @param[in] tuple The tuple for which to create a new value. 5955 * @param[out] result A pointer to store the new tuple value. 5956 * @param[in] args A `va_list` of arguments to initialize the tuple value. 5957 * @return Returns a status code of type `ani_status` indicating success or failure. 5958 */ 5959 ani_status (*Tuple_NewTupleValue_V)(ani_env *env, ani_tuple tuple, ani_tuple_value *result, va_list args); 5960 5961 /** 5962 * @brief Retrieves the number of items in a tuple. 5963 * 5964 * This function retrieves the total number of items in the specified tuple. 5965 * 5966 * @param[in] env A pointer to the environment structure. 5967 * @param[in] tuple The tuple whose number of items is to be retrieved. 5968 * @param[out] result A pointer to store the number of items. 5969 * @return Returns a status code of type `ani_status` indicating success or failure. 5970 */ 5971 ani_status (*Tuple_GetNumberOfItems)(ani_env *env, ani_tuple tuple, ani_size *result); 5972 5973 /** 5974 * @brief Retrieves the kind of an item in a tuple. 5975 * 5976 * This function retrieves the kind of the item at the specified index in the tuple. 5977 * 5978 * @param[in] env A pointer to the environment structure. 5979 * @param[in] tuple The tuple containing the item. 5980 * @param[in] index The index of the item. 5981 * @param[out] result A pointer to store the kind of the item. 5982 * @return Returns a status code of type `ani_status` indicating success or failure. 5983 */ 5984 ani_status (*Tuple_GetItemKind)(ani_env *env, ani_tuple tuple, ani_size index, ani_kind *result); 5985 5986 /** 5987 * @brief Retrieves the type of an item in a tuple. 5988 * 5989 * This function retrieves the type of the item at the specified index in the tuple. 5990 * 5991 * @param[in] env A pointer to the environment structure. 5992 * @param[in] tuple The tuple containing the item. 5993 * @param[in] index The index of the item. 5994 * @param[out] result A pointer to store the type of the item. 5995 * @return Returns a status code of type `ani_status` indicating success or failure. 5996 */ 5997 ani_status (*Tuple_GetItemType)(ani_env *env, ani_tuple tuple, ani_size index, ani_type *result); 5998 5999 /** 6000 * @brief Retrieves the tuple associated with a tuple value. 6001 * 6002 * This function retrieves the tuple that corresponds to the specified tuple value. 6003 * 6004 * @param[in] env A pointer to the environment structure. 6005 * @param[in] value The tuple value to query. 6006 * @param[out] result A pointer to store the associated tuple. 6007 * @return Returns a status code of type `ani_status` indicating success or failure. 6008 */ 6009 ani_status (*TupleValue_GetTuple)(ani_env *env, ani_tuple_value value, ani_tuple *result); 6010 6011 /** 6012 * @brief Retrieves a boolean item from a tuple value. 6013 * 6014 * This function retrieves the boolean value of the item at the specified index in the tuple value. 6015 * 6016 * @param[in] env A pointer to the environment structure. 6017 * @param[in] tuple_value The tuple value containing the item. 6018 * @param[in] index The index of the item. 6019 * @param[out] result A pointer to store the boolean value of the item. 6020 * @return Returns a status code of type `ani_status` indicating success or failure. 6021 */ 6022 ani_status (*TupleValue_GetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 6023 ani_boolean *result); 6024 6025 /** 6026 * @brief Retrieves a char item from a tuple value. 6027 * 6028 * This function retrieves the char value of the item at the specified index in the tuple value. 6029 * 6030 * @param[in] env A pointer to the environment structure. 6031 * @param[in] tuple_value The tuple value containing the item. 6032 * @param[in] index The index of the item. 6033 * @param[out] result A pointer to store the char value of the item. 6034 * @return Returns a status code of type `ani_status` indicating success or failure. 6035 */ 6036 ani_status (*TupleValue_GetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char *result); 6037 6038 /** 6039 * @brief Retrieves a byte item from a tuple value. 6040 * 6041 * This function retrieves the byte value of the item at the specified index in the tuple value. 6042 * 6043 * @param[in] env A pointer to the environment structure. 6044 * @param[in] tuple_value The tuple value containing the item. 6045 * @param[in] index The index of the item. 6046 * @param[out] result A pointer to store the byte value of the item. 6047 * @return Returns a status code of type `ani_status` indicating success or failure. 6048 */ 6049 ani_status (*TupleValue_GetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte *result); 6050 6051 /** 6052 * @brief Retrieves a short item from a tuple value. 6053 * 6054 * This function retrieves the short value of the item at the specified index in the tuple value. 6055 * 6056 * @param[in] env A pointer to the environment structure. 6057 * @param[in] tuple_value The tuple value containing the item. 6058 * @param[in] index The index of the item. 6059 * @param[out] result A pointer to store the short value of the item. 6060 * @return Returns a status code of type `ani_status` indicating success or failure. 6061 */ 6062 ani_status (*TupleValue_GetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 6063 ani_short *result); 6064 6065 /** 6066 * @brief Retrieves a integer item from a tuple value. 6067 * 6068 * This function retrieves the integer value of the item at the specified index in the tuple value. 6069 * 6070 * @param[in] env A pointer to the environment structure. 6071 * @param[in] tuple_value The tuple value containing the item. 6072 * @param[in] index The index of the item. 6073 * @param[out] result A pointer to store the integer value of the item. 6074 * @return Returns a status code of type `ani_status` indicating success or failure. 6075 */ 6076 ani_status (*TupleValue_GetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int *result); 6077 6078 /** 6079 * @brief Retrieves a long item from a tuple value. 6080 * 6081 * This function retrieves the long value of the item at the specified index in the tuple value. 6082 * 6083 * @param[in] env A pointer to the environment structure. 6084 * @param[in] tuple_value The tuple value containing the item. 6085 * @param[in] index The index of the item. 6086 * @param[out] result A pointer to store the long value of the item. 6087 * @return Returns a status code of type `ani_status` indicating success or failure. 6088 */ 6089 ani_status (*TupleValue_GetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long *result); 6090 6091 /** 6092 * @brief Retrieves a float item from a tuple value. 6093 * 6094 * This function retrieves the float value of the item at the specified index in the tuple value. 6095 * 6096 * @param[in] env A pointer to the environment structure. 6097 * @param[in] tuple_value The tuple value containing the item. 6098 * @param[in] index The index of the item. 6099 * @param[out] result A pointer to store the float value of the item. 6100 * @return Returns a status code of type `ani_status` indicating success or failure. 6101 */ 6102 ani_status (*TupleValue_GetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 6103 ani_float *result); 6104 6105 /** 6106 * @brief Retrieves a double item from a tuple value. 6107 * 6108 * This function retrieves the double value of the item at the specified index in the tuple value. 6109 * 6110 * @param[in] env A pointer to the environment structure. 6111 * @param[in] tuple_value The tuple value containing the item. 6112 * @param[in] index The index of the item. 6113 * @param[out] result A pointer to store the double value of the item. 6114 * @return Returns a status code of type `ani_status` indicating success or failure. 6115 */ 6116 ani_status (*TupleValue_GetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 6117 ani_double *result); 6118 6119 /** 6120 * @brief Retrieves a reference item from a tuple value. 6121 * 6122 * This function retrieves the reference value of the item at the specified index in the tuple value. 6123 * 6124 * @param[in] env A pointer to the environment structure. 6125 * @param[in] tuple_value The tuple value containing the item. 6126 * @param[in] index The index of the item. 6127 * @param[out] result A pointer to store the reference value of the item. 6128 * @return Returns a status code of type `ani_status` indicating success or failure. 6129 */ 6130 ani_status (*TupleValue_GetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref *result); 6131 6132 /** 6133 * @brief Sets a boolean value to an item in a tuple value. 6134 * 6135 * This function assigns a boolean value to the item at the specified index in the tuple value. 6136 * 6137 * @param[in] env A pointer to the environment structure. 6138 * @param[in] tuple_value The tuple value containing the item. 6139 * @param[in] index The index of the item. 6140 * @param[in] value The boolean value to assign to the item. 6141 * @return Returns a status code of type `ani_status` indicating success or failure. 6142 */ 6143 ani_status (*TupleValue_SetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 6144 ani_boolean value); 6145 6146 /** 6147 * @brief Sets a char value to an item in a tuple value. 6148 * 6149 * This function assigns a char value to the item at the specified index in the tuple value. 6150 * 6151 * @param[in] env A pointer to the environment structure. 6152 * @param[in] tuple_value The tuple value containing the item. 6153 * @param[in] index The index of the item. 6154 * @param[in] value The char value to assign to the item. 6155 * @return Returns a status code of type `ani_status` indicating success or failure. 6156 */ 6157 ani_status (*TupleValue_SetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char value); 6158 6159 /** 6160 * @brief Sets a byte value to an item in a tuple value. 6161 * 6162 * This function assigns a byte value to the item at the specified index in the tuple value. 6163 * 6164 * @param[in] env A pointer to the environment structure. 6165 * @param[in] tuple_value The tuple value containing the item. 6166 * @param[in] index The index of the item. 6167 * @param[in] value The byte value to assign to the item. 6168 * @return Returns a status code of type `ani_status` indicating success or failure. 6169 */ 6170 ani_status (*TupleValue_SetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte value); 6171 6172 /** 6173 * @brief Sets a short value to an item in a tuple value. 6174 * 6175 * This function assigns a short value to the item at the specified index in the tuple value. 6176 * 6177 * @param[in] env A pointer to the environment structure. 6178 * @param[in] tuple_value The tuple value containing the item. 6179 * @param[in] index The index of the item. 6180 * @param[in] value The short value to assign to the item. 6181 * @return Returns a status code of type `ani_status` indicating success or failure. 6182 */ 6183 ani_status (*TupleValue_SetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_short value); 6184 6185 /** 6186 * @brief Sets a integer value to an item in a tuple value. 6187 * 6188 * This function assigns a integer value to the item at the specified index in the tuple value. 6189 * 6190 * @param[in] env A pointer to the environment structure. 6191 * @param[in] tuple_value The tuple value containing the item. 6192 * @param[in] index The index of the item. 6193 * @param[in] value The integer value to assign to the item. 6194 * @return Returns a status code of type `ani_status` indicating success or failure. 6195 */ 6196 ani_status (*TupleValue_SetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int value); 6197 6198 /** 6199 * @brief Sets a long value to an item in a tuple value. 6200 * 6201 * This function assigns a long value to the item at the specified index in the tuple value. 6202 * 6203 * @param[in] env A pointer to the environment structure. 6204 * @param[in] tuple_value The tuple value containing the item. 6205 * @param[in] index The index of the item. 6206 * @param[in] value The long value to assign to the item. 6207 * @return Returns a status code of type `ani_status` indicating success or failure. 6208 */ 6209 ani_status (*TupleValue_SetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long value); 6210 6211 /** 6212 * @brief Sets a float value to an item in a tuple value. 6213 * 6214 * This function assigns a float value to the item at the specified index in the tuple value. 6215 * 6216 * @param[in] env A pointer to the environment structure. 6217 * @param[in] tuple_value The tuple value containing the item. 6218 * @param[in] index The index of the item. 6219 * @param[in] value The float value to assign to the item. 6220 * @return Returns a status code of type `ani_status` indicating success or failure. 6221 */ 6222 ani_status (*TupleValue_SetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_float value); 6223 6224 /** 6225 * @brief Sets a double value to an item in a tuple value. 6226 * 6227 * This function assigns a double value to the item at the specified index in the tuple value. 6228 * 6229 * @param[in] env A pointer to the environment structure. 6230 * @param[in] tuple_value The tuple value containing the item. 6231 * @param[in] index The index of the item. 6232 * @param[in] value The double value to assign to the item. 6233 * @return Returns a status code of type `ani_status` indicating success or failure. 6234 */ 6235 ani_status (*TupleValue_SetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 6236 ani_double value); 6237 6238 /** 6239 * @brief Sets a reference value to an item in a tuple value. 6240 * 6241 * This function assigns a reference value to the item at the specified index in the tuple value. 6242 * 6243 * @param[in] env A pointer to the environment structure. 6244 * @param[in] tuple_value The tuple value containing the item. 6245 * @param[in] index The index of the item. 6246 * @param[in] value The reference value to assign to the item. 6247 * @return Returns a status code of type `ani_status` indicating success or failure. 6248 */ 6249 ani_status (*TupleValue_SetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref value); 6250 6251 /** 6252 * @brief Creates a global reference. 6253 * 6254 * This function creates a global reference from a local reference. 6255 * 6256 * @param[in] env A pointer to the environment structure. 6257 * @param[in] ref The local reference to convert to a global reference. 6258 * @param[out] result A pointer to store the created global reference. 6259 * @return Returns a status code of type `ani_status` indicating success or failure. 6260 */ 6261 ani_status (*GlobalReference_Create)(ani_env *env, ani_ref ref, ani_gref *result); 6262 6263 /** 6264 * @brief Deletes a global reference. 6265 * 6266 * This function deletes the specified global reference, releasing all associated resources. 6267 * 6268 * @param[in] env A pointer to the environment structure. 6269 * @param[in] gref The global reference to delete. 6270 * @return Returns a status code of type `ani_status` indicating success or failure. 6271 */ 6272 ani_status (*GlobalReference_Delete)(ani_env *env, ani_gref gref); 6273 6274 /** 6275 * @brief Creates a weak reference. 6276 * 6277 * This function creates a weak reference from a local reference. 6278 * 6279 * @param[in] env A pointer to the environment structure. 6280 * @param[in] ref The local reference to convert to a weak reference. 6281 * @param[out] result A pointer to store the created weak reference. 6282 * @return Returns a status code of type `ani_status` indicating success or failure. 6283 */ 6284 ani_status (*WeakReference_Create)(ani_env *env, ani_ref ref, ani_wref *result); 6285 6286 /** 6287 * @brief Deletes a weak reference. 6288 * 6289 * This function deletes the specified weak reference, releasing all associated resources. 6290 * 6291 * @param[in] env A pointer to the environment structure. 6292 * @param[in] wref The weak reference to delete. 6293 * @return Returns a status code of type `ani_status` indicating success or failure. 6294 */ 6295 ani_status (*WeakReference_Delete)(ani_env *env, ani_wref wref); 6296 6297 /** 6298 * @brief Retrieves the local reference associated with a weak reference. 6299 * 6300 * This function retrieves the local reference that corresponds to the specified weak reference. 6301 * 6302 * @param[in] env A pointer to the environment structure. 6303 * @param[in] wref The weak reference to query. 6304 * @param[out] result A pointer to store the retrieved local reference. 6305 * @return Returns a status code of type `ani_status` indicating success or failure. 6306 */ 6307 ani_status (*WeakReference_GetReference)(ani_env *env, ani_wref wref, ani_ref *result); 6308 6309 /** 6310 * @brief Creates a new array buffer. 6311 * 6312 * This function creates a new array buffer with the specified length and returns a pointer to the allocated data. 6313 * 6314 * @param[in] env A pointer to the environment structure. 6315 * @param[in] length The length of the array buffer in bytes. 6316 * @param[out] data_result A pointer to store the allocated data of the array buffer. 6317 * @param[out] arraybuffer_result A pointer to store the created array buffer object. 6318 * @return Returns a status code of type `ani_status` indicating success or failure. 6319 */ 6320 ani_status (*CreateArrayBuffer)(ani_env *env, size_t length, void **data_result, 6321 ani_arraybuffer *arraybuffer_result); 6322 6323 /** 6324 * @brief Creates a new array buffer using external data. 6325 * 6326 * This function creates an array buffer that uses external data. The provided finalizer will be called when the 6327 * array buffer is no longer needed. 6328 * 6329 * @param[in] env A pointer to the environment structure. 6330 * @param[in] external_data A pointer to the external data to be used by the array buffer. 6331 * @param[in] length The length of the external data in bytes. 6332 * @param[in] finalizer A callback function to be called when the array buffer is finalized. 6333 * @param[in] hint A user-defined hint to be passed to the finalizer. 6334 * @param[out] result A pointer to store the created array buffer object. 6335 * @return Returns a status code of type `ani_status` indicating success or failure. 6336 */ 6337 ani_status (*CreateArrayBufferExternal)(ani_env *env, void *external_data, size_t length, ani_finalizer finalizer, 6338 void *hint, ani_arraybuffer *result); 6339 6340 /** 6341 * @brief Retrieves information about an array buffer. 6342 * 6343 * This function retrieves the data pointer and length of the specified array buffer. 6344 * 6345 * @param[in] env A pointer to the environment structure. 6346 * @param[in] arraybuffer The array buffer to query. 6347 * @param[out] data_result A pointer to store the data of the array buffer. 6348 * @param[out] length_result A pointer to store the length of the array buffer in bytes. 6349 * @return Returns a status code of type `ani_status` indicating success or failure. 6350 */ 6351 ani_status (*ArrayBuffer_GetInfo)(ani_env *env, ani_arraybuffer arraybuffer, void **data_result, 6352 size_t *length_result); 6353 6354 /** 6355 * @brief Converts an object to a method. 6356 * 6357 * This function extracts the method information from a given object. 6358 * 6359 * @param[in] env A pointer to the environment structure. 6360 * @param[in] method The object representing the method. 6361 * @param[out] result A pointer to store the extracted method. 6362 * @return Returns a status code of type `ani_status` indicating success or failure. 6363 */ 6364 ani_status (*Reflection_FromMethod)(ani_env *env, ani_object method, ani_method *result); 6365 6366 /** 6367 * @brief Converts a method to an object. 6368 * 6369 * This function creates an object representing the specified method. 6370 * 6371 * @param[in] env A pointer to the environment structure. 6372 * @param[in] cls The class containing the method. 6373 * @param[in] method The method to convert. 6374 * @param[out] result A pointer to store the created object. 6375 * @return Returns a status code of type `ani_status` indicating success or failure. 6376 */ 6377 ani_status (*Reflection_ToMethod)(ani_env *env, ani_class cls, ani_method method, ani_object *result); 6378 6379 /** 6380 * @brief Converts an object to a field. 6381 * 6382 * This function extracts the field information from a given object. 6383 * 6384 * @param[in] env A pointer to the environment structure. 6385 * @param[in] field The object representing the field. 6386 * @param[out] result A pointer to store the extracted field. 6387 * @return Returns a status code of type `ani_status` indicating success or failure. 6388 */ 6389 ani_status (*Reflection_FromField)(ani_env *env, ani_object field, ani_field *result); 6390 6391 /** 6392 * @brief Converts a field to an object. 6393 * 6394 * This function creates an object representing the specified field. 6395 * 6396 * @param[in] env A pointer to the environment structure. 6397 * @param[in] cls The class containing the field. 6398 * @param[in] field The field to convert. 6399 * @param[out] result A pointer to store the created object. 6400 * @return Returns a status code of type `ani_status` indicating success or failure. 6401 */ 6402 ani_status (*Reflection_ToField)(ani_env *env, ani_class cls, ani_field field, ani_object *result); 6403 6404 /** 6405 * @brief Converts an object to a static method. 6406 * 6407 * This function extracts the static method information from a given object. 6408 * 6409 * @param[in] env A pointer to the environment structure. 6410 * @param[in] method The object representing the static method. 6411 * @param[out] result A pointer to store the extracted static method. 6412 * @return Returns a status code of type `ani_status` indicating success or failure. 6413 */ 6414 ani_status (*Reflection_FromStaticMethod)(ani_env *env, ani_object method, ani_static_method *result); 6415 6416 /** 6417 * @brief Converts a static method to an object. 6418 * 6419 * This function creates an object representing the specified static method. 6420 * 6421 * @param[in] env A pointer to the environment structure. 6422 * @param[in] cls The class containing the static method. 6423 * @param[in] method The static method to convert. 6424 * @param[out] result A pointer to store the created object. 6425 * @return Returns a status code of type `ani_status` indicating success or failure. 6426 */ 6427 ani_status (*Reflection_ToStaticMethod)(ani_env *env, ani_class cls, ani_static_method method, ani_object *result); 6428 6429 /** 6430 * @brief Converts an object to a static field. 6431 * 6432 * This function extracts the static field information from a given object. 6433 * 6434 * @param[in] env A pointer to the environment structure. 6435 * @param[in] field The object representing the static field. 6436 * @param[out] result A pointer to store the extracted static field. 6437 * @return Returns a status code of type `ani_status` indicating success or failure. 6438 */ 6439 ani_status (*Reflection_FromStaticField)(ani_env *env, ani_object field, ani_static_field *result); 6440 6441 /** 6442 * @brief Converts a static field to an object. 6443 * 6444 * This function creates an object representing the specified static field. 6445 * 6446 * @param[in] env A pointer to the environment structure. 6447 * @param[in] cls The class containing the static field. 6448 * @param[in] field The static field to convert. 6449 * @param[out] result A pointer to store the created object. 6450 * @return Returns a status code of type `ani_status` indicating success or failure. 6451 */ 6452 ani_status (*Reflection_ToStaticField)(ani_env *env, ani_class cls, ani_static_field field, ani_object *result); 6453 6454 /** 6455 * @brief Converts an object to a function. 6456 * 6457 * This function extracts the function information from a given object. 6458 * 6459 * @param[in] env A pointer to the environment structure. 6460 * @param[in] function The object representing the function. 6461 * @param[out] result A pointer to store the extracted function. 6462 * @return Returns a status code of type `ani_status` indicating success or failure. 6463 */ 6464 ani_status (*Reflection_FromFunction)(ani_env *env, ani_object function, ani_function *result); 6465 6466 /** 6467 * @brief Converts a function to an object. 6468 * 6469 * This function creates an object representing the specified function. 6470 * 6471 * @param[in] env A pointer to the environment structure. 6472 * @param[in] function The function to convert. 6473 * @param[out] result A pointer to store the created object. 6474 * @return Returns a status code of type `ani_status` indicating success or failure. 6475 */ 6476 ani_status (*Reflection_ToFunction)(ani_env *env, ani_function function, ani_object *result); 6477 6478 /** 6479 * @brief Converts an object to a variable. 6480 * 6481 * This function extracts the variable information from a given object. 6482 * 6483 * @param[in] env A pointer to the environment structure. 6484 * @param[in] variable The object representing the variable. 6485 * @param[out] result A pointer to store the extracted variable. 6486 * @return Returns a status code of type `ani_status` indicating success or failure. 6487 */ 6488 ani_status (*Reflection_FromVariable)(ani_env *env, ani_object variable, ani_variable *result); 6489 6490 /** 6491 * @brief Converts a variable to an object. 6492 * 6493 * This function creates an object representing the specified variable. 6494 * 6495 * @param[in] env A pointer to the environment structure. 6496 * @param[in] variable The variable to convert. 6497 * @param[out] result A pointer to store the created object. 6498 * @return Returns a status code of type `ani_status` indicating success or failure. 6499 */ 6500 ani_status (*Reflection_ToVariable)(ani_env *env, ani_variable variable, ani_object *result); 6501 6502 /** 6503 * @brief Registers a new coroutine-local storage slot. 6504 * 6505 * This function registers a new coroutine-local storage (CLS) slot with an optional initial data, finalizer, and 6506 * hint. 6507 * 6508 * @param[in] env A pointer to the environment structure. 6509 * @param[in] initial_data A pointer to the initial data to associate with the slot. Can be null. 6510 * @param[in] finalizer A callback function to finalize and clean up the data when it is no longer needed. 6511 * @param[in] hint A user-defined pointer that is passed to the finalizer. Can be null. 6512 * @param[out] result A pointer to store the created CLS slot. 6513 * @return Returns a status code of type `ani_status` indicating success or failure. 6514 */ 6515 ani_status (*CLS_Register)(ani_env *env, void *initial_data, ani_finalizer finalizer, void *hint, 6516 ani_cls_slot *result); 6517 6518 /** 6519 * @brief Unregisters a coroutine-local storage slot. 6520 * 6521 * This function unregisters a previously registered CLS slot, releasing its resources. 6522 * 6523 * @param[in] env A pointer to the environment structure. 6524 * @param[in] slot The CLS slot to unregister. 6525 * @return Returns a status code of type `ani_status` indicating success or failure. 6526 */ 6527 ani_status (*CLS_Unregister)(ani_env *env, ani_cls_slot slot); 6528 6529 /** 6530 * @brief Sets data for a CLS slot. 6531 * 6532 * This function associates the specified data with the given CLS slot. 6533 * 6534 * @param[in] env A pointer to the environment structure. 6535 * @param[in] slot The CLS slot to set data for. 6536 * @param[in] data A pointer to the data to associate with the slot. Can be null. 6537 * @return Returns a status code of type `ani_status` indicating success or failure. 6538 */ 6539 ani_status (*CLS_SetData)(ani_env *env, ani_cls_slot slot, void *data); 6540 6541 /** 6542 * @brief Retrieves data from a CLS slot. 6543 * 6544 * This function retrieves the data associated with the given CLS slot. 6545 * 6546 * @param[in] env A pointer to the environment structure. 6547 * @param[in] slot The CLS slot to retrieve data from. 6548 * @param[out] result A pointer to store the retrieved data. Can be null if no data is associated. 6549 * @return Returns a status code of type `ani_status` indicating success or failure. 6550 */ 6551 ani_status (*CLS_GetData)(ani_env *env, ani_cls_slot slot, void **result); 6552 6553 /** 6554 * @brief Launches a coroutine using a functional object. 6555 * 6556 * This function starts a coroutine that executes the specified functional object with the given arguments. 6557 * 6558 * @param[in] env A pointer to the environment structure. 6559 * @param[in] fn The functional object to execute. 6560 * @param[in] argc The number of arguments to pass to the functional object. 6561 * @param[in] argv An array of arguments to pass to the functional object. 6562 * @param[out] result A pointer to store the promise representing the coroutine's result. 6563 * @return Returns a status code of type `ani_status` indicating success or failure. 6564 */ 6565 ani_status (*Coroutine_LaunchFunctionalObject)(ani_env *env, ani_fn_object fn, ani_size argc, ani_ref *argv, 6566 ani_promise *result); 6567 6568 /** 6569 * @brief Launches a coroutine using a function with variadic arguments. 6570 * 6571 * This function starts a coroutine that executes the specified function with the given arguments. 6572 * 6573 * @param[in] env A pointer to the environment structure. 6574 * @param[in] function The function to execute. 6575 * @param[out] result A pointer to store the promise representing the coroutine's result. 6576 * @param[in] ... Variadic arguments to pass to the function. 6577 * @return Returns a status code of type `ani_status` indicating success or failure. 6578 */ 6579 ani_status (*Coroutine_LaunchFunction)(ani_env *env, ani_function function, ani_promise *result, ...); 6580 6581 /** 6582 * @brief Launches a coroutine using a function with array-based arguments. 6583 * 6584 * This function starts a coroutine that executes the specified function using arguments provided in an array. 6585 * 6586 * @param[in] env A pointer to the environment structure. 6587 * @param[in] function The function to execute. 6588 * @param[out] result A pointer to store the promise representing the coroutine's result. 6589 * @param[in] args An array of arguments to pass to the function. 6590 * @return Returns a status code of type `ani_status` indicating success or failure. 6591 */ 6592 ani_status (*Coroutine_LaunchFunction_A)(ani_env *env, ani_function function, ani_promise *result, 6593 const ani_value *args); 6594 6595 /** 6596 * @brief Launches a coroutine using a function with variadic arguments in a `va_list`. 6597 * 6598 * This function starts a coroutine that executes the specified function using arguments provided in a `va_list`. 6599 * 6600 * @param[in] env A pointer to the environment structure. 6601 * @param[in] function The function to execute. 6602 * @param[out] result A pointer to store the promise representing the coroutine's result. 6603 * @param[in] args A `va_list` of arguments to pass to the function. 6604 * @return Returns a status code of type `ani_status` indicating success or failure. 6605 */ 6606 ani_status (*Coroutine_LaunchFunction_V)(ani_env *env, ani_function function, ani_promise *result, va_list args); 6607 6608 /** 6609 * @brief Launches a coroutine using an object method with variadic arguments. 6610 * 6611 * This function starts a coroutine that executes the specified method on the given object with the provided 6612 * arguments. 6613 * 6614 * @param[in] env A pointer to the environment structure. 6615 * @param[in] self The object on which the method is to be executed. 6616 * @param[in] function The method to execute. 6617 * @param[out] result A pointer to store the promise representing the coroutine's result. 6618 * @param[in] ... Variadic arguments to pass to the method. 6619 * @return Returns a status code of type `ani_status` indicating success or failure. 6620 */ 6621 ani_status (*Coroutine_LaunchMethod)(ani_env *env, ani_object self, ani_function function, ani_promise *result, 6622 ...); 6623 6624 /** 6625 * @brief Launches a coroutine using an object method with array-based arguments. 6626 * 6627 * This function starts a coroutine that executes the specified method on the given object using arguments provided 6628 * in an array. 6629 * 6630 * @param[in] env A pointer to the environment structure. 6631 * @param[in] self The object on which the method is to be executed. 6632 * @param[in] function The method to execute. 6633 * @param[out] result A pointer to store the promise representing the coroutine's result. 6634 * @param[in] args An array of arguments to pass to the method. 6635 * @return Returns a status code of type `ani_status` indicating success or failure. 6636 */ 6637 ani_status (*Coroutine_LaunchMethod_A)(ani_env *env, ani_object self, ani_function function, ani_promise *result, 6638 const ani_value *args); 6639 6640 /** 6641 * @brief Launches a coroutine using an object method with variadic arguments in a `va_list`. 6642 * 6643 * This function starts a coroutine that executes the specified method on the given object using arguments provided 6644 * in a `va_list`. 6645 * 6646 * @param[in] env A pointer to the environment structure. 6647 * @param[in] self The object on which the method is to be executed. 6648 * @param[in] function The method to execute. 6649 * @param[out] result A pointer to store the promise representing the coroutine's result. 6650 * @param[in] args A `va_list` of arguments to pass to the method. 6651 * @return Returns a status code of type `ani_status` indicating success or failure. 6652 */ 6653 ani_status (*Coroutine_LaunchMethod_V)(ani_env *env, ani_object self, ani_function function, ani_promise *result, 6654 va_list args); 6655 6656 /** 6657 * @brief Launches a coroutine using a static method with variadic arguments. 6658 * 6659 * This function starts a coroutine that executes the specified static method on the given class with the provided 6660 * arguments. 6661 * 6662 * @param[in] env A pointer to the environment structure. 6663 * @param[in] cls The class on which the static method is to be executed. 6664 * @param[in] function The static method to execute. 6665 * @param[out] result A pointer to store the promise representing the coroutine's result. 6666 * @param[in] ... Variadic arguments to pass to the static method. 6667 * @return Returns a status code of type `ani_status` indicating success or failure. 6668 */ 6669 ani_status (*Coroutine_LaunchStaticMethod)(ani_env *env, ani_class cls, ani_function function, ani_promise *result, 6670 ...); 6671 6672 /** 6673 * @brief Launches a coroutine using a static method with array-based arguments. 6674 * 6675 * This function starts a coroutine that executes the specified static method on the given class using arguments 6676 * provided in an array. 6677 * 6678 * @param[in] env A pointer to the environment structure. 6679 * @param[in] cls The class on which the static method is to be executed. 6680 * @param[in] function The static method to execute. 6681 * @param[out] result A pointer to store the promise representing the coroutine's result. 6682 * @param[in] args An array of arguments to pass to the static method. 6683 * @return Returns a status code of type `ani_status` indicating success or failure. 6684 */ 6685 ani_status (*Coroutine_LaunchStaticMethod_A)(ani_env *env, ani_class cls, ani_function function, 6686 ani_promise *result, const ani_value *args); 6687 6688 /** 6689 * @brief Launches a coroutine using a static method with variadic arguments in a `va_list`. 6690 * 6691 * This function starts a coroutine that executes the specified static method on the given class using arguments 6692 * provided in a `va_list`. 6693 * 6694 * @param[in] env A pointer to the environment structure. 6695 * @param[in] cls The class on which the static method is to be executed. 6696 * @param[in] function The static method to execute. 6697 * @param[out] result A pointer to store the promise representing the coroutine's result. 6698 * @param[in] args A `va_list` of arguments to pass to the static method. 6699 * @return Returns a status code of type `ani_status` indicating success or failure. 6700 */ 6701 ani_status (*Coroutine_LaunchStaticMethod_V)(ani_env *env, ani_class cls, ani_function function, 6702 ani_promise *result, va_list args); 6703 6704 /** 6705 * @brief Awaits the completion of a promise and retrieves a boolean result. 6706 * 6707 * This function waits for the specified promise to complete and retrieves its result as a boolean value. 6708 * 6709 * @param[in] env A pointer to the environment structure. 6710 * @param[in] promise The promise to await. 6711 * @param[out] value A pointer to store the boolean result of the promise. 6712 * @return Returns a status code of type `ani_status` indicating success or failure. 6713 */ 6714 ani_status (*Coroutine_Await_Boolean)(ani_env *env, ani_promise promise, ani_boolean value); 6715 6716 /** 6717 * @brief Awaits the completion of a promise and retrieves a char result. 6718 * 6719 * This function waits for the specified promise to complete and retrieves its result as a char value. 6720 * 6721 * @param[in] env A pointer to the environment structure. 6722 * @param[in] promise The promise to await. 6723 * @param[out] value A pointer to store the char result of the promise. 6724 * @return Returns a status code of type `ani_status` indicating success or failure. 6725 */ 6726 ani_status (*Coroutine_Await_Char)(ani_env *env, ani_promise promise, ani_char value); 6727 6728 /** 6729 * @brief Awaits the completion of a promise and retrieves a byte result. 6730 * 6731 * This function waits for the specified promise to complete and retrieves its result as a byte value. 6732 * 6733 * @param[in] env A pointer to the environment structure. 6734 * @param[in] promise The promise to await. 6735 * @param[out] value A pointer to store the byte result of the promise. 6736 * @return Returns a status code of type `ani_status` indicating success or failure. 6737 */ 6738 ani_status (*Coroutine_Await_Byte)(ani_env *env, ani_promise promise, ani_byte value); 6739 6740 /** 6741 * @brief Awaits the completion of a promise and retrieves a short result. 6742 * 6743 * This function waits for the specified promise to complete and retrieves its result as a short value. 6744 * 6745 * @param[in] env A pointer to the environment structure. 6746 * @param[in] promise The promise to await. 6747 * @param[out] value A pointer to store the short result of the promise. 6748 * @return Returns a status code of type `ani_status` indicating success or failure. 6749 */ 6750 ani_status (*Coroutine_Await_Short)(ani_env *env, ani_promise promise, ani_short value); 6751 6752 /** 6753 * @brief Awaits the completion of a promise and retrieves a integer result. 6754 * 6755 * This function waits for the specified promise to complete and retrieves its result as a integer value. 6756 * 6757 * @param[in] env A pointer to the environment structure. 6758 * @param[in] promise The promise to await. 6759 * @param[out] value A pointer to store the integer result of the promise. 6760 * @return Returns a status code of type `ani_status` indicating success or failure. 6761 */ 6762 ani_status (*Coroutine_Await_Int)(ani_env *env, ani_promise promise, ani_int value); 6763 6764 /** 6765 * @brief Awaits the completion of a promise and retrieves a long result. 6766 * 6767 * This function waits for the specified promise to complete and retrieves its result as a long value. 6768 * 6769 * @param[in] env A pointer to the environment structure. 6770 * @param[in] promise The promise to await. 6771 * @param[out] value A pointer to store the long result of the promise. 6772 * @return Returns a status code of type `ani_status` indicating success or failure. 6773 */ 6774 ani_status (*Coroutine_Await_Long)(ani_env *env, ani_promise promise, ani_long value); 6775 6776 /** 6777 * @brief Awaits the completion of a promise and retrieves a float result. 6778 * 6779 * This function waits for the specified promise to complete and retrieves its result as a float value. 6780 * 6781 * @param[in] env A pointer to the environment structure. 6782 * @param[in] promise The promise to await. 6783 * @param[out] value A pointer to store the float result of the promise. 6784 * @return Returns a status code of type `ani_status` indicating success or failure. 6785 */ 6786 ani_status (*Coroutine_Await_Float)(ani_env *env, ani_promise promise, ani_float value); 6787 6788 /** 6789 * @brief Awaits the completion of a promise and retrieves a double result. 6790 * 6791 * This function waits for the specified promise to complete and retrieves its result as a double value. 6792 * 6793 * @param[in] env A pointer to the environment structure. 6794 * @param[in] promise The promise to await. 6795 * @param[out] value A pointer to store the double result of the promise. 6796 * @return Returns a status code of type `ani_status` indicating success or failure. 6797 */ 6798 ani_status (*Coroutine_Await_Double)(ani_env *env, ani_promise promise, ani_double value); 6799 6800 /** 6801 * @brief Awaits the completion of a promise and retrieves a reference result. 6802 * 6803 * This function waits for the specified promise to complete and retrieves its result as a reference. 6804 * 6805 * @param[in] env A pointer to the environment structure. 6806 * @param[in] promise The promise to await. 6807 * @param[out] value A pointer to store the reference result of the promise. 6808 * @return Returns a status code of type `ani_status` indicating success or failure. 6809 */ 6810 ani_status (*Coroutine_Await_Ref)(ani_env *env, ani_promise promise, ani_ref value); 6811 }; 6812 6813 // C++ API 6814 struct __ani_vm { 6815 const struct __ani_vm_api *c_api; 6816 6817 #ifdef __cplusplus DestroyVM__ani_vm6818 ani_status DestroyVM() 6819 { 6820 return c_api->DestroyVM(this); 6821 } GetEnv__ani_vm6822 ani_status GetEnv(uint32_t version, ani_env **result) 6823 { 6824 return c_api->GetEnv(this, version, result); 6825 } AttachThread__ani_vm6826 ani_status AttachThread(void *params, ani_env **result) 6827 { 6828 return c_api->AttachThread(this, params, result); 6829 } DetachThread__ani_vm6830 ani_status DetachThread() 6831 { 6832 return c_api->DetachThread(this); 6833 } 6834 #endif // __cplusplus 6835 }; 6836 6837 struct __ani_env { 6838 const struct __ani_interaction_api *c_api; 6839 6840 #ifdef __cplusplus GetVersion__ani_env6841 ani_status GetVersion(uint32_t *result) 6842 { 6843 return c_api->GetVersion(this, result); 6844 } GetVM__ani_env6845 ani_status GetVM(ani_vm **result) 6846 { 6847 return c_api->GetVM(this, result); 6848 } Reference_IsObject__ani_env6849 ani_status Reference_IsObject(ani_ref ref, ani_boolean *result) 6850 { 6851 return c_api->Reference_IsObject(this, ref, result); 6852 } Reference_IsFunctionalObject__ani_env6853 ani_status Reference_IsFunctionalObject(ani_ref ref, ani_boolean *result) 6854 { 6855 return c_api->Reference_IsFunctionalObject(this, ref, result); 6856 } Reference_IsEnum__ani_env6857 ani_status Reference_IsEnum(ani_ref ref, ani_boolean *result) 6858 { 6859 return c_api->Reference_IsEnum(this, ref, result); 6860 } Reference_IsTuple__ani_env6861 ani_status Reference_IsTuple(ani_ref ref, ani_boolean *result) 6862 { 6863 return c_api->Reference_IsTuple(this, ref, result); 6864 } Reference_IsString__ani_env6865 ani_status Reference_IsString(ani_ref ref, ani_boolean *result) 6866 { 6867 return c_api->Reference_IsString(this, ref, result); 6868 } Reference_IsStringLiteral__ani_env6869 ani_status Reference_IsStringLiteral(ani_ref ref, ani_boolean *result) 6870 { 6871 return c_api->Reference_IsStringLiteral(this, ref, result); 6872 } Reference_IsFixedArray__ani_env6873 ani_status Reference_IsFixedArray(ani_ref ref, ani_boolean *result) 6874 { 6875 return c_api->Reference_IsFixedArray(this, ref, result); 6876 } Reference_IsFixedArray_Boolean__ani_env6877 ani_status Reference_IsFixedArray_Boolean(ani_ref ref, ani_boolean *result) 6878 { 6879 return c_api->Reference_IsFixedArray_Boolean(this, ref, result); 6880 } Reference_IsFixedArray_Char__ani_env6881 ani_status Reference_IsFixedArray_Char(ani_ref ref, ani_boolean *result) 6882 { 6883 return c_api->Reference_IsFixedArray_Char(this, ref, result); 6884 } Reference_IsFixedArray_Byte__ani_env6885 ani_status Reference_IsFixedArray_Byte(ani_ref ref, ani_boolean *result) 6886 { 6887 return c_api->Reference_IsFixedArray_Byte(this, ref, result); 6888 } Reference_IsFixedArray_Short__ani_env6889 ani_status Reference_IsFixedArray_Short(ani_ref ref, ani_boolean *result) 6890 { 6891 return c_api->Reference_IsFixedArray_Short(this, ref, result); 6892 } Reference_IsFixedArray_Int__ani_env6893 ani_status Reference_IsFixedArray_Int(ani_ref ref, ani_boolean *result) 6894 { 6895 return c_api->Reference_IsFixedArray_Int(this, ref, result); 6896 } Reference_IsFixedArray_Long__ani_env6897 ani_status Reference_IsFixedArray_Long(ani_ref ref, ani_boolean *result) 6898 { 6899 return c_api->Reference_IsFixedArray_Long(this, ref, result); 6900 } Reference_IsFixedArray_Float__ani_env6901 ani_status Reference_IsFixedArray_Float(ani_ref ref, ani_boolean *result) 6902 { 6903 return c_api->Reference_IsFixedArray_Float(this, ref, result); 6904 } Reference_IsFixedArray_Double__ani_env6905 ani_status Reference_IsFixedArray_Double(ani_ref ref, ani_boolean *result) 6906 { 6907 return c_api->Reference_IsFixedArray_Double(this, ref, result); 6908 } Reference_IsFixedArray_Ref__ani_env6909 ani_status Reference_IsFixedArray_Ref(ani_ref ref, ani_boolean *result) 6910 { 6911 return c_api->Reference_IsFixedArray_Ref(this, ref, result); 6912 } Object_New__ani_env6913 ani_status Object_New(ani_class cls, ani_method method, ani_object *result, ...) 6914 { 6915 va_list args; 6916 va_start(args, result); 6917 ani_status status = c_api->Object_New_V(this, cls, method, result, args); 6918 va_end(args); 6919 return status; 6920 } Object_New_A__ani_env6921 ani_status Object_New_A(ani_class cls, ani_method method, ani_object *result, const ani_value *args) 6922 { 6923 return c_api->Object_New_A(this, cls, method, result, args); 6924 } Object_New_V__ani_env6925 ani_status Object_New_V(ani_class cls, ani_method method, ani_object *result, va_list args) 6926 { 6927 return c_api->Object_New_V(this, cls, method, result, args); 6928 } Object_GetType__ani_env6929 ani_status Object_GetType(ani_object object, ani_type *result) 6930 { 6931 return c_api->Object_GetType(this, object, result); 6932 } Object_InstanceOf__ani_env6933 ani_status Object_InstanceOf(ani_object object, ani_type type, ani_boolean *result) 6934 { 6935 return c_api->Object_InstanceOf(this, object, type, result); 6936 } Object_IsSame__ani_env6937 ani_status Object_IsSame(ani_object object1, ani_object object2, ani_boolean *result) 6938 { 6939 return c_api->Object_IsSame(this, object1, object2, result); 6940 } Type_GetSuperClass__ani_env6941 ani_status Type_GetSuperClass(ani_type type, ani_class *result) 6942 { 6943 return c_api->Type_GetSuperClass(this, type, result); 6944 } Type_IsAssignableFrom__ani_env6945 ani_status Type_IsAssignableFrom(ani_type from_type, ani_type to_type, ani_boolean *result) 6946 { 6947 return c_api->Type_IsAssignableFrom(this, from_type, to_type, result); 6948 } FindModule__ani_env6949 ani_status FindModule(const char *module_descriptor, ani_module *result) 6950 { 6951 return c_api->FindModule(this, module_descriptor, result); 6952 } FindNamespace__ani_env6953 ani_status FindNamespace(const char *namespace_descriptor, ani_namespace *result) 6954 { 6955 return c_api->FindNamespace(this, namespace_descriptor, result); 6956 } FindClass__ani_env6957 ani_status FindClass(const char *class_descriptor, ani_class *result) 6958 { 6959 return c_api->FindClass(this, class_descriptor, result); 6960 } FindEnum__ani_env6961 ani_status FindEnum(const char *enum_descriptor, ani_enum *result) 6962 { 6963 return c_api->FindEnum(this, enum_descriptor, result); 6964 } FindTuple__ani_env6965 ani_status FindTuple(const char *tuple_descriptor, ani_tuple *result) 6966 { 6967 return c_api->FindTuple(this, tuple_descriptor, result); 6968 } FindFunction__ani_env6969 ani_status FindFunction(const char *function_descriptor, ani_function *result) 6970 { 6971 return c_api->FindFunction(this, function_descriptor, result); 6972 } FindVariable__ani_env6973 ani_status FindVariable(const char *variable_descriptor, ani_variable *result) 6974 { 6975 return c_api->FindVariable(this, variable_descriptor, result); 6976 } Module_FindNamespace__ani_env6977 ani_status Module_FindNamespace(ani_module module, const char *namespace_descriptor, ani_namespace *result) 6978 { 6979 return c_api->Module_FindNamespace(this, module, namespace_descriptor, result); 6980 } Module_FindClass__ani_env6981 ani_status Module_FindClass(ani_module module, const char *class_descriptor, ani_class *result) 6982 { 6983 return c_api->Module_FindClass(this, module, class_descriptor, result); 6984 } Module_FindEnum__ani_env6985 ani_status Module_FindEnum(ani_module module, const char *enum_descriptor, ani_enum *result) 6986 { 6987 return c_api->Module_FindEnum(this, module, enum_descriptor, result); 6988 } Module_FindFunction__ani_env6989 ani_status Module_FindFunction(ani_module module, const char *name, const char *signature, ani_function *result) 6990 { 6991 return c_api->Module_FindFunction(this, module, name, signature, result); 6992 } Module_FindVariable__ani_env6993 ani_status Module_FindVariable(ani_module module, const char *variable_descriptor, ani_variable *result) 6994 { 6995 return c_api->Module_FindVariable(this, module, variable_descriptor, result); 6996 } Namespace_FindNamespace__ani_env6997 ani_status Namespace_FindNamespace(ani_namespace ns, const char *namespace_descriptor, ani_namespace *result) 6998 { 6999 return c_api->Namespace_FindNamespace(this, ns, namespace_descriptor, result); 7000 } Namespace_FindClass__ani_env7001 ani_status Namespace_FindClass(ani_namespace ns, const char *class_descriptor, ani_class *result) 7002 { 7003 return c_api->Namespace_FindClass(this, ns, class_descriptor, result); 7004 } Namespace_FindEnum__ani_env7005 ani_status Namespace_FindEnum(ani_namespace ns, const char *enum_descriptor, ani_enum *result) 7006 { 7007 return c_api->Namespace_FindEnum(this, ns, enum_descriptor, result); 7008 } Namespace_FindFunction__ani_env7009 ani_status Namespace_FindFunction(ani_namespace ns, const char *name, const char *signature, ani_function *result) 7010 { 7011 return c_api->Namespace_FindFunction(this, ns, name, signature, result); 7012 } Namespace_FindVariable__ani_env7013 ani_status Namespace_FindVariable(ani_namespace ns, const char *variable_descriptor, ani_variable *result) 7014 { 7015 return c_api->Namespace_FindVariable(this, ns, variable_descriptor, result); 7016 } Module_BindNativeFunctions__ani_env7017 ani_status Module_BindNativeFunctions(ani_module module, const ani_native_function *functions, 7018 ani_size nr_functions) 7019 { 7020 return c_api->Module_BindNativeFunctions(this, module, functions, nr_functions); 7021 } Namespace_BindNativeFunctions__ani_env7022 ani_status Namespace_BindNativeFunctions(ani_namespace ns, const ani_native_function *functions, 7023 ani_size nr_functions) 7024 { 7025 return c_api->Namespace_BindNativeFunctions(this, ns, functions, nr_functions); 7026 } Class_BindNativeMethods__ani_env7027 ani_status Class_BindNativeMethods(ani_class cls, const ani_native_function *methods, ani_size nr_methods) 7028 { 7029 return c_api->Class_BindNativeMethods(this, cls, methods, nr_methods); 7030 } Reference_Delete__ani_env7031 ani_status Reference_Delete(ani_ref ref) 7032 { 7033 return c_api->Reference_Delete(this, ref); 7034 } EnsureEnoughReferences__ani_env7035 ani_status EnsureEnoughReferences(ani_size nr_refs) 7036 { 7037 return c_api->EnsureEnoughReferences(this, nr_refs); 7038 } CreateLocalScope__ani_env7039 ani_status CreateLocalScope(ani_size nr_refs) 7040 { 7041 return c_api->CreateLocalScope(this, nr_refs); 7042 } DestroyLocalScope__ani_env7043 ani_status DestroyLocalScope() 7044 { 7045 return c_api->DestroyLocalScope(this); 7046 } CreateEscapeLocalScope__ani_env7047 ani_status CreateEscapeLocalScope(ani_size nr_refs) 7048 { 7049 return c_api->CreateEscapeLocalScope(this, nr_refs); 7050 } DestroyEscapeLocalScope__ani_env7051 ani_status DestroyEscapeLocalScope(ani_ref ref, ani_ref *result) 7052 { 7053 return c_api->DestroyEscapeLocalScope(this, ref, result); 7054 } ThrowError__ani_env7055 ani_status ThrowError(ani_error err) 7056 { 7057 return c_api->ThrowError(this, err); 7058 } ExistUnhandledError__ani_env7059 ani_status ExistUnhandledError(ani_boolean *result) 7060 { 7061 return c_api->ExistUnhandledError(this, result); 7062 } GetUnhandledError__ani_env7063 ani_status GetUnhandledError(ani_error *result) 7064 { 7065 return c_api->GetUnhandledError(this, result); 7066 } ResetError__ani_env7067 ani_status ResetError() 7068 { 7069 return c_api->ResetError(this); 7070 } DescribeError__ani_env7071 ani_status DescribeError() 7072 { 7073 return c_api->DescribeError(this); 7074 } Abort__ani_env7075 ani_status Abort(const char *message) 7076 { 7077 return c_api->Abort(this, message); 7078 } GetNull__ani_env7079 ani_status GetNull(ani_ref *result) 7080 { 7081 return c_api->GetNull(this, result); 7082 } GetUndefined__ani_env7083 ani_status GetUndefined(ani_ref *result) 7084 { 7085 return c_api->GetUndefined(this, result); 7086 } Reference_IsNull__ani_env7087 ani_status Reference_IsNull(ani_ref ref, ani_boolean *result) 7088 { 7089 return c_api->Reference_IsNull(this, ref, result); 7090 } Reference_IsUndefined__ani_env7091 ani_status Reference_IsUndefined(ani_ref ref, ani_boolean *result) 7092 { 7093 return c_api->Reference_IsUndefined(this, ref, result); 7094 } Reference_IsNullishValue__ani_env7095 ani_status Reference_IsNullishValue(ani_ref ref, ani_boolean *result) 7096 { 7097 return c_api->Reference_IsNullishValue(this, ref, result); 7098 } Reference_Equals__ani_env7099 ani_status Reference_Equals(ani_ref ref0, ani_ref ref1, ani_boolean *result) 7100 { 7101 return c_api->Reference_Equals(this, ref0, ref1, result); 7102 } Reference_StrictEquals__ani_env7103 ani_status Reference_StrictEquals(ani_ref ref0, ani_ref ref1, ani_boolean *result) 7104 { 7105 return c_api->Reference_StrictEquals(this, ref0, ref1, result); 7106 } String_NewUTF16__ani_env7107 ani_status String_NewUTF16(const uint16_t *utf16_string, ani_size utf16_size, ani_string *result) 7108 { 7109 return c_api->String_NewUTF16(this, utf16_string, utf16_size, result); 7110 } String_GetUTF16Size__ani_env7111 ani_status String_GetUTF16Size(ani_string string, ani_size *result) 7112 { 7113 return c_api->String_GetUTF16Size(this, string, result); 7114 } String_GetUTF16__ani_env7115 ani_status String_GetUTF16(ani_string string, uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result) 7116 { 7117 return c_api->String_GetUTF16(this, string, utf16_buffer, utf16_buffer_size, result); 7118 } String_GetUTF16SubString__ani_env7119 ani_status String_GetUTF16SubString(ani_string string, ani_size substr_offset, ani_size substr_size, 7120 uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result) 7121 { 7122 return c_api->String_GetUTF16SubString(this, string, substr_offset, substr_size, utf16_buffer, 7123 utf16_buffer_size, result); 7124 } String_NewUTF8__ani_env7125 ani_status String_NewUTF8(const char *utf8_string, ani_size utf8_size, ani_string *result) 7126 { 7127 return c_api->String_NewUTF8(this, utf8_string, utf8_size, result); 7128 } String_GetUTF8Size__ani_env7129 ani_status String_GetUTF8Size(ani_string string, ani_size *result) 7130 { 7131 return c_api->String_GetUTF8Size(this, string, result); 7132 } String_GetUTF8__ani_env7133 ani_status String_GetUTF8(ani_string string, char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result) 7134 { 7135 return c_api->String_GetUTF8(this, string, utf8_buffer, utf8_buffer_size, result); 7136 } String_GetUTF8SubString__ani_env7137 ani_status String_GetUTF8SubString(ani_string string, ani_size substr_offset, ani_size substr_size, 7138 char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result) 7139 { 7140 return c_api->String_GetUTF8SubString(this, string, substr_offset, substr_size, utf8_buffer, utf8_buffer_size, 7141 result); 7142 } String_GetCritical__ani_env7143 ani_status String_GetCritical(ani_string string, uint32_t *result_string_type, const void **result_data, 7144 ani_size *result_size) // result_string_type - string type utf16/utf8, etc 7145 { 7146 return c_api->String_GetCritical(this, string, result_string_type, result_data, result_size); 7147 } String_ReleaseCritical__ani_env7148 ani_status String_ReleaseCritical(ani_string string, const void *data) 7149 { 7150 return c_api->String_ReleaseCritical(this, string, data); 7151 } StringLiteral_NewUTF16__ani_env7152 ani_status StringLiteral_NewUTF16(const uint16_t *utf16_string, ani_size utf16_size, ani_stringliteral *result) 7153 { 7154 return c_api->StringLiteral_NewUTF16(this, utf16_string, utf16_size, result); 7155 } StringLiteral_GetUTF16Size__ani_env7156 ani_status StringLiteral_GetUTF16Size(ani_stringliteral string, ani_size *result) 7157 { 7158 return c_api->StringLiteral_GetUTF16Size(this, string, result); 7159 } StringLiteral_GetUTF16__ani_env7160 ani_status StringLiteral_GetUTF16(ani_stringliteral string, uint16_t *utf16_buffer, ani_size utf16_buffer_size, 7161 ani_size *result) 7162 { 7163 return c_api->StringLiteral_GetUTF16(this, string, utf16_buffer, utf16_buffer_size, result); 7164 } StringLiteral_GetUTF16SubString__ani_env7165 ani_status StringLiteral_GetUTF16SubString(ani_stringliteral string, ani_size substr_offset, ani_size substr_size, 7166 uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result) 7167 { 7168 return c_api->StringLiteral_GetUTF16SubString(this, string, substr_offset, substr_size, utf16_buffer, 7169 utf16_buffer_size, result); 7170 } StringLiteral_NewUTF8__ani_env7171 ani_status StringLiteral_NewUTF8(const char *utf8_string, ani_size utf8_size, ani_stringliteral *result) 7172 { 7173 return c_api->StringLiteral_NewUTF8(this, utf8_string, utf8_size, result); 7174 } StringLiteral_GetUTF8Size__ani_env7175 ani_status StringLiteral_GetUTF8Size(ani_stringliteral string, ani_size *result) 7176 { 7177 return c_api->StringLiteral_GetUTF8Size(this, string, result); 7178 } StringLiteral_GetUTF8__ani_env7179 ani_status StringLiteral_GetUTF8(ani_stringliteral string, char *utf8_buffer, ani_size utf8_buffer_size, 7180 ani_size *result) 7181 { 7182 return c_api->StringLiteral_GetUTF8(this, string, utf8_buffer, utf8_buffer_size, result); 7183 } StringLiteral_GetUTF8SubString__ani_env7184 ani_status StringLiteral_GetUTF8SubString(ani_stringliteral string, ani_size substr_offset, ani_size substr_size, 7185 char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result) 7186 { 7187 return c_api->StringLiteral_GetUTF8SubString(this, string, substr_offset, substr_size, utf8_buffer, 7188 utf8_buffer_size, result); 7189 } StringLiteral_GetCritical__ani_env7190 ani_status StringLiteral_GetCritical(ani_stringliteral string, uint32_t *result_string_type, 7191 const void **result_data, 7192 ani_size *result_size) // result_string_type - string type utf16/utf8, etc 7193 { 7194 return c_api->StringLiteral_GetCritical(this, string, result_string_type, result_data, result_size); 7195 } StringLiteral_ReleaseCritical__ani_env7196 ani_status StringLiteral_ReleaseCritical(ani_stringliteral string, const void *data) 7197 { 7198 return c_api->StringLiteral_ReleaseCritical(this, string, data); 7199 } FixedArray_GetLength__ani_env7200 ani_status FixedArray_GetLength(ani_fixedarray array, ani_size *result) 7201 { 7202 return c_api->FixedArray_GetLength(this, array, result); 7203 } FixedArray_New_Boolean__ani_env7204 ani_status FixedArray_New_Boolean(ani_size length, ani_fixedarray_boolean *result) 7205 { 7206 return c_api->FixedArray_New_Boolean(this, length, result); 7207 } FixedArray_New_Char__ani_env7208 ani_status FixedArray_New_Char(ani_size length, ani_fixedarray_char *result) 7209 { 7210 return c_api->FixedArray_New_Char(this, length, result); 7211 } FixedArray_New_Byte__ani_env7212 ani_status FixedArray_New_Byte(ani_size length, ani_fixedarray_byte *result) 7213 { 7214 return c_api->FixedArray_New_Byte(this, length, result); 7215 } FixedArray_New_Short__ani_env7216 ani_status FixedArray_New_Short(ani_size length, ani_fixedarray_short *result) 7217 { 7218 return c_api->FixedArray_New_Short(this, length, result); 7219 } FixedArray_New_Int__ani_env7220 ani_status FixedArray_New_Int(ani_size length, ani_fixedarray_int *result) 7221 { 7222 return c_api->FixedArray_New_Int(this, length, result); 7223 } FixedArray_New_Long__ani_env7224 ani_status FixedArray_New_Long(ani_size length, ani_fixedarray_long *result) 7225 { 7226 return c_api->FixedArray_New_Long(this, length, result); 7227 } FixedArray_New_Float__ani_env7228 ani_status FixedArray_New_Float(ani_size length, ani_fixedarray_float *result) 7229 { 7230 return c_api->FixedArray_New_Float(this, length, result); 7231 } FixedArray_New_Double__ani_env7232 ani_status FixedArray_New_Double(ani_size length, ani_fixedarray_double *result) 7233 { 7234 return c_api->FixedArray_New_Double(this, length, result); 7235 } FixedArray_GetRegion_Boolean__ani_env7236 ani_status FixedArray_GetRegion_Boolean(ani_fixedarray_boolean array, ani_size offset, ani_size length, 7237 ani_boolean *native_buffer) 7238 { 7239 return c_api->FixedArray_GetRegion_Boolean(this, array, offset, length, native_buffer); 7240 } FixedArray_GetRegion_Char__ani_env7241 ani_status FixedArray_GetRegion_Char(ani_fixedarray_char array, ani_size offset, ani_size length, 7242 ani_char *native_buffer) 7243 { 7244 return c_api->FixedArray_GetRegion_Char(this, array, offset, length, native_buffer); 7245 } FixedArray_GetRegion_Byte__ani_env7246 ani_status FixedArray_GetRegion_Byte(ani_fixedarray_byte array, ani_size offset, ani_size length, 7247 ani_byte *native_buffer) 7248 { 7249 return c_api->FixedArray_GetRegion_Byte(this, array, offset, length, native_buffer); 7250 } FixedArray_GetRegion_Short__ani_env7251 ani_status FixedArray_GetRegion_Short(ani_fixedarray_short array, ani_size offset, ani_size length, 7252 ani_short *native_buffer) 7253 { 7254 return c_api->FixedArray_GetRegion_Short(this, array, offset, length, native_buffer); 7255 } FixedArray_GetRegion_Int__ani_env7256 ani_status FixedArray_GetRegion_Int(ani_fixedarray_int array, ani_size offset, ani_size length, 7257 ani_int *native_buffer) 7258 { 7259 return c_api->FixedArray_GetRegion_Int(this, array, offset, length, native_buffer); 7260 } FixedArray_GetRegion_Long__ani_env7261 ani_status FixedArray_GetRegion_Long(ani_fixedarray_long array, ani_size offset, ani_size length, 7262 ani_long *native_buffer) 7263 { 7264 return c_api->FixedArray_GetRegion_Long(this, array, offset, length, native_buffer); 7265 } FixedArray_GetRegion_Float__ani_env7266 ani_status FixedArray_GetRegion_Float(ani_fixedarray_float array, ani_size offset, ani_size length, 7267 ani_float *native_buffer) 7268 { 7269 return c_api->FixedArray_GetRegion_Float(this, array, offset, length, native_buffer); 7270 } FixedArray_GetRegion_Double__ani_env7271 ani_status FixedArray_GetRegion_Double(ani_fixedarray_double array, ani_size offset, ani_size length, 7272 ani_double *native_buffer) 7273 { 7274 return c_api->FixedArray_GetRegion_Double(this, array, offset, length, native_buffer); 7275 } FixedArray_SetRegion_Boolean__ani_env7276 ani_status FixedArray_SetRegion_Boolean(ani_fixedarray_boolean array, ani_size offset, ani_size length, 7277 const ani_boolean *native_buffer) 7278 { 7279 return c_api->FixedArray_SetRegion_Boolean(this, array, offset, length, native_buffer); 7280 } FixedArray_SetRegion_Char__ani_env7281 ani_status FixedArray_SetRegion_Char(ani_fixedarray_char array, ani_size offset, ani_size length, 7282 const ani_char *native_buffer) 7283 { 7284 return c_api->FixedArray_SetRegion_Char(this, array, offset, length, native_buffer); 7285 } FixedArray_SetRegion_Byte__ani_env7286 ani_status FixedArray_SetRegion_Byte(ani_fixedarray_byte array, ani_size offset, ani_size length, 7287 const ani_byte *native_buffer) 7288 { 7289 return c_api->FixedArray_SetRegion_Byte(this, array, offset, length, native_buffer); 7290 } FixedArray_SetRegion_Short__ani_env7291 ani_status FixedArray_SetRegion_Short(ani_fixedarray_short array, ani_size offset, ani_size length, 7292 const ani_short *native_buffer) 7293 { 7294 return c_api->FixedArray_SetRegion_Short(this, array, offset, length, native_buffer); 7295 } FixedArray_SetRegion_Int__ani_env7296 ani_status FixedArray_SetRegion_Int(ani_fixedarray_int array, ani_size offset, ani_size length, 7297 const ani_int *native_buffer) 7298 { 7299 return c_api->FixedArray_SetRegion_Int(this, array, offset, length, native_buffer); 7300 } FixedArray_SetRegion_Long__ani_env7301 ani_status FixedArray_SetRegion_Long(ani_fixedarray_long array, ani_size offset, ani_size length, 7302 const ani_long *native_buffer) 7303 { 7304 return c_api->FixedArray_SetRegion_Long(this, array, offset, length, native_buffer); 7305 } FixedArray_SetRegion_Float__ani_env7306 ani_status FixedArray_SetRegion_Float(ani_fixedarray_float array, ani_size offset, ani_size length, 7307 const ani_float *native_buffer) 7308 { 7309 return c_api->FixedArray_SetRegion_Float(this, array, offset, length, native_buffer); 7310 } FixedArray_SetRegion_Double__ani_env7311 ani_status FixedArray_SetRegion_Double(ani_fixedarray_double array, ani_size offset, ani_size length, 7312 const ani_double *native_buffer) 7313 { 7314 return c_api->FixedArray_SetRegion_Double(this, array, offset, length, native_buffer); 7315 } FixedArray_Pin__ani_env7316 ani_status FixedArray_Pin(ani_fixedarray primitive_array, void **result) 7317 { 7318 return c_api->FixedArray_Pin(this, primitive_array, result); 7319 } FixedArray_Unpin__ani_env7320 ani_status FixedArray_Unpin(ani_fixedarray primitive_array, void *data) 7321 { 7322 return c_api->FixedArray_Unpin(this, primitive_array, data); 7323 } FixedArray_New_Ref__ani_env7324 ani_status FixedArray_New_Ref(ani_size length, ani_ref *initial_array, ani_fixedarray_ref *result) 7325 { 7326 return c_api->FixedArray_New_Ref(this, length, initial_array, result); 7327 } FixedArray_Set_Ref__ani_env7328 ani_status FixedArray_Set_Ref(ani_fixedarray_ref array, ani_size index, ani_ref ref) 7329 { 7330 return c_api->FixedArray_Set_Ref(this, array, index, ref); 7331 } FixedArray_Get_Ref__ani_env7332 ani_status FixedArray_Get_Ref(ani_fixedarray_ref array, ani_size index, ani_ref *result) 7333 { 7334 return c_api->FixedArray_Get_Ref(this, array, index, result); 7335 } Enum_GetEnumValueByName__ani_env7336 ani_status Enum_GetEnumValueByName(ani_enum enm, const char *name, ani_enum_value *result) 7337 { 7338 return c_api->Enum_GetEnumValueByName(this, enm, name, result); 7339 } Enum_GetEnumValueByIndex__ani_env7340 ani_status Enum_GetEnumValueByIndex(ani_enum enm, ani_size index, ani_enum_value *result) 7341 { 7342 return c_api->Enum_GetEnumValueByIndex(this, enm, index, result); 7343 } EnumValue_GetEnum__ani_env7344 ani_status EnumValue_GetEnum(ani_enum_value enum_value, ani_enum *result) 7345 { 7346 return c_api->EnumValue_GetEnum(this, enum_value, result); 7347 } EnumValue_GetValue__ani_env7348 ani_status EnumValue_GetValue(ani_enum_value enum_value, ani_object *result) 7349 { 7350 return c_api->EnumValue_GetValue(this, enum_value, result); 7351 } EnumValue_GetName__ani_env7352 ani_status EnumValue_GetName(ani_enum_value enum_value, ani_string *result) 7353 { 7354 return c_api->EnumValue_GetName(this, enum_value, result); 7355 } EnumValue_GetIndex__ani_env7356 ani_status EnumValue_GetIndex(ani_enum_value enum_value, ani_size *result) 7357 { 7358 return c_api->EnumValue_GetIndex(this, enum_value, result); 7359 } FunctionalObject_Call__ani_env7360 ani_status FunctionalObject_Call(ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result) 7361 { 7362 return c_api->FunctionalObject_Call(this, fn, argc, argv, result); 7363 } Variable_SetValue_Boolean__ani_env7364 ani_status Variable_SetValue_Boolean(ani_variable variable, ani_boolean value) 7365 { 7366 return c_api->Variable_SetValue_Boolean(this, variable, value); 7367 } Variable_SetValue_Char__ani_env7368 ani_status Variable_SetValue_Char(ani_variable variable, ani_char value) 7369 { 7370 return c_api->Variable_SetValue_Char(this, variable, value); 7371 } Variable_SetValue_Byte__ani_env7372 ani_status Variable_SetValue_Byte(ani_variable variable, ani_byte value) 7373 { 7374 return c_api->Variable_SetValue_Byte(this, variable, value); 7375 } Variable_SetValue_Short__ani_env7376 ani_status Variable_SetValue_Short(ani_variable variable, ani_short value) 7377 { 7378 return c_api->Variable_SetValue_Short(this, variable, value); 7379 } Variable_SetValue_Int__ani_env7380 ani_status Variable_SetValue_Int(ani_variable variable, ani_int value) 7381 { 7382 return c_api->Variable_SetValue_Int(this, variable, value); 7383 } Variable_SetValue_Long__ani_env7384 ani_status Variable_SetValue_Long(ani_variable variable, ani_long value) 7385 { 7386 return c_api->Variable_SetValue_Long(this, variable, value); 7387 } Variable_SetValue_Float__ani_env7388 ani_status Variable_SetValue_Float(ani_variable variable, ani_float value) 7389 { 7390 return c_api->Variable_SetValue_Float(this, variable, value); 7391 } Variable_SetValue_Double__ani_env7392 ani_status Variable_SetValue_Double(ani_variable variable, ani_double value) 7393 { 7394 return c_api->Variable_SetValue_Double(this, variable, value); 7395 } Variable_SetValue_Ref__ani_env7396 ani_status Variable_SetValue_Ref(ani_variable variable, ani_ref value) 7397 { 7398 return c_api->Variable_SetValue_Ref(this, variable, value); 7399 } Variable_GetValue_Boolean__ani_env7400 ani_status Variable_GetValue_Boolean(ani_variable variable, ani_boolean *result) 7401 { 7402 return c_api->Variable_GetValue_Boolean(this, variable, result); 7403 } Variable_GetValue_Char__ani_env7404 ani_status Variable_GetValue_Char(ani_variable variable, ani_char *result) 7405 { 7406 return c_api->Variable_GetValue_Char(this, variable, result); 7407 } Variable_GetValue_Byte__ani_env7408 ani_status Variable_GetValue_Byte(ani_variable variable, ani_byte *result) 7409 { 7410 return c_api->Variable_GetValue_Byte(this, variable, result); 7411 } Variable_GetValue_Short__ani_env7412 ani_status Variable_GetValue_Short(ani_variable variable, ani_short *result) 7413 { 7414 return c_api->Variable_GetValue_Short(this, variable, result); 7415 } Variable_GetValue_Int__ani_env7416 ani_status Variable_GetValue_Int(ani_variable variable, ani_int *result) 7417 { 7418 return c_api->Variable_GetValue_Int(this, variable, result); 7419 } Variable_GetValue_Long__ani_env7420 ani_status Variable_GetValue_Long(ani_variable variable, ani_long *result) 7421 { 7422 return c_api->Variable_GetValue_Long(this, variable, result); 7423 } Variable_GetValue_Float__ani_env7424 ani_status Variable_GetValue_Float(ani_variable variable, ani_float *result) 7425 { 7426 return c_api->Variable_GetValue_Float(this, variable, result); 7427 } Variable_GetValue_Double__ani_env7428 ani_status Variable_GetValue_Double(ani_variable variable, ani_double *result) 7429 { 7430 return c_api->Variable_GetValue_Double(this, variable, result); 7431 } Variable_GetValue_Ref__ani_env7432 ani_status Variable_GetValue_Ref(ani_variable variable, ani_ref *result) 7433 { 7434 return c_api->Variable_GetValue_Ref(this, variable, result); 7435 } Function_Call_Boolean__ani_env7436 ani_status Function_Call_Boolean(ani_function fn, ani_boolean *result, ...) 7437 { 7438 va_list args; 7439 va_start(args, result); 7440 ani_status status = c_api->Function_Call_Boolean_V(this, fn, result, args); 7441 va_end(args); 7442 return status; 7443 } Function_Call_Boolean_A__ani_env7444 ani_status Function_Call_Boolean_A(ani_function fn, ani_boolean *result, const ani_value *args) 7445 { 7446 return c_api->Function_Call_Boolean_A(this, fn, result, args); 7447 } Function_Call_Boolean_V__ani_env7448 ani_status Function_Call_Boolean_V(ani_function fn, ani_boolean *result, va_list args) 7449 { 7450 return c_api->Function_Call_Boolean_V(this, fn, result, args); 7451 } Function_Call_Char__ani_env7452 ani_status Function_Call_Char(ani_function fn, ani_char *result, ...) 7453 { 7454 va_list args; 7455 va_start(args, result); 7456 ani_status status = c_api->Function_Call_Char_V(this, fn, result, args); 7457 va_end(args); 7458 return status; 7459 } Function_Call_Char_A__ani_env7460 ani_status Function_Call_Char_A(ani_function fn, ani_char *result, const ani_value *args) 7461 { 7462 return c_api->Function_Call_Char_A(this, fn, result, args); 7463 } Function_Call_Char_V__ani_env7464 ani_status Function_Call_Char_V(ani_function fn, ani_char *result, va_list args) 7465 { 7466 return c_api->Function_Call_Char_V(this, fn, result, args); 7467 } Function_Call_Byte__ani_env7468 ani_status Function_Call_Byte(ani_function fn, ani_byte *result, ...) 7469 { 7470 va_list args; 7471 va_start(args, result); 7472 ani_status status = c_api->Function_Call_Byte_V(this, fn, result, args); 7473 va_end(args); 7474 return status; 7475 } Function_Call_Byte_A__ani_env7476 ani_status Function_Call_Byte_A(ani_function fn, ani_byte *result, const ani_value *args) 7477 { 7478 return c_api->Function_Call_Byte_A(this, fn, result, args); 7479 } Function_Call_Byte_V__ani_env7480 ani_status Function_Call_Byte_V(ani_function fn, ani_byte *result, va_list args) 7481 { 7482 return c_api->Function_Call_Byte_V(this, fn, result, args); 7483 } Function_Call_Short__ani_env7484 ani_status Function_Call_Short(ani_function fn, ani_short *result, ...) 7485 { 7486 va_list args; 7487 va_start(args, result); 7488 ani_status status = c_api->Function_Call_Short_V(this, fn, result, args); 7489 va_end(args); 7490 return status; 7491 } Function_Call_Short_A__ani_env7492 ani_status Function_Call_Short_A(ani_function fn, ani_short *result, const ani_value *args) 7493 { 7494 return c_api->Function_Call_Short_A(this, fn, result, args); 7495 } Function_Call_Short_V__ani_env7496 ani_status Function_Call_Short_V(ani_function fn, ani_short *result, va_list args) 7497 { 7498 return c_api->Function_Call_Short_V(this, fn, result, args); 7499 } Function_Call_Int__ani_env7500 ani_status Function_Call_Int(ani_function fn, ani_int *result, ...) 7501 { 7502 va_list args; 7503 va_start(args, result); 7504 ani_status status = c_api->Function_Call_Int_V(this, fn, result, args); 7505 va_end(args); 7506 return status; 7507 } Function_Call_Int_A__ani_env7508 ani_status Function_Call_Int_A(ani_function fn, ani_int *result, const ani_value *args) 7509 { 7510 return c_api->Function_Call_Int_A(this, fn, result, args); 7511 } Function_Call_Int_V__ani_env7512 ani_status Function_Call_Int_V(ani_function fn, ani_int *result, va_list args) 7513 { 7514 return c_api->Function_Call_Int_V(this, fn, result, args); 7515 } Function_Call_Long__ani_env7516 ani_status Function_Call_Long(ani_function fn, ani_long *result, ...) 7517 { 7518 va_list args; 7519 va_start(args, result); 7520 ani_status status = c_api->Function_Call_Long_V(this, fn, result, args); 7521 va_end(args); 7522 return status; 7523 } Function_Call_Long_A__ani_env7524 ani_status Function_Call_Long_A(ani_function fn, ani_long *result, const ani_value *args) 7525 { 7526 return c_api->Function_Call_Long_A(this, fn, result, args); 7527 } Function_Call_Long_V__ani_env7528 ani_status Function_Call_Long_V(ani_function fn, ani_long *result, va_list args) 7529 { 7530 return c_api->Function_Call_Long_V(this, fn, result, args); 7531 } Function_Call_Float__ani_env7532 ani_status Function_Call_Float(ani_function fn, ani_float *result, ...) 7533 { 7534 va_list args; 7535 va_start(args, result); 7536 ani_status status = c_api->Function_Call_Float_V(this, fn, result, args); 7537 va_end(args); 7538 return status; 7539 } Function_Call_Float_A__ani_env7540 ani_status Function_Call_Float_A(ani_function fn, ani_float *result, const ani_value *args) 7541 { 7542 return c_api->Function_Call_Float_A(this, fn, result, args); 7543 } Function_Call_Float_V__ani_env7544 ani_status Function_Call_Float_V(ani_function fn, ani_float *result, va_list args) 7545 { 7546 return c_api->Function_Call_Float_V(this, fn, result, args); 7547 } Function_Call_Double__ani_env7548 ani_status Function_Call_Double(ani_function fn, ani_double *result, ...) 7549 { 7550 va_list args; 7551 va_start(args, result); 7552 ani_status status = c_api->Function_Call_Double_V(this, fn, result, args); 7553 va_end(args); 7554 return status; 7555 } Function_Call_Double_A__ani_env7556 ani_status Function_Call_Double_A(ani_function fn, ani_double *result, const ani_value *args) 7557 { 7558 return c_api->Function_Call_Double_A(this, fn, result, args); 7559 } Function_Call_Double_V__ani_env7560 ani_status Function_Call_Double_V(ani_function fn, ani_double *result, va_list args) 7561 { 7562 return c_api->Function_Call_Double_V(this, fn, result, args); 7563 } Function_Call_Ref__ani_env7564 ani_status Function_Call_Ref(ani_function fn, ani_ref *result, ...) 7565 { 7566 va_list args; 7567 va_start(args, result); 7568 ani_status status = c_api->Function_Call_Ref_V(this, fn, result, args); 7569 va_end(args); 7570 return status; 7571 } Function_Call_Ref_A__ani_env7572 ani_status Function_Call_Ref_A(ani_function fn, ani_ref *result, const ani_value *args) 7573 { 7574 return c_api->Function_Call_Ref_A(this, fn, result, args); 7575 } Function_Call_Ref_V__ani_env7576 ani_status Function_Call_Ref_V(ani_function fn, ani_ref *result, va_list args) 7577 { 7578 return c_api->Function_Call_Ref_V(this, fn, result, args); 7579 } Function_Call_Void__ani_env7580 ani_status Function_Call_Void(ani_function fn, ...) 7581 { 7582 va_list args; 7583 va_start(args, fn); 7584 ani_status status = c_api->Function_Call_Void_V(this, fn, args); 7585 va_end(args); 7586 return status; 7587 } Function_Call_Void_A__ani_env7588 ani_status Function_Call_Void_A(ani_function fn, const ani_value *args) 7589 { 7590 return c_api->Function_Call_Void_A(this, fn, args); 7591 } Function_Call_Void_V__ani_env7592 ani_status Function_Call_Void_V(ani_function fn, va_list args) 7593 { 7594 return c_api->Function_Call_Void_V(this, fn, args); 7595 } Class_GetPartial__ani_env7596 ani_status Class_GetPartial(ani_class cls, ani_class *result) 7597 { 7598 return c_api->Class_GetPartial(this, cls, result); 7599 } Class_GetRequired__ani_env7600 ani_status Class_GetRequired(ani_class cls, ani_class *result) 7601 { 7602 return c_api->Class_GetRequired(this, cls, result); 7603 } Class_GetField__ani_env7604 ani_status Class_GetField(ani_class cls, const char *name, ani_field *result) 7605 { 7606 return c_api->Class_GetField(this, cls, name, result); 7607 } Class_GetStaticField__ani_env7608 ani_status Class_GetStaticField(ani_class cls, const char *name, ani_static_field *result) 7609 { 7610 return c_api->Class_GetStaticField(this, cls, name, result); 7611 } Class_GetMethod__ani_env7612 ani_status Class_GetMethod(ani_class cls, const char *name, const char *signature, ani_method *result) 7613 { 7614 return c_api->Class_GetMethod(this, cls, name, signature, result); 7615 } Class_GetStaticMethod__ani_env7616 ani_status Class_GetStaticMethod(ani_class cls, const char *name, const char *signature, ani_static_method *result) 7617 { 7618 return c_api->Class_GetStaticMethod(this, cls, name, signature, result); 7619 } Class_GetProperty__ani_env7620 ani_status Class_GetProperty(ani_class cls, const char *name, ani_property *result) 7621 { 7622 return c_api->Class_GetProperty(this, cls, name, result); 7623 } Class_GetSetter__ani_env7624 ani_status Class_GetSetter(ani_class cls, const char *name, ani_method *result) 7625 { 7626 return c_api->Class_GetSetter(this, cls, name, result); 7627 } Class_GetGetter__ani_env7628 ani_status Class_GetGetter(ani_class cls, const char *name, ani_method *result) 7629 { 7630 return c_api->Class_GetGetter(this, cls, name, result); 7631 } Class_GetIndexableGetter__ani_env7632 ani_status Class_GetIndexableGetter(ani_class cls, const char *signature, ani_method *result) 7633 { 7634 return c_api->Class_GetIndexableGetter(this, cls, signature, result); 7635 } Class_GetIndexableSetter__ani_env7636 ani_status Class_GetIndexableSetter(ani_class cls, const char *signature, ani_method *result) 7637 { 7638 return c_api->Class_GetIndexableSetter(this, cls, signature, result); 7639 } Class_GetIterator__ani_env7640 ani_status Class_GetIterator(ani_class cls, ani_method *result) 7641 { 7642 return c_api->Class_GetIterator(this, cls, result); 7643 } Class_GetStaticField_Boolean__ani_env7644 ani_status Class_GetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean *result) 7645 { 7646 return c_api->Class_GetStaticField_Boolean(this, cls, field, result); 7647 } Class_GetStaticField_Char__ani_env7648 ani_status Class_GetStaticField_Char(ani_class cls, ani_static_field field, ani_char *result) 7649 { 7650 return c_api->Class_GetStaticField_Char(this, cls, field, result); 7651 } Class_GetStaticField_Byte__ani_env7652 ani_status Class_GetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte *result) 7653 { 7654 return c_api->Class_GetStaticField_Byte(this, cls, field, result); 7655 } Class_GetStaticField_Short__ani_env7656 ani_status Class_GetStaticField_Short(ani_class cls, ani_static_field field, ani_short *result) 7657 { 7658 return c_api->Class_GetStaticField_Short(this, cls, field, result); 7659 } Class_GetStaticField_Int__ani_env7660 ani_status Class_GetStaticField_Int(ani_class cls, ani_static_field field, ani_int *result) 7661 { 7662 return c_api->Class_GetStaticField_Int(this, cls, field, result); 7663 } Class_GetStaticField_Long__ani_env7664 ani_status Class_GetStaticField_Long(ani_class cls, ani_static_field field, ani_long *result) 7665 { 7666 return c_api->Class_GetStaticField_Long(this, cls, field, result); 7667 } Class_GetStaticField_Float__ani_env7668 ani_status Class_GetStaticField_Float(ani_class cls, ani_static_field field, ani_float *result) 7669 { 7670 return c_api->Class_GetStaticField_Float(this, cls, field, result); 7671 } Class_GetStaticField_Double__ani_env7672 ani_status Class_GetStaticField_Double(ani_class cls, ani_static_field field, ani_double *result) 7673 { 7674 return c_api->Class_GetStaticField_Double(this, cls, field, result); 7675 } Class_GetStaticField_Ref__ani_env7676 ani_status Class_GetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref *result) 7677 { 7678 return c_api->Class_GetStaticField_Ref(this, cls, field, result); 7679 } Class_SetStaticField_Boolean__ani_env7680 ani_status Class_SetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean value) 7681 { 7682 return c_api->Class_SetStaticField_Boolean(this, cls, field, value); 7683 } Class_SetStaticField_Char__ani_env7684 ani_status Class_SetStaticField_Char(ani_class cls, ani_static_field field, ani_char value) 7685 { 7686 return c_api->Class_SetStaticField_Char(this, cls, field, value); 7687 } Class_SetStaticField_Byte__ani_env7688 ani_status Class_SetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte value) 7689 { 7690 return c_api->Class_SetStaticField_Byte(this, cls, field, value); 7691 } Class_SetStaticField_Short__ani_env7692 ani_status Class_SetStaticField_Short(ani_class cls, ani_static_field field, ani_short value) 7693 { 7694 return c_api->Class_SetStaticField_Short(this, cls, field, value); 7695 } Class_SetStaticField_Int__ani_env7696 ani_status Class_SetStaticField_Int(ani_class cls, ani_static_field field, ani_int value) 7697 { 7698 return c_api->Class_SetStaticField_Int(this, cls, field, value); 7699 } Class_SetStaticField_Long__ani_env7700 ani_status Class_SetStaticField_Long(ani_class cls, ani_static_field field, ani_long value) 7701 { 7702 return c_api->Class_SetStaticField_Long(this, cls, field, value); 7703 } Class_SetStaticField_Float__ani_env7704 ani_status Class_SetStaticField_Float(ani_class cls, ani_static_field field, ani_float value) 7705 { 7706 return c_api->Class_SetStaticField_Float(this, cls, field, value); 7707 } Class_SetStaticField_Double__ani_env7708 ani_status Class_SetStaticField_Double(ani_class cls, ani_static_field field, ani_double value) 7709 { 7710 return c_api->Class_SetStaticField_Double(this, cls, field, value); 7711 } Class_SetStaticField_Ref__ani_env7712 ani_status Class_SetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref value) 7713 { 7714 return c_api->Class_SetStaticField_Ref(this, cls, field, value); 7715 } Class_GetStaticFieldByName_Boolean__ani_env7716 ani_status Class_GetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean *result) 7717 { 7718 return c_api->Class_GetStaticFieldByName_Boolean(this, cls, name, result); 7719 } Class_GetStaticFieldByName_Char__ani_env7720 ani_status Class_GetStaticFieldByName_Char(ani_class cls, const char *name, ani_char *result) 7721 { 7722 return c_api->Class_GetStaticFieldByName_Char(this, cls, name, result); 7723 } Class_GetStaticFieldByName_Byte__ani_env7724 ani_status Class_GetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte *result) 7725 { 7726 return c_api->Class_GetStaticFieldByName_Byte(this, cls, name, result); 7727 } Class_GetStaticFieldByName_Short__ani_env7728 ani_status Class_GetStaticFieldByName_Short(ani_class cls, const char *name, ani_short *result) 7729 { 7730 return c_api->Class_GetStaticFieldByName_Short(this, cls, name, result); 7731 } Class_GetStaticFieldByName_Int__ani_env7732 ani_status Class_GetStaticFieldByName_Int(ani_class cls, const char *name, ani_int *result) 7733 { 7734 return c_api->Class_GetStaticFieldByName_Int(this, cls, name, result); 7735 } Class_GetStaticFieldByName_Long__ani_env7736 ani_status Class_GetStaticFieldByName_Long(ani_class cls, const char *name, ani_long *result) 7737 { 7738 return c_api->Class_GetStaticFieldByName_Long(this, cls, name, result); 7739 } Class_GetStaticFieldByName_Float__ani_env7740 ani_status Class_GetStaticFieldByName_Float(ani_class cls, const char *name, ani_float *result) 7741 { 7742 return c_api->Class_GetStaticFieldByName_Float(this, cls, name, result); 7743 } Class_GetStaticFieldByName_Double__ani_env7744 ani_status Class_GetStaticFieldByName_Double(ani_class cls, const char *name, ani_double *result) 7745 { 7746 return c_api->Class_GetStaticFieldByName_Double(this, cls, name, result); 7747 } Class_GetStaticFieldByName_Ref__ani_env7748 ani_status Class_GetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref *result) 7749 { 7750 return c_api->Class_GetStaticFieldByName_Ref(this, cls, name, result); 7751 } Class_SetStaticFieldByName_Boolean__ani_env7752 ani_status Class_SetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean value) 7753 { 7754 return c_api->Class_SetStaticFieldByName_Boolean(this, cls, name, value); 7755 } Class_SetStaticFieldByName_Char__ani_env7756 ani_status Class_SetStaticFieldByName_Char(ani_class cls, const char *name, ani_char value) 7757 { 7758 return c_api->Class_SetStaticFieldByName_Char(this, cls, name, value); 7759 } Class_SetStaticFieldByName_Byte__ani_env7760 ani_status Class_SetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte value) 7761 { 7762 return c_api->Class_SetStaticFieldByName_Byte(this, cls, name, value); 7763 } Class_SetStaticFieldByName_Short__ani_env7764 ani_status Class_SetStaticFieldByName_Short(ani_class cls, const char *name, ani_short value) 7765 { 7766 return c_api->Class_SetStaticFieldByName_Short(this, cls, name, value); 7767 } Class_SetStaticFieldByName_Int__ani_env7768 ani_status Class_SetStaticFieldByName_Int(ani_class cls, const char *name, ani_int value) 7769 { 7770 return c_api->Class_SetStaticFieldByName_Int(this, cls, name, value); 7771 } Class_SetStaticFieldByName_Long__ani_env7772 ani_status Class_SetStaticFieldByName_Long(ani_class cls, const char *name, ani_long value) 7773 { 7774 return c_api->Class_SetStaticFieldByName_Long(this, cls, name, value); 7775 } Class_SetStaticFieldByName_Float__ani_env7776 ani_status Class_SetStaticFieldByName_Float(ani_class cls, const char *name, ani_float value) 7777 { 7778 return c_api->Class_SetStaticFieldByName_Float(this, cls, name, value); 7779 } Class_SetStaticFieldByName_Double__ani_env7780 ani_status Class_SetStaticFieldByName_Double(ani_class cls, const char *name, ani_double value) 7781 { 7782 return c_api->Class_SetStaticFieldByName_Double(this, cls, name, value); 7783 } Class_SetStaticFieldByName_Ref__ani_env7784 ani_status Class_SetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref value) 7785 { 7786 return c_api->Class_SetStaticFieldByName_Ref(this, cls, name, value); 7787 } Class_CallStaticMethod_Boolean__ani_env7788 ani_status Class_CallStaticMethod_Boolean(ani_class cls, ani_static_method method, ani_boolean *result, ...) 7789 { 7790 va_list args; 7791 va_start(args, result); 7792 ani_status status = c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args); 7793 va_end(args); 7794 return status; 7795 } Class_CallStaticMethod_Boolean_A__ani_env7796 ani_status Class_CallStaticMethod_Boolean_A(ani_class cls, ani_static_method method, ani_boolean *result, 7797 const ani_value *args) 7798 { 7799 return c_api->Class_CallStaticMethod_Boolean_A(this, cls, method, result, args); 7800 } Class_CallStaticMethod_Boolean_V__ani_env7801 ani_status Class_CallStaticMethod_Boolean_V(ani_class cls, ani_static_method method, ani_boolean *result, 7802 va_list args) 7803 { 7804 return c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args); 7805 } Class_CallStaticMethod_Char__ani_env7806 ani_status Class_CallStaticMethod_Char(ani_class cls, ani_static_method method, ani_char *result, ...) 7807 { 7808 va_list args; 7809 va_start(args, result); 7810 ani_status status = c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args); 7811 va_end(args); 7812 return status; 7813 } Class_CallStaticMethod_Char_A__ani_env7814 ani_status Class_CallStaticMethod_Char_A(ani_class cls, ani_static_method method, ani_char *result, 7815 const ani_value *args) 7816 { 7817 return c_api->Class_CallStaticMethod_Char_A(this, cls, method, result, args); 7818 } Class_CallStaticMethod_Char_V__ani_env7819 ani_status Class_CallStaticMethod_Char_V(ani_class cls, ani_static_method method, ani_char *result, va_list args) 7820 { 7821 return c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args); 7822 } Class_CallStaticMethod_Byte__ani_env7823 ani_status Class_CallStaticMethod_Byte(ani_class cls, ani_static_method method, ani_byte *result, ...) 7824 { 7825 va_list args; 7826 va_start(args, result); 7827 ani_status status = c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args); 7828 va_end(args); 7829 return status; 7830 } Class_CallStaticMethod_Byte_A__ani_env7831 ani_status Class_CallStaticMethod_Byte_A(ani_class cls, ani_static_method method, ani_byte *result, 7832 const ani_value *args) 7833 { 7834 return c_api->Class_CallStaticMethod_Byte_A(this, cls, method, result, args); 7835 } Class_CallStaticMethod_Byte_V__ani_env7836 ani_status Class_CallStaticMethod_Byte_V(ani_class cls, ani_static_method method, ani_byte *result, va_list args) 7837 { 7838 return c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args); 7839 } Class_CallStaticMethod_Short__ani_env7840 ani_status Class_CallStaticMethod_Short(ani_class cls, ani_static_method method, ani_short *result, ...) 7841 { 7842 va_list args; 7843 va_start(args, result); 7844 ani_status status = c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args); 7845 va_end(args); 7846 return status; 7847 } Class_CallStaticMethod_Short_A__ani_env7848 ani_status Class_CallStaticMethod_Short_A(ani_class cls, ani_static_method method, ani_short *result, 7849 const ani_value *args) 7850 { 7851 return c_api->Class_CallStaticMethod_Short_A(this, cls, method, result, args); 7852 } Class_CallStaticMethod_Short_V__ani_env7853 ani_status Class_CallStaticMethod_Short_V(ani_class cls, ani_static_method method, ani_short *result, va_list args) 7854 { 7855 return c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args); 7856 } Class_CallStaticMethod_Int__ani_env7857 ani_status Class_CallStaticMethod_Int(ani_class cls, ani_static_method method, ani_int *result, ...) 7858 { 7859 va_list args; 7860 va_start(args, result); 7861 ani_status status = c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args); 7862 va_end(args); 7863 return status; 7864 } Class_CallStaticMethod_Int_A__ani_env7865 ani_status Class_CallStaticMethod_Int_A(ani_class cls, ani_static_method method, ani_int *result, 7866 const ani_value *args) 7867 { 7868 return c_api->Class_CallStaticMethod_Int_A(this, cls, method, result, args); 7869 } Class_CallStaticMethod_Int_V__ani_env7870 ani_status Class_CallStaticMethod_Int_V(ani_class cls, ani_static_method method, ani_int *result, va_list args) 7871 { 7872 return c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args); 7873 } Class_CallStaticMethod_Long__ani_env7874 ani_status Class_CallStaticMethod_Long(ani_class cls, ani_static_method method, ani_long *result, ...) 7875 { 7876 va_list args; 7877 va_start(args, result); 7878 ani_status status = c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args); 7879 va_end(args); 7880 return status; 7881 } Class_CallStaticMethod_Long_A__ani_env7882 ani_status Class_CallStaticMethod_Long_A(ani_class cls, ani_static_method method, ani_long *result, 7883 const ani_value *args) 7884 { 7885 return c_api->Class_CallStaticMethod_Long_A(this, cls, method, result, args); 7886 } Class_CallStaticMethod_Long_V__ani_env7887 ani_status Class_CallStaticMethod_Long_V(ani_class cls, ani_static_method method, ani_long *result, va_list args) 7888 { 7889 return c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args); 7890 } Class_CallStaticMethod_Float__ani_env7891 ani_status Class_CallStaticMethod_Float(ani_class cls, ani_static_method method, ani_float *result, ...) 7892 { 7893 va_list args; 7894 va_start(args, result); 7895 ani_status status = c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args); 7896 va_end(args); 7897 return status; 7898 } Class_CallStaticMethod_Float_A__ani_env7899 ani_status Class_CallStaticMethod_Float_A(ani_class cls, ani_static_method method, ani_float *result, 7900 const ani_value *args) 7901 { 7902 return c_api->Class_CallStaticMethod_Float_A(this, cls, method, result, args); 7903 } Class_CallStaticMethod_Float_V__ani_env7904 ani_status Class_CallStaticMethod_Float_V(ani_class cls, ani_static_method method, ani_float *result, va_list args) 7905 { 7906 return c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args); 7907 } Class_CallStaticMethod_Double__ani_env7908 ani_status Class_CallStaticMethod_Double(ani_class cls, ani_static_method method, ani_double *result, ...) 7909 { 7910 va_list args; 7911 va_start(args, result); 7912 ani_status status = c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args); 7913 va_end(args); 7914 return status; 7915 } Class_CallStaticMethod_Double_A__ani_env7916 ani_status Class_CallStaticMethod_Double_A(ani_class cls, ani_static_method method, ani_double *result, 7917 const ani_value *args) 7918 { 7919 return c_api->Class_CallStaticMethod_Double_A(this, cls, method, result, args); 7920 } Class_CallStaticMethod_Double_V__ani_env7921 ani_status Class_CallStaticMethod_Double_V(ani_class cls, ani_static_method method, ani_double *result, 7922 va_list args) 7923 { 7924 return c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args); 7925 } Class_CallStaticMethod_Ref__ani_env7926 ani_status Class_CallStaticMethod_Ref(ani_class cls, ani_static_method method, ani_ref *result, ...) 7927 { 7928 va_list args; 7929 va_start(args, result); 7930 ani_status status = c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args); 7931 va_end(args); 7932 return status; 7933 } Class_CallStaticMethod_Ref_A__ani_env7934 ani_status Class_CallStaticMethod_Ref_A(ani_class cls, ani_static_method method, ani_ref *result, 7935 const ani_value *args) 7936 { 7937 return c_api->Class_CallStaticMethod_Ref_A(this, cls, method, result, args); 7938 } Class_CallStaticMethod_Ref_V__ani_env7939 ani_status Class_CallStaticMethod_Ref_V(ani_class cls, ani_static_method method, ani_ref *result, va_list args) 7940 { 7941 return c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args); 7942 } Class_CallStaticMethod_Void__ani_env7943 ani_status Class_CallStaticMethod_Void(ani_class cls, ani_static_method method, ...) 7944 { 7945 va_list args; 7946 va_start(args, method); 7947 ani_status status = c_api->Class_CallStaticMethod_Void_V(this, cls, method, args); 7948 va_end(args); 7949 return status; 7950 } Class_CallStaticMethod_Void_A__ani_env7951