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 // Logger interface: 36 // typedef void (*ani_logger)(FILE *stream, int log_level, const char *component, const char *message); 37 // ani_option: 38 // 'option': "--logger" 39 // 'extra': ani_logger 40 // where 'log_level' can have the following values: 41 #define ANI_LOGLEVEL_FATAL 0 42 #define ANI_LOGLEVEL_ERROR 1 43 #define ANI_LOGLEVEL_WARNING 2 44 #define ANI_LOGLEVEL_INFO 3 45 #define ANI_LOGLEVEL_DEBUG 4 46 47 typedef size_t ani_size; 48 49 // Primitive types: 50 typedef uint8_t ani_boolean; 51 typedef uint16_t ani_char; 52 typedef int8_t ani_byte; 53 typedef int16_t ani_short; 54 typedef int32_t ani_int; 55 typedef int64_t ani_long; 56 typedef float ani_float; 57 typedef double ani_double; 58 59 // Reference types: 60 #ifdef __cplusplus 61 class __ani_ref {}; 62 class __ani_module : public __ani_ref {}; 63 class __ani_namespace : public __ani_ref {}; 64 class __ani_object : public __ani_ref {}; 65 class __ani_fn_object : public __ani_object {}; 66 class __ani_enum_item : public __ani_object {}; 67 class __ani_error : public __ani_object {}; 68 class __ani_tuple_value : public __ani_object {}; 69 class __ani_type : public __ani_object {}; 70 class __ani_arraybuffer : public __ani_object {}; 71 class __ani_string : public __ani_object {}; 72 class __ani_class : public __ani_type {}; 73 class __ani_enum : public __ani_type {}; 74 class __ani_union : public __ani_type {}; 75 class __ani_array : public __ani_object {}; 76 class __ani_array_boolean : public __ani_array {}; 77 class __ani_array_char : public __ani_array {}; 78 class __ani_array_byte : public __ani_array {}; 79 class __ani_array_short : public __ani_array {}; 80 class __ani_array_int : public __ani_array {}; 81 class __ani_array_long : public __ani_array {}; 82 class __ani_array_float : public __ani_array {}; 83 class __ani_array_double : public __ani_array {}; 84 class __ani_array_ref : public __ani_array {}; 85 typedef __ani_ref *ani_ref; 86 typedef __ani_module *ani_module; 87 typedef __ani_namespace *ani_namespace; 88 typedef __ani_object *ani_object; 89 typedef __ani_fn_object *ani_fn_object; 90 typedef __ani_enum_item *ani_enum_item; 91 typedef __ani_error *ani_error; 92 typedef __ani_tuple_value *ani_tuple_value; 93 typedef __ani_type *ani_type; 94 typedef __ani_arraybuffer *ani_arraybuffer; 95 typedef __ani_string *ani_string; 96 typedef __ani_class *ani_class; 97 typedef __ani_enum *ani_enum; 98 typedef __ani_union *ani_union; 99 typedef __ani_array *ani_array; 100 typedef __ani_array_boolean *ani_array_boolean; 101 typedef __ani_array_char *ani_array_char; 102 typedef __ani_array_byte *ani_array_byte; 103 typedef __ani_array_short *ani_array_short; 104 typedef __ani_array_int *ani_array_int; 105 typedef __ani_array_long *ani_array_long; 106 typedef __ani_array_float *ani_array_float; 107 typedef __ani_array_double *ani_array_double; 108 typedef __ani_array_ref *ani_array_ref; 109 #else // __cplusplus 110 struct __ani_ref; 111 typedef struct __ani_ref *ani_ref; 112 typedef ani_ref ani_module; 113 typedef ani_ref ani_namespace; 114 typedef ani_ref ani_object; 115 typedef ani_object ani_fn_object; 116 typedef ani_object ani_enum_item; 117 typedef ani_object ani_error; 118 typedef ani_object ani_tuple_value; 119 typedef ani_object ani_type; 120 typedef ani_object ani_arraybuffer; 121 typedef ani_object ani_string; 122 typedef ani_type ani_class; 123 typedef ani_type ani_enum; 124 typedef ani_type ani_union; 125 typedef ani_object ani_array; 126 typedef ani_array ani_array_boolean; 127 typedef ani_array ani_array_char; 128 typedef ani_array ani_array_byte; 129 typedef ani_array ani_array_short; 130 typedef ani_array ani_array_int; 131 typedef ani_array ani_array_long; 132 typedef ani_array ani_array_float; 133 typedef ani_array ani_array_double; 134 typedef ani_array ani_array_ref; 135 #endif // __cplusplus 136 137 struct __ani_wref; 138 typedef struct __ani_wref *ani_wref; 139 140 struct __ani_variable; 141 typedef struct __ani_variable *ani_variable; 142 143 struct __ani_function; 144 typedef struct __ani_function *ani_function; 145 146 struct __ani_field; 147 typedef struct __ani_field *ani_field; 148 149 struct __ani_static_field; 150 typedef struct __ani_satic_field *ani_static_field; 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_resolver; 159 typedef struct __ani_resolver *ani_resolver; 160 161 typedef void (*ani_finalizer)(void *data, void *hint); 162 163 typedef union { 164 ani_boolean z; 165 ani_char c; 166 ani_byte b; 167 ani_short s; 168 ani_int i; 169 ani_long l; 170 ani_float f; 171 ani_double d; 172 ani_ref r; 173 } ani_value; 174 175 typedef struct { 176 const char *name; 177 const char *signature; 178 const void *pointer; 179 } ani_native_function; 180 181 #ifdef __cplusplus 182 typedef struct __ani_vm ani_vm; 183 typedef struct __ani_env ani_env; 184 #else 185 typedef const struct __ani_vm_api *ani_vm; 186 typedef const struct __ani_interaction_api *ani_env; 187 #endif 188 189 typedef enum { 190 ANI_OK, 191 ANI_ERROR, 192 ANI_INVALID_ARGS, 193 ANI_INVALID_TYPE, 194 ANI_INVALID_DESCRIPTOR, 195 ANI_INCORRECT_REF, 196 ANI_PENDING_ERROR, 197 ANI_NOT_FOUND, 198 ANI_ALREADY_BINDED, 199 ANI_OUT_OF_REF, 200 ANI_OUT_OF_MEMORY, 201 ANI_OUT_OF_RANGE, 202 ANI_BUFFER_TO_SMALL, 203 ANI_INVALID_VERSION, 204 ANI_AMBIGUOUS, 205 // NOTE: Add necessary status codes 206 } ani_status; 207 208 typedef struct { 209 const char *option; 210 void *extra; 211 } ani_option; 212 213 typedef struct { 214 size_t nr_options; 215 const ani_option *options; 216 } ani_options; 217 218 struct __ani_vm_api { 219 void *reserved0; 220 void *reserved1; 221 void *reserved2; 222 void *reserved3; 223 224 ani_status (*DestroyVM)(ani_vm *vm); 225 ani_status (*GetEnv)(ani_vm *vm, uint32_t version, ani_env **result); 226 ani_status (*AttachCurrentThread)(ani_vm *vm, const ani_options *options, uint32_t version, ani_env **result); 227 ani_status (*DetachCurrentThread)(ani_vm *vm); 228 }; 229 230 #define ANI_EXPORT __attribute__((visibility("default"))) 231 232 #ifdef __cplusplus 233 extern "C" { 234 #endif 235 236 ANI_EXPORT ani_status ANI_CreateVM(const ani_options *options, uint32_t version, ani_vm **result); 237 ANI_EXPORT ani_status ANI_GetCreatedVMs(ani_vm **vms_buffer, ani_size vms_buffer_length, ani_size *result); 238 239 // Prototypes of exported functions for a shared library. 240 ANI_EXPORT ani_status ANI_Constructor(ani_vm *vm, uint32_t *result); 241 ANI_EXPORT ani_status ANI_Destructor(ani_vm *vm); 242 243 #ifdef __cplusplus 244 } 245 #endif 246 247 struct __ani_interaction_api { 248 void *reserved0; 249 void *reserved1; 250 void *reserved2; 251 void *reserved3; 252 253 /** 254 * @brief Retrieves the version information. 255 * 256 * This function retrieves the version information and stores it in the result parameter. 257 * 258 * @param[in] env A pointer to the environment structure. 259 * @param[out] result A pointer to a variable where the version information will be stored. 260 * @return Returns a status code of type `ani_status` indicating success or failure. 261 */ 262 ani_status (*GetVersion)(ani_env *env, uint32_t *result); 263 264 /** 265 * @brief Retrieves the Virtual Machine (VM) instance. 266 * 267 * This function retrieves the VM instance and stores it in the result parameter. 268 * 269 * @param[in] env A pointer to the environment structure. 270 * @param[out] result A pointer to the VM instance to be populated. 271 * @return Returns a status code of type `ani_status` indicating success or failure. 272 */ 273 ani_status (*GetVM)(ani_env *env, ani_vm **result); 274 275 /** 276 * @brief Creates a new object of a specified class using a constructor method. 277 * 278 * This function creates a new object of the given class and calls the specified constructor method with variadic 279 * arguments. 280 * 281 * @param[in] env A pointer to the environment structure. 282 * @param[in] cls The class of the object to create. 283 * @param[in] method The constructor method to invoke. 284 * @param[in] ... Variadic arguments to pass to the constructor method. 285 * @param[out] result A pointer to store the object return value. 286 * @return Returns a status code of type `ani_status` indicating success or failure. 287 */ 288 ani_status (*Object_New)(ani_env *env, ani_class cls, ani_method method, ani_object *result, ...); 289 290 /** 291 * @brief Creates a new object of a specified class using a constructor method (array-based). 292 * 293 * This function creates a new object of the given class and calls the specified constructor method with arguments 294 * provided in an array. 295 * 296 * @param[in] env A pointer to the environment structure. 297 * @param[in] cls The class of the object to create. 298 * @param[in] method The constructor method to invoke. 299 * @param[in] args An array of arguments to pass to the constructor method. 300 * @param[out] result A pointer to store the object return value. 301 * @return Returns a status code of type `ani_status` indicating success or failure. 302 */ 303 ani_status (*Object_New_A)(ani_env *env, ani_class cls, ani_method method, ani_object *result, 304 const ani_value *args); 305 306 /** 307 * @brief Creates a new object of a specified class using a constructor method (variadic arguments). 308 * 309 * This function creates a new object of the given class and calls the specified constructor method with a `va_list` 310 * of arguments. 311 * 312 * @param[in] env A pointer to the environment structure. 313 * @param[in] cls The class of the object to create. 314 * @param[in] method The constructor method to invoke. 315 * @param[in] args A `va_list` of arguments to pass to the constructor method. 316 * @param[out] result A pointer to store the object return value. 317 * @return Returns a status code of type `ani_status` indicating success or failure. 318 */ 319 ani_status (*Object_New_V)(ani_env *env, ani_class cls, ani_method method, ani_object *result, va_list args); 320 321 /** 322 * @brief Retrieves the type of a given object. 323 * 324 * This function retrieves the type of the specified object. 325 * 326 * @param[in] env A pointer to the environment structure. 327 * @param[in] object The object whose type is to be retrieved. 328 * @param[out] result A pointer to store the retrieved type. 329 * @return Returns a status code of type `ani_status` indicating success or failure. 330 */ 331 ani_status (*Object_GetType)(ani_env *env, ani_object object, ani_type *result); 332 333 /** 334 * @brief Checks if an object is an instance of a specified type. 335 * 336 * This function checks whether the given object is an instance of the specified type. 337 * 338 * @param[in] env A pointer to the environment structure. 339 * @param[in] object The object to check. 340 * @param[in] type The type to compare against. 341 * @param[out] result A pointer to store the boolean result (true if the object is an instance of the type, false 342 * otherwise). 343 * @return Returns a status code of type `ani_status` indicating success or failure. 344 */ 345 ani_status (*Object_InstanceOf)(ani_env *env, ani_object object, ani_type type, ani_boolean *result); 346 347 /** 348 * @brief Retrieves the superclass of a specified type. 349 * 350 * This function retrieves the superclass of a given type and stores it in the result parameter. 351 * 352 * @param[in] env A pointer to the environment structure. 353 * @param[in] type The type for which to retrieve the superclass. 354 * @param[out] result A pointer to the superclass to be populated. 355 * @return Returns a status code of type `ani_status` indicating success or failure. 356 */ 357 ani_status (*Type_GetSuperClass)(ani_env *env, ani_type type, ani_class *result); 358 359 /** 360 * @brief Determines if one type is assignable from another. 361 * 362 * This function checks if a type is assignable from another and stores the result in the output parameter. 363 * 364 * @param[in] env A pointer to the environment structure. 365 * @param[in] from_type The source type. 366 * @param[in] to_type The target type. 367 * @param[out] result A pointer to a boolean indicating assignability. 368 * @return Returns a status code of type `ani_status` indicating success or failure. 369 */ 370 ani_status (*Type_IsAssignableFrom)(ani_env *env, ani_type from_type, ani_type to_type, ani_boolean *result); 371 372 /** 373 * @brief Finds a module by its descriptor. 374 * 375 * This function locates a module based on its descriptor and stores it in the result parameter. 376 * 377 * @param[in] env A pointer to the environment structure. 378 * @param[in] module_descriptor The descriptor of the module to find. 379 * @param[out] result A pointer to the module to be populated. 380 * @return Returns a status code of type `ani_status` indicating success or failure. 381 */ 382 ani_status (*FindModule)(ani_env *env, const char *module_descriptor, ani_module *result); 383 384 /** 385 * @brief Finds a namespace by its descriptor. 386 * 387 * This function locates a namespace based on its descriptor and stores it in the result parameter. 388 * 389 * @param[in] env A pointer to the environment structure. 390 * @param[in] namespace_descriptor The descriptor of the namespace to find. 391 * @param[out] result A pointer to the namespace to be populated. 392 * @return Returns a status code of type `ani_status` indicating success or failure. 393 */ 394 ani_status (*FindNamespace)(ani_env *env, const char *namespace_descriptor, ani_namespace *result); 395 396 /** 397 * @brief Finds a class by its descriptor. 398 * 399 * This function locates a class based on its descriptor and stores it in the result parameter. 400 * 401 * @param[in] env A pointer to the environment structure. 402 * @param[in] class_descriptor The descriptor of the class to find. 403 * @param[out] result A pointer to the class to be populated. 404 * @return Returns a status code of type `ani_status` indicating success or failure. 405 */ 406 ani_status (*FindClass)(ani_env *env, const char *class_descriptor, ani_class *result); 407 408 /** 409 * @brief Finds an enum by its descriptor. 410 * 411 * This function locates an enum based on its descriptor and stores it in the result parameter. 412 * 413 * @param[in] env A pointer to the environment structure. 414 * @param[in] enum_descriptor The descriptor of the enum to find. 415 * @param[out] result A pointer to the enum to be populated. 416 * @return Returns a status code of type `ani_status` indicating success or failure. 417 */ 418 ani_status (*FindEnum)(ani_env *env, const char *enum_descriptor, ani_enum *result); 419 420 /** 421 * @brief Finds a namespace within a module by its descriptor. 422 * 423 * This function locates a namespace within the specified module based on its descriptor. 424 * 425 * @param[in] env A pointer to the environment structure. 426 * @param[in] module The module to search within. 427 * @param[in] namespace_descriptor The descriptor of the namespace to find. 428 * @param[out] result A pointer to the namespace object. 429 * @return Returns a status code of type `ani_status` indicating success or failure. 430 */ 431 ani_status (*Module_FindNamespace)(ani_env *env, ani_module module, const char *namespace_descriptor, 432 ani_namespace *result); 433 434 /** 435 * @brief Finds a class within a module by its descriptor. 436 * 437 * This function locates a class within the specified module based on its descriptor. 438 * 439 * @param[in] env A pointer to the environment structure. 440 * @param[in] module The module to search within. 441 * @param[in] class_descriptor The descriptor of the class to find. 442 * @param[out] result A pointer to the class object. 443 * @return Returns a status code of type `ani_status` indicating success or failure. 444 */ 445 ani_status (*Module_FindClass)(ani_env *env, ani_module module, const char *class_descriptor, ani_class *result); 446 447 /** 448 * @brief Finds an enum within a module by its descriptor. 449 * 450 * This function locates an enum within the specified module based on its descriptor. 451 * 452 * @param[in] env A pointer to the environment structure. 453 * @param[in] module The module to search within. 454 * @param[in] enum_descriptor The descriptor of the enum to find. 455 * @param[out] result A pointer to the enum object. 456 * @return Returns a status code of type `ani_status` indicating success or failure. 457 */ 458 ani_status (*Module_FindEnum)(ani_env *env, ani_module module, const char *enum_descriptor, ani_enum *result); 459 460 /** 461 * @brief Finds a function within a module by its name and signature. 462 * 463 * This function locates a function within the specified module based on its name and signature. 464 * 465 * @param[in] env A pointer to the environment structure. 466 * @param[in] module The module to search within. 467 * @param[in] name The name of the function to find. 468 * @param[in] signature The signature of the function to find. 469 * @param[out] result A pointer to the function object. 470 * @return Returns a status code of type `ani_status` indicating success or failure. 471 */ 472 ani_status (*Module_FindFunction)(ani_env *env, ani_module module, const char *name, const char *signature, 473 ani_function *result); 474 475 /** 476 * @brief Finds a variable within a module by its name. 477 * 478 * This function locates a variable within the specified module based on its name. 479 * 480 * @param[in] env A pointer to the environment structure. 481 * @param[in] module The module to search within. 482 * @param[in] name The name of the variable to find. 483 * @param[out] result A pointer to the variable object. 484 * @return Returns a status code of type `ani_status` indicating success or failure. 485 */ 486 ani_status (*Module_FindVariable)(ani_env *env, ani_module module, const char *name, ani_variable *result); 487 488 /** 489 * @brief Finds a namespace within another namespace by its descriptor. 490 * 491 * This function locates a namespace within the specified parent namespace based on its descriptor. 492 * 493 * @param[in] env A pointer to the environment structure. 494 * @param[in] ns The parent namespace to search within. 495 * @param[in] namespace_descriptor The descriptor of the namespace to find. 496 * @param[out] result A pointer to the namespace object. 497 * @return Returns a status code of type `ani_status` indicating success or failure. 498 */ 499 ani_status (*Namespace_FindNamespace)(ani_env *env, ani_namespace ns, const char *namespace_descriptor, 500 ani_namespace *result); 501 502 /** 503 * @brief Finds a class within a namespace by its descriptor. 504 * 505 * This function locates a class within the specified namespace based on its descriptor. 506 * 507 * @param[in] env A pointer to the environment structure. 508 * @param[in] ns The namespace to search within. 509 * @param[in] class_descriptor The descriptor of the class to find. 510 * @param[out] result A pointer to the class object. 511 * @return Returns a status code of type `ani_status` indicating success or failure. 512 */ 513 ani_status (*Namespace_FindClass)(ani_env *env, ani_namespace ns, const char *class_descriptor, ani_class *result); 514 515 /** 516 * @brief Finds an enum within a namespace by its descriptor. 517 * 518 * This function locates an enum within the specified namespace based on its descriptor. 519 * 520 * @param[in] env A pointer to the environment structure. 521 * @param[in] ns The namespace to search within. 522 * @param[in] enum_descriptor The descriptor of the enum to find. 523 * @param[out] result A pointer to the enum object. 524 * @return Returns a status code of type `ani_status` indicating success or failure. 525 */ 526 ani_status (*Namespace_FindEnum)(ani_env *env, ani_namespace ns, const char *enum_descriptor, ani_enum *result); 527 528 /** 529 * @brief Finds a function within a namespace by its name and signature. 530 * 531 * This function locates a function within the specified namespace based on its name and signature. 532 * 533 * @param[in] env A pointer to the environment structure. 534 * @param[in] ns The namespace to search within. 535 * @param[in] name The name of the function to find. 536 * @param[in] signature The signature of the function to find. 537 * @param[out] result A pointer to the function object. 538 * @return Returns a status code of type `ani_status` indicating success or failure. 539 */ 540 ani_status (*Namespace_FindFunction)(ani_env *env, ani_namespace ns, const char *name, const char *signature, 541 ani_function *result); 542 543 /** 544 * @brief Finds a variable within a namespace by its name. 545 * 546 * This function locates a variable within the specified namespace based on its name. 547 * 548 * @param[in] env A pointer to the environment structure. 549 * @param[in] ns The namespace to search within. 550 * @param[in] name The name of the variable to find. 551 * @param[out] result A pointer to the variable object. 552 * @return Returns a status code of type `ani_status` indicating success or failure. 553 */ 554 ani_status (*Namespace_FindVariable)(ani_env *env, ani_namespace ns, const char *name, ani_variable *result); 555 556 /** 557 * @brief Binds native functions to a module. 558 * 559 * This function binds an array of native functions to the specified module. 560 * 561 * @param[in] env A pointer to the environment structure. 562 * @param[in] module The module to which the native functions will be bound. 563 * @param[in] functions A pointer to an array of native functions to bind. 564 * @param[in] nr_functions The number of native functions in the array. 565 * @return Returns a status code of type `ani_status` indicating success or failure. 566 */ 567 ani_status (*Module_BindNativeFunctions)(ani_env *env, ani_module module, const ani_native_function *functions, 568 ani_size nr_functions); 569 570 /** 571 * @brief Binds native functions to a namespace. 572 * 573 * This function binds an array of native functions to the specified namespace. 574 * 575 * @param[in] env A pointer to the environment structure. 576 * @param[in] ns The namespace to which the native functions will be bound. 577 * @param[in] functions A pointer to an array of native functions to bind. 578 * @param[in] nr_functions The number of native functions in the array. 579 * @return Returns a status code of type `ani_status` indicating success or failure. 580 */ 581 ani_status (*Namespace_BindNativeFunctions)(ani_env *env, ani_namespace ns, const ani_native_function *functions, 582 ani_size nr_functions); 583 584 /** 585 * @brief Binds native methods to a class. 586 * 587 * This function binds an array of native methods to the specified class. 588 * 589 * @param[in] env A pointer to the environment structure. 590 * @param[in] cls The class to which the native methods will be bound. 591 * @param[in] methods A pointer to an array of native methods to bind. 592 * @param[in] nr_methods The number of native methods in the array. 593 * @return Returns a status code of type `ani_status` indicating success or failure. 594 */ 595 ani_status (*Class_BindNativeMethods)(ani_env *env, ani_class cls, const ani_native_function *methods, 596 ani_size nr_methods); 597 598 /** 599 * @brief Deletes a local reference. 600 * 601 * This function deletes a specified local reference to free up resources. 602 * 603 * @param[in] env A pointer to the environment structure. 604 * @param[in] ref The reference to be deleted. 605 * @return Returns a status code of type `ani_status` indicating success or failure. 606 */ 607 ani_status (*Reference_Delete)(ani_env *env, ani_ref ref); 608 609 /** 610 * @brief Ensures enough local references are available. 611 * 612 * This function checks and ensures that the specified number of local references can be created. 613 * 614 * @param[in] env A pointer to the environment structure. 615 * @param[in] nr_refs The number of local references to ensure availability for. 616 * @return Returns a status code of type `ani_status` indicating success or failure. 617 */ 618 ani_status (*EnsureEnoughReferences)(ani_env *env, ani_size nr_refs); 619 620 /** 621 * @brief Creates a new local scope for references. 622 * 623 * This function creates a local scope for references with a specified capacity. 624 * 625 * @param[in] env A pointer to the environment structure. 626 * @param[in] nr_refs The maximum number of references that can be created in this scope. 627 * @return Returns a status code of type `ani_status` indicating success or failure. 628 */ 629 ani_status (*CreateLocalScope)(ani_env *env, ani_size nr_refs); 630 631 /** 632 * @brief Destroys the current local scope. 633 * 634 * This function destroys the current local scope and frees all references within it. 635 * 636 * @param[in] env A pointer to the environment structure. 637 * @return Returns a status code of type `ani_status` indicating success or failure. 638 */ 639 ani_status (*DestroyLocalScope)(ani_env *env); 640 641 /** 642 * @brief Creates a new escape local scope. 643 * 644 * This function creates a local scope for references with escape functionality, allowing objects to escape this 645 * scope. 646 * 647 * @param[in] env A pointer to the environment structure. 648 * @param[in] nr_refs The maximum number of references that can be created in this scope. 649 * @return Returns a status code of type `ani_status` indicating success or failure. 650 */ 651 ani_status (*CreateEscapeLocalScope)(ani_env *env, ani_size nr_refs); 652 653 /** 654 * @brief Destroys the current escape local scope. 655 * 656 * This function destroys the current escape local scope and allows escaping references to be retrieved. 657 * 658 * @param[in] env A pointer to the environment structure. 659 * @param[in] ref The reference to be escaped from the current scope. 660 * @param[out] result A pointer to the resulting reference that has escaped the scope. 661 * @return Returns a status code of type `ani_status` indicating success or failure. 662 */ 663 ani_status (*DestroyEscapeLocalScope)(ani_env *env, ani_ref ref, ani_ref *result); 664 665 /** 666 * @brief Throws an error. 667 * 668 * This function throws the specified error in the current environment. 669 * 670 * @param[in] env A pointer to the environment structure. 671 * @param[in] err The error to throw. 672 * @return Returns a status code of type `ani_status` indicating success or failure. 673 */ 674 ani_status (*ThrowError)(ani_env *env, ani_error err); 675 676 /** 677 * @brief Checks if there are unhandled errors. 678 * 679 * This function determines if there are unhandled errors in the current environment. 680 * 681 * @param[in] env A pointer to the environment structure. 682 * @param[out] result A pointer to a boolean indicating if unhandled errors exist. 683 * @return Returns a status code of type `ani_status` indicating success or failure. 684 */ 685 ani_status (*ExistUnhandledError)(ani_env *env, ani_boolean *result); 686 687 /** 688 * @brief Retrieves the current unhandled error. 689 * 690 * This function fetches the unhandled error in the environment. 691 * 692 * @param[in] env A pointer to the environment structure. 693 * @param[out] result A pointer to store the unhandled error. 694 * @return Returns a status code of type `ani_status` indicating success or failure. 695 */ 696 ani_status (*GetUnhandledError)(ani_env *env, ani_error *result); 697 698 /** 699 * @brief Resets the current error state. 700 * 701 * This function clears the error state in the current environment. 702 * 703 * @param[in] env A pointer to the environment structure. 704 * @return Returns a status code of type `ani_status` indicating success or failure. 705 */ 706 ani_status (*ResetError)(ani_env *env); 707 708 /** 709 * @brief Provides a description of the current error. 710 * 711 * This function prints the stack trace or other debug information for the current error. 712 * 713 * @param[in] env A pointer to the environment structure. 714 * @return Returns a status code of type `ani_status` indicating success or failure. 715 */ 716 ani_status (*DescribeError)(ani_env *env); // NOTE: Print stacktrace for debugging? 717 718 /** 719 * @brief Aborts execution with a message. 720 * 721 * This function terminates execution with the specified error message. 722 * 723 * @param[in] env A pointer to the environment structure. 724 * @param[in] message The error message to display on termination. 725 * @return Does not return; the process terminates. 726 */ 727 ani_status (*Abort)(ani_env *env, const char *message); 728 729 /** 730 * @brief Retrieves a null reference. 731 * 732 * This function provides a null reference in the specified result. 733 * 734 * @param[in] env A pointer to the environment structure. 735 * @param[out] result A pointer to store the null reference. 736 * @return Returns a status code of type `ani_status` indicating success or failure. 737 */ 738 ani_status (*GetNull)(ani_env *env, ani_ref *result); 739 740 /** 741 * @brief Retrieves an undefined reference. 742 * 743 * This function provides an undefined reference in the specified result. 744 * 745 * @param[in] env A pointer to the environment structure. 746 * @param[out] result A pointer to store the undefined reference. 747 * @return Returns a status code of type `ani_status` indicating success or failure. 748 */ 749 ani_status (*GetUndefined)(ani_env *env, ani_ref *result); 750 751 /** 752 * @brief Checks if a reference is null. 753 * 754 * This function determines if the specified reference is null. 755 * 756 * @param[in] env A pointer to the environment structure. 757 * @param[in] ref The reference to check. 758 * @param[out] result A pointer to a boolean indicating if the reference is null. 759 * @return Returns a status code of type `ani_status` indicating success or failure. 760 */ 761 ani_status (*Reference_IsNull)(ani_env *env, ani_ref ref, ani_boolean *result); 762 763 /** 764 * @brief Checks if a reference is undefined. 765 * 766 * This function determines if the specified reference is undefined. 767 * 768 * @param[in] env A pointer to the environment structure. 769 * @param[in] ref The reference to check. 770 * @param[out] result A pointer to a boolean indicating if the reference is undefined. 771 * @return Returns a status code of type `ani_status` indicating success or failure. 772 */ 773 ani_status (*Reference_IsUndefined)(ani_env *env, ani_ref ref, ani_boolean *result); 774 775 /** 776 * @brief Checks if a reference is nullish value (null or undefined). 777 * 778 * This function determines if the specified reference is either null or undefined. 779 * 780 * @param[in] env A pointer to the environment structure. 781 * @param[in] ref The reference to check. 782 * @param[out] result A pointer to a boolean indicating if the reference is nullish value. 783 * @return Returns a status code of type `ani_status` indicating success or failure. 784 */ 785 ani_status (*Reference_IsNullishValue)(ani_env *env, ani_ref ref, ani_boolean *result); 786 787 /** 788 * @brief Compares two references for equality. 789 * 790 * This function checks if two references are equal. 791 * 792 * @param[in] env A pointer to the environment structure. 793 * @param[in] ref0 The first reference to compare. 794 * @param[in] ref1 The second reference to compare. 795 * @param[out] result A pointer to a boolean indicating if the references are equal. 796 * @return Returns a status code of type `ani_status` indicating success or failure. 797 */ 798 ani_status (*Reference_Equals)(ani_env *env, ani_ref ref0, ani_ref ref1, ani_boolean *result); 799 800 /** 801 * @brief Compares two references for strict equality. 802 * 803 * This function checks if two references are strictly equal. 804 * 805 * @param[in] env A pointer to the environment structure. 806 * @param[in] ref0 The first reference to compare. 807 * @param[in] ref1 The second reference to compare. 808 * @param[out] result A pointer to a boolean indicating if the references are strictly equal. 809 * @return Returns a status code of type `ani_status` indicating success or failure. 810 */ 811 ani_status (*Reference_StrictEquals)(ani_env *env, ani_ref ref0, ani_ref ref1, ani_boolean *result); 812 813 /** 814 * @brief Creates a new UTF-16 string. 815 * 816 * This function creates a new string from the provided UTF-16 encoded data. 817 * 818 * @param[in] env A pointer to the environment structure. 819 * @param[in] utf16_string A pointer to the UTF-16 encoded string data. 820 * @param[in] utf16_size The size of the UTF-16 string in code units. 821 * @param[out] result A pointer to store the created string. 822 * @return Returns a status code of type `ani_status` indicating success or failure. 823 */ 824 ani_status (*String_NewUTF16)(ani_env *env, const uint16_t *utf16_string, ani_size utf16_size, ani_string *result); 825 826 /** 827 * @brief Retrieves the size of a UTF-16 string. 828 * 829 * This function retrieves the size (in code units) of the specified UTF-16 string. 830 * 831 * @param[in] env A pointer to the environment structure. 832 * @param[in] string The UTF-16 string to measure. 833 * @param[out] result A pointer to store the size of the string. 834 * @return Returns a status code of type `ani_status` indicating success or failure. 835 */ 836 ani_status (*String_GetUTF16Size)(ani_env *env, ani_string string, ani_size *result); 837 838 /** 839 * @brief Retrieves the UTF-16 encoded data of a string. 840 * 841 * This function copies the UTF-16 encoded data of the string into the provided buffer. 842 * 843 * @param[in] env A pointer to the environment structure. 844 * @param[in] string The string to retrieve data from. 845 * @param[out] utf16_buffer A buffer to store the UTF-16 encoded data. 846 * @param[in] utf16_buffer_size The size of the buffer in code units. 847 * @param[out] result A pointer to store the number of code units written. 848 * @return Returns a status code of type `ani_status` indicating success or failure. 849 */ 850 ani_status (*String_GetUTF16)(ani_env *env, ani_string string, uint16_t *utf16_buffer, ani_size utf16_buffer_size, 851 ani_size *result); 852 853 /** 854 * @brief Retrieves a substring of a UTF-16 string. 855 * 856 * This function copies a portion of the UTF-16 string into the provided buffer. 857 * 858 * @param[in] env A pointer to the environment structure. 859 * @param[in] string The string to retrieve data from. 860 * @param[in] substr_offset The starting offset of the substring. 861 * @param[in] substr_size The size of the substring in code units. 862 * @param[out] utf16_buffer A buffer to store the substring. 863 * @param[in] utf16_buffer_size The size of the buffer in code units. 864 * @param[out] result A pointer to store the number of code units written. 865 * @return Returns a status code of type `ani_status` indicating success or failure. 866 */ 867 ani_status (*String_GetUTF16SubString)(ani_env *env, ani_string string, ani_size substr_offset, 868 ani_size substr_size, uint16_t *utf16_buffer, ani_size utf16_buffer_size, 869 ani_size *result); 870 871 /** 872 * @brief Creates a new UTF-8 string. 873 * 874 * This function creates a new string from the provided UTF-8 encoded data. 875 * 876 * @param[in] env A pointer to the environment structure. 877 * @param[in] utf8_string A pointer to the UTF-8 encoded string data. 878 * @param[in] utf8_size The size of the UTF-8 string in bytes. 879 * @param[out] result A pointer to store the created string. 880 * @return Returns a status code of type `ani_status` indicating success or failure. 881 */ 882 ani_status (*String_NewUTF8)(ani_env *env, const char *utf8_string, ani_size utf8_size, ani_string *result); 883 884 /** 885 * @brief Retrieves the size of a UTF-8 string. 886 * 887 * This function retrieves the size (in bytes) of the specified UTF-8 string. 888 * 889 * @param[in] env A pointer to the environment structure. 890 * @param[in] string The UTF-8 string to measure. 891 * @param[out] result A pointer to store the size of the string. 892 * @return Returns a status code of type `ani_status` indicating success or failure. 893 */ 894 ani_status (*String_GetUTF8Size)(ani_env *env, ani_string string, ani_size *result); 895 896 /** 897 * @brief Retrieves the UTF-8 encoded data of a string. 898 * 899 * This function copies the UTF-8 encoded data of the string into the provided buffer. 900 * 901 * @param[in] env A pointer to the environment structure. 902 * @param[in] string The string to retrieve data from. 903 * @param[out] utf8_buffer A buffer to store the UTF-8 encoded data. 904 * @param[in] utf8_buffer_size The size of the buffer in bytes. 905 * @param[out] result A pointer to store the number of bytes written. 906 * @return Returns a status code of type `ani_status` indicating success or failure. 907 */ 908 ani_status (*String_GetUTF8)(ani_env *env, ani_string string, char *utf8_buffer, ani_size utf8_buffer_size, 909 ani_size *result); 910 911 /** 912 * @brief Retrieves a substring of a UTF-8 string. 913 * 914 * This function copies a portion of the UTF-8 string into the provided buffer. 915 * 916 * @param[in] env A pointer to the environment structure. 917 * @param[in] string The string to retrieve data from. 918 * @param[in] substr_offset The starting offset of the substring. 919 * @param[in] substr_size The size of the substring in bytes. 920 * @param[out] utf8_buffer A buffer to store the substring. 921 * @param[in] utf8_buffer_size The size of the buffer in bytes. 922 * @param[out] result A pointer to store the number of bytes written. 923 * @return Returns a status code of type `ani_status` indicating success or failure. 924 */ 925 ani_status (*String_GetUTF8SubString)(ani_env *env, ani_string string, ani_size substr_offset, ani_size substr_size, 926 char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result); 927 928 /** 929 * @brief Retrieves the length of an array. 930 * 931 * This function retrieves the length of the specified array. 932 * 933 * @param[in] env A pointer to the environment structure. 934 * @param[in] array The array whose length is to be retrieved. 935 * @param[out] result A pointer to store the length of the array. 936 * @return Returns a status code of type `ani_status` indicating success or failure. 937 */ 938 ani_status (*Array_GetLength)(ani_env *env, ani_array array, ani_size *result); 939 940 /** 941 * @brief Creates a new array of booleans. 942 * 943 * This function creates a new array of the specified length for boolean values. 944 * 945 * @param[in] env A pointer to the environment structure. 946 * @param[in] length The length of the array to be created. 947 * @param[out] result A pointer to store the created array. 948 * @return Returns a status code of type `ani_status` indicating success or failure. 949 */ 950 ani_status (*Array_New_Boolean)(ani_env *env, ani_size length, ani_array_boolean *result); 951 952 /** 953 * @brief Creates a new array of characters. 954 * 955 * This function creates a new array of the specified length for character values. 956 * 957 * @param[in] env A pointer to the environment structure. 958 * @param[in] length The length of the array to be created. 959 * @param[out] result A pointer to store the created array. 960 * @return Returns a status code of type `ani_status` indicating success or failure. 961 */ 962 ani_status (*Array_New_Char)(ani_env *env, ani_size length, ani_array_char *result); 963 964 /** 965 * @brief Creates a new array of bytes. 966 * 967 * This function creates a new array of the specified length for byte values. 968 * 969 * @param[in] env A pointer to the environment structure. 970 * @param[in] length The length of the array to be created. 971 * @param[out] result A pointer to store the created array. 972 * @return Returns a status code of type `ani_status` indicating success or failure. 973 */ 974 ani_status (*Array_New_Byte)(ani_env *env, ani_size length, ani_array_byte *result); 975 976 /** 977 * @brief Creates a new array of shorts. 978 * 979 * This function creates a new array of the specified length for short integer values. 980 * 981 * @param[in] env A pointer to the environment structure. 982 * @param[in] length The length of the array to be created. 983 * @param[out] result A pointer to store the created array. 984 * @return Returns a status code of type `ani_status` indicating success or failure. 985 */ 986 ani_status (*Array_New_Short)(ani_env *env, ani_size length, ani_array_short *result); 987 988 /** 989 * @brief Creates a new array of integers. 990 * 991 * This function creates a new array of the specified length for integer values. 992 * 993 * @param[in] env A pointer to the environment structure. 994 * @param[in] length The length of the array to be created. 995 * @param[out] result A pointer to store the created array. 996 * @return Returns a status code of type `ani_status` indicating success or failure. 997 */ 998 ani_status (*Array_New_Int)(ani_env *env, ani_size length, ani_array_int *result); 999 1000 /** 1001 * @brief Creates a new array of long integers. 1002 * 1003 * This function creates a new array of the specified length for long integer values. 1004 * 1005 * @param[in] env A pointer to the environment structure. 1006 * @param[in] length The length of the array to be created. 1007 * @param[out] result A pointer to store the created array. 1008 * @return Returns a status code of type `ani_status` indicating success or failure. 1009 */ 1010 ani_status (*Array_New_Long)(ani_env *env, ani_size length, ani_array_long *result); 1011 1012 /** 1013 * @brief Creates a new array of floats. 1014 * 1015 * This function creates a new array of the specified length for float values. 1016 * 1017 * @param[in] env A pointer to the environment structure. 1018 * @param[in] length The length of the array to be created. 1019 * @param[out] result A pointer to store the created array. 1020 * @return Returns a status code of type `ani_status` indicating success or failure. 1021 */ 1022 ani_status (*Array_New_Float)(ani_env *env, ani_size length, ani_array_float *result); 1023 1024 /** 1025 * @brief Creates a new array of doubles. 1026 * 1027 * This function creates a new array of the specified length for double values. 1028 * 1029 * @param[in] env A pointer to the environment structure. 1030 * @param[in] length The length of the array to be created. 1031 * @param[out] result A pointer to store the created array. 1032 * @return Returns a status code of type `ani_status` indicating success or failure. 1033 */ 1034 ani_status (*Array_New_Double)(ani_env *env, ani_size length, ani_array_double *result); 1035 1036 /** 1037 * @brief Retrieves a region of boolean values from an array. 1038 * 1039 * This function retrieves a portion of the specified boolean array into a native buffer. 1040 * 1041 * @param[in] env A pointer to the environment structure. 1042 * @param[in] array The array to retrieve values from. 1043 * @param[in] offset The starting offset of the region. 1044 * @param[in] length The number of elements to retrieve. 1045 * @param[out] native_buffer A buffer to store the retrieved boolean values. 1046 * @return Returns a status code of type `ani_status` indicating success or failure. 1047 */ 1048 ani_status (*Array_GetRegion_Boolean)(ani_env *env, ani_array_boolean array, ani_size offset, ani_size length, 1049 ani_boolean *native_buffer); 1050 1051 /** 1052 * @brief Retrieves a region of character values from an array. 1053 * 1054 * This function retrieves a portion of the specified character array into a native buffer. 1055 * 1056 * @param[in] env A pointer to the environment structure. 1057 * @param[in] array The array to retrieve values from. 1058 * @param[in] offset The starting offset of the region. 1059 * @param[in] length The number of elements to retrieve. 1060 * @param[out] native_buffer A buffer to store the retrieved character values. 1061 * @return Returns a status code of type `ani_status` indicating success or failure. 1062 */ 1063 ani_status (*Array_GetRegion_Char)(ani_env *env, ani_array_char array, ani_size offset, ani_size length, 1064 ani_char *native_buffer); 1065 1066 /** 1067 * @brief Retrieves a region of byte values from an array. 1068 * 1069 * This function retrieves a portion of the specified byte array into a native buffer. 1070 * 1071 * @param[in] env A pointer to the environment structure. 1072 * @param[in] array The array to retrieve values from. 1073 * @param[in] offset The starting offset of the region. 1074 * @param[in] length The number of elements to retrieve. 1075 * @param[out] native_buffer A buffer to store the retrieved byte values. 1076 * @return Returns a status code of type `ani_status` indicating success or failure. 1077 */ 1078 ani_status (*Array_GetRegion_Byte)(ani_env *env, ani_array_byte array, ani_size offset, ani_size length, 1079 ani_byte *native_buffer); 1080 1081 /** 1082 * @brief Retrieves a region of short values from an array. 1083 * 1084 * This function retrieves a portion of the specified short array into a native buffer. 1085 * 1086 * @param[in] env A pointer to the environment structure. 1087 * @param[in] array The array to retrieve values from. 1088 * @param[in] offset The starting offset of the region. 1089 * @param[in] length The number of elements to retrieve. 1090 * @param[out] native_buffer A buffer to store the retrieved short values. 1091 * @return Returns a status code of type `ani_status` indicating success or failure. 1092 */ 1093 ani_status (*Array_GetRegion_Short)(ani_env *env, ani_array_short array, ani_size offset, ani_size length, 1094 ani_short *native_buffer); 1095 1096 /** 1097 * @brief Retrieves a region of integer values from an array. 1098 * 1099 * This function retrieves a portion of the specified integer array into a native buffer. 1100 * 1101 * @param[in] env A pointer to the environment structure. 1102 * @param[in] array The array to retrieve values from. 1103 * @param[in] offset The starting offset of the region. 1104 * @param[in] length The number of elements to retrieve. 1105 * @param[out] native_buffer A buffer to store the retrieved integer values. 1106 * @return Returns a status code of type `ani_status` indicating success or failure. 1107 */ 1108 ani_status (*Array_GetRegion_Int)(ani_env *env, ani_array_int array, ani_size offset, ani_size length, 1109 ani_int *native_buffer); 1110 1111 /** 1112 * @brief Retrieves a region of long integer values from an array. 1113 * 1114 * This function retrieves a portion of the specified long integer array into a native buffer. 1115 * 1116 * @param[in] env A pointer to the environment structure. 1117 * @param[in] array The array to retrieve values from. 1118 * @param[in] offset The starting offset of the region. 1119 * @param[in] length The number of elements to retrieve. 1120 * @param[out] native_buffer A buffer to store the retrieved long integer values. 1121 * @return Returns a status code of type `ani_status` indicating success or failure. 1122 */ 1123 ani_status (*Array_GetRegion_Long)(ani_env *env, ani_array_long array, ani_size offset, ani_size length, 1124 ani_long *native_buffer); 1125 1126 /** 1127 * @brief Retrieves a region of float values from an array. 1128 * 1129 * This function retrieves a portion of the specified float array into a native buffer. 1130 * 1131 * @param[in] env A pointer to the environment structure. 1132 * @param[in] array The array to retrieve values from. 1133 * @param[in] offset The starting offset of the region. 1134 * @param[in] length The number of elements to retrieve. 1135 * @param[out] native_buffer A buffer to store the retrieved float values. 1136 * @return Returns a status code of type `ani_status` indicating success or failure. 1137 */ 1138 ani_status (*Array_GetRegion_Float)(ani_env *env, ani_array_float array, ani_size offset, ani_size length, 1139 ani_float *native_buffer); 1140 1141 /** 1142 * @brief Retrieves a region of double values from an array. 1143 * 1144 * This function retrieves a portion of the specified double array into a native buffer. 1145 * 1146 * @param[in] env A pointer to the environment structure. 1147 * @param[in] array The array to retrieve values from. 1148 * @param[in] offset The starting offset of the region. 1149 * @param[in] length The number of elements to retrieve. 1150 * @param[out] native_buffer A buffer to store the retrieved double values. 1151 * @return Returns a status code of type `ani_status` indicating success or failure. 1152 */ 1153 ani_status (*Array_GetRegion_Double)(ani_env *env, ani_array_double array, ani_size offset, ani_size length, 1154 ani_double *native_buffer); 1155 1156 /** 1157 * @brief Sets a region of boolean values in an array. 1158 * 1159 * This function sets a portion of the specified boolean array using a native buffer. 1160 * 1161 * @param[in] env A pointer to the environment structure. 1162 * @param[in] array The array to set values in. 1163 * @param[in] offset The starting offset of the region. 1164 * @param[in] length The number of elements to set. 1165 * @param[in] native_buffer A buffer containing the boolean values to set. 1166 * @return Returns a status code of type `ani_status` indicating success or failure. 1167 */ 1168 ani_status (*Array_SetRegion_Boolean)(ani_env *env, ani_array_boolean array, ani_size offset, ani_size length, 1169 const ani_boolean *native_buffer); 1170 1171 /** 1172 * @brief Sets a region of character values in an array. 1173 * 1174 * This function sets a portion of the specified character array using a native buffer. 1175 * 1176 * @param[in] env A pointer to the environment structure. 1177 * @param[in] array The array to set values in. 1178 * @param[in] offset The starting offset of the region. 1179 * @param[in] length The number of elements to set. 1180 * @param[in] native_buffer A buffer containing the character values to set. 1181 * @return Returns a status code of type `ani_status` indicating success or failure. 1182 */ 1183 ani_status (*Array_SetRegion_Char)(ani_env *env, ani_array_char array, ani_size offset, ani_size length, 1184 const ani_char *native_buffer); 1185 1186 /** 1187 * @brief Sets a region of byte values in an array. 1188 * 1189 * This function sets a portion of the specified byte array using a native buffer. 1190 * 1191 * @param[in] env A pointer to the environment structure. 1192 * @param[in] array The array to set values in. 1193 * @param[in] offset The starting offset of the region. 1194 * @param[in] length The number of elements to set. 1195 * @param[in] native_buffer A buffer containing the byte values to set. 1196 * @return Returns a status code of type `ani_status` indicating success or failure. 1197 */ 1198 ani_status (*Array_SetRegion_Byte)(ani_env *env, ani_array_byte array, ani_size offset, ani_size length, 1199 const ani_byte *native_buffer); 1200 1201 /** 1202 * @brief Sets a region of short values in an array. 1203 * 1204 * This function sets a portion of the specified short array using a native buffer. 1205 * 1206 * @param[in] env A pointer to the environment structure. 1207 * @param[in] array The array to set values in. 1208 * @param[in] offset The starting offset of the region. 1209 * @param[in] length The number of elements to set. 1210 * @param[in] native_buffer A buffer containing the short values to set. 1211 * @return Returns a status code of type `ani_status` indicating success or failure. 1212 */ 1213 ani_status (*Array_SetRegion_Short)(ani_env *env, ani_array_short array, ani_size offset, ani_size length, 1214 const ani_short *native_buffer); 1215 1216 /** 1217 * @brief Sets a region of integer values in an array. 1218 * 1219 * This function sets a portion of the specified integer array using a native buffer. 1220 * 1221 * @param[in] env A pointer to the environment structure. 1222 * @param[in] array The array to set values in. 1223 * @param[in] offset The starting offset of the region. 1224 * @param[in] length The number of elements to set. 1225 * @param[in] native_buffer A buffer containing the integer values to set. 1226 * @return Returns a status code of type `ani_status` indicating success or failure. 1227 */ 1228 ani_status (*Array_SetRegion_Int)(ani_env *env, ani_array_int array, ani_size offset, ani_size length, 1229 const ani_int *native_buffer); 1230 1231 /** 1232 * @brief Sets a region of long integer values in an array. 1233 * 1234 * This function sets a portion of the specified long integer array using a native buffer. 1235 * 1236 * @param[in] env A pointer to the environment structure. 1237 * @param[in] array The array to set values in. 1238 * @param[in] offset The starting offset of the region. 1239 * @param[in] length The number of elements to set. 1240 * @param[in] native_buffer A buffer containing the long integer values to set. 1241 * @return Returns a status code of type `ani_status` indicating success or failure. 1242 */ 1243 ani_status (*Array_SetRegion_Long)(ani_env *env, ani_array_long array, ani_size offset, ani_size length, 1244 const ani_long *native_buffer); 1245 1246 /** 1247 * @brief Sets a region of float values in an array. 1248 * 1249 * This function sets a portion of the specified float array using a native buffer. 1250 * 1251 * @param[in] env A pointer to the environment structure. 1252 * @param[in] array The array to set values in. 1253 * @param[in] offset The starting offset of the region. 1254 * @param[in] length The number of elements to set. 1255 * @param[in] native_buffer A buffer containing the float values to set. 1256 * @return Returns a status code of type `ani_status` indicating success or failure. 1257 */ 1258 ani_status (*Array_SetRegion_Float)(ani_env *env, ani_array_float array, ani_size offset, ani_size length, 1259 const ani_float *native_buffer); 1260 1261 /** 1262 * @brief Sets a region of double values in an array. 1263 * 1264 * This function sets a portion of the specified double array using a native buffer. 1265 * 1266 * @param[in] env A pointer to the environment structure. 1267 * @param[in] array The array to set values in. 1268 * @param[in] offset The starting offset of the region. 1269 * @param[in] length The number of elements to set. 1270 * @param[in] native_buffer A buffer containing the double values to set. 1271 * @return Returns a status code of type `ani_status` indicating success or failure. 1272 */ 1273 ani_status (*Array_SetRegion_Double)(ani_env *env, ani_array_double array, ani_size offset, ani_size length, 1274 const ani_double *native_buffer); 1275 1276 /** 1277 * @brief Creates a new array of references. 1278 * 1279 * This function creates a new array of references, optionally initializing it with an array of references. 1280 * 1281 * @param[in] env A pointer to the environment structure. 1282 * @param[in] type The type of the elements of the array. 1283 * @param[in] length The length of the array to be created. 1284 * @param[in] initial_element An optional reference to initialize the array. Can be null. 1285 * @param[out] result A pointer to store the created array of references. 1286 * @return Returns a status code of type `ani_status` indicating success or failure. 1287 */ 1288 ani_status (*Array_New_Ref)(ani_env *env, ani_type type, ani_size length, ani_ref initial_element, 1289 ani_array_ref *result); 1290 1291 /** 1292 * @brief Sets a reference at a specific index in an array. 1293 * 1294 * This function sets the value of a reference at the specified index in the array. 1295 * 1296 * @param[in] env A pointer to the environment structure. 1297 * @param[in] array The array of references to modify. 1298 * @param[in] index The index at which to set the reference. 1299 * @param[in] ref The reference to set at the specified index. 1300 * @return Returns a status code of type `ani_status` indicating success or failure. 1301 */ 1302 ani_status (*Array_Set_Ref)(ani_env *env, ani_array_ref array, ani_size index, ani_ref ref); 1303 1304 /** 1305 * @brief Retrieves a reference from a specific index in an array. 1306 * 1307 * This function retrieves the value of a reference at the specified index in the array. 1308 * 1309 * @param[in] env A pointer to the environment structure. 1310 * @param[in] array The array of references to query. 1311 * @param[in] index The index from which to retrieve the reference. 1312 * @param[out] result A pointer to store the retrieved reference. 1313 * @return Returns a status code of type `ani_status` indicating success or failure. 1314 */ 1315 ani_status (*Array_Get_Ref)(ani_env *env, ani_array_ref array, ani_size index, ani_ref *result); 1316 1317 /** 1318 * @brief Retrieves an enum item by its name. 1319 * 1320 * This function retrieves an enum item associated with the specified name. 1321 * 1322 * @param[in] env A pointer to the environment structure. 1323 * @param[in] enm The enum to search within. 1324 * @param[in] name The name of the enum item to retrieve. 1325 * @param[out] result A pointer to store the retrieved enum item. 1326 * @return Returns a status code of type `ani_status` indicating success or failure. 1327 */ 1328 ani_status (*Enum_GetEnumItemByName)(ani_env *env, ani_enum enm, const char *name, ani_enum_item *result); 1329 1330 /** 1331 * @brief Retrieves an enum item by its index. 1332 * 1333 * This function retrieves an enum item located at the specified index. 1334 * 1335 * @param[in] env A pointer to the environment structure. 1336 * @param[in] enm The enum to search within. 1337 * @param[in] index The index of the enum item to retrieve. 1338 * @param[out] result A pointer to store the retrieved enum item. 1339 * @return Returns a status code of type `ani_status` indicating success or failure. 1340 */ 1341 ani_status (*Enum_GetEnumItemByIndex)(ani_env *env, ani_enum enm, ani_size index, ani_enum_item *result); 1342 1343 /** 1344 * @brief Retrieves the enum associated with an enum item. 1345 * 1346 * This function retrieves the enum to which the specified enum item belongs. 1347 * 1348 * @param[in] env A pointer to the environment structure. 1349 * @param[in] enum_item The enum item whose associated enum is to be retrieved. 1350 * @param[out] result A pointer to store the retrieved enum. 1351 * @return Returns a status code of type `ani_status` indicating success or failure. 1352 */ 1353 ani_status (*EnumItem_GetEnum)(ani_env *env, ani_enum_item enum_item, ani_enum *result); 1354 1355 /** 1356 * @brief Retrieves the integer value of an enum item. 1357 * 1358 * This function retrieves the integer representing the value of the specified enum item. 1359 * 1360 * @param[in] env A pointer to the environment structure. 1361 * @param[in] enum_item The enum item whose underlying value is to be retrieved. 1362 * @param[out] result A pointer to store the retrieved integer. 1363 * @return Returns a status code of type `ani_status` indicating success or failure. 1364 */ 1365 ani_status (*EnumItem_GetValue_Int)(ani_env *env, ani_enum_item enum_item, ani_int *result); 1366 1367 /** 1368 * @brief Retrieves the string value of an enum item. 1369 * 1370 * This function retrieves the string representing the value of the specified enum item. 1371 * 1372 * @param[in] env A pointer to the environment structure. 1373 * @param[in] enum_item The enum item whose underlying value is to be retrieved. 1374 * @param[out] result A pointer to store the retrieved string. 1375 * @return Returns a status code of type `ani_status` indicating success or failure. 1376 */ 1377 ani_status (*EnumItem_GetValue_String)(ani_env *env, ani_enum_item enum_item, ani_string *result); 1378 1379 /** 1380 * @brief Retrieves the name of an enum item. 1381 * 1382 * This function retrieves the name associated with the specified enum item. 1383 * 1384 * @param[in] env A pointer to the environment structure. 1385 * @param[in] enum_item The enum item whose name is to be retrieved. 1386 * @param[out] result A pointer to store the retrieved name. 1387 * @return Returns a status code of type `ani_status` indicating success or failure. 1388 */ 1389 ani_status (*EnumItem_GetName)(ani_env *env, ani_enum_item enum_item, ani_string *result); 1390 1391 /** 1392 * @brief Retrieves the index of an enum item. 1393 * 1394 * This function retrieves the index of the specified enum item within its enum. 1395 * 1396 * @param[in] env A pointer to the environment structure. 1397 * @param[in] enum_item The enum item whose index is to be retrieved. 1398 * @param[out] result A pointer to store the retrieved index. 1399 * @return Returns a status code of type `ani_status` indicating success or failure. 1400 */ 1401 ani_status (*EnumItem_GetIndex)(ani_env *env, ani_enum_item enum_item, ani_size *result); 1402 1403 /** 1404 * @brief Invokes a functional object. 1405 * 1406 * This function invokes a functional object (e.g., a function or callable object) with the specified arguments. 1407 * 1408 * @param[in] env A pointer to the environment structure. 1409 * @param[in] fn The functional object to invoke. 1410 * @param[in] argc The number of arguments being passed to the functional object. 1411 * @param[in] argv A pointer to an array of references representing the arguments. Can be null if `argc` is 0. 1412 * @param[out] result A pointer to store the result of the invocation. Can be null if the functional object does not 1413 * return a value. 1414 * @return Returns a status code of type `ani_status` indicating success or failure. 1415 */ 1416 ani_status (*FunctionalObject_Call)(ani_env *env, ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result); 1417 1418 /** 1419 * @brief Sets a boolean value to a variable. 1420 * 1421 * This function assigns a boolean value to the specified variable. 1422 * 1423 * @param[in] env A pointer to the environment structure. 1424 * @param[in] variable The variable to modify. 1425 * @param[in] value The boolean value to assign to the variable. 1426 * @return Returns a status code of type `ani_status` indicating success or failure. 1427 */ 1428 ani_status (*Variable_SetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean value); 1429 1430 /** 1431 * @brief Sets a character value to a variable. 1432 * 1433 * This function assigns a character value to the specified variable. 1434 * 1435 * @param[in] env A pointer to the environment structure. 1436 * @param[in] variable The variable to modify. 1437 * @param[in] value The character value to assign to the variable. 1438 * @return Returns a status code of type `ani_status` indicating success or failure. 1439 */ 1440 ani_status (*Variable_SetValue_Char)(ani_env *env, ani_variable variable, ani_char value); 1441 1442 /** 1443 * @brief Sets a byte value to a variable. 1444 * 1445 * This function assigns a byte value to the specified variable. 1446 * 1447 * @param[in] env A pointer to the environment structure. 1448 * @param[in] variable The variable to modify. 1449 * @param[in] value The byte value to assign to the variable. 1450 * @return Returns a status code of type `ani_status` indicating success or failure. 1451 */ 1452 ani_status (*Variable_SetValue_Byte)(ani_env *env, ani_variable variable, ani_byte value); 1453 1454 /** 1455 * @brief Sets a short value to a variable. 1456 * 1457 * This function assigns a short integer value to the specified variable. 1458 * 1459 * @param[in] env A pointer to the environment structure. 1460 * @param[in] variable The variable to modify. 1461 * @param[in] value The short integer value to assign to the variable. 1462 * @return Returns a status code of type `ani_status` indicating success or failure. 1463 */ 1464 ani_status (*Variable_SetValue_Short)(ani_env *env, ani_variable variable, ani_short value); 1465 1466 /** 1467 * @brief Sets an integer value to a variable. 1468 * 1469 * This function assigns an integer value to the specified variable. 1470 * 1471 * @param[in] env A pointer to the environment structure. 1472 * @param[in] variable The variable to modify. 1473 * @param[in] value The integer value to assign to the variable. 1474 * @return Returns a status code of type `ani_status` indicating success or failure. 1475 */ 1476 ani_status (*Variable_SetValue_Int)(ani_env *env, ani_variable variable, ani_int value); 1477 1478 /** 1479 * @brief Sets a long value to a variable. 1480 * 1481 * This function assigns a long integer value to the specified variable. 1482 * 1483 * @param[in] env A pointer to the environment structure. 1484 * @param[in] variable The variable to modify. 1485 * @param[in] value The long integer value to assign to the variable. 1486 * @return Returns a status code of type `ani_status` indicating success or failure. 1487 */ 1488 ani_status (*Variable_SetValue_Long)(ani_env *env, ani_variable variable, ani_long value); 1489 1490 /** 1491 * @brief Sets a float value to a variable. 1492 * 1493 * This function assigns a float value to the specified variable. 1494 * 1495 * @param[in] env A pointer to the environment structure. 1496 * @param[in] variable The variable to modify. 1497 * @param[in] value The float value to assign to the variable. 1498 * @return Returns a status code of type `ani_status` indicating success or failure. 1499 */ 1500 ani_status (*Variable_SetValue_Float)(ani_env *env, ani_variable variable, ani_float value); 1501 1502 /** 1503 * @brief Sets a double value to a variable. 1504 * 1505 * This function assigns a double value to the specified variable. 1506 * 1507 * @param[in] env A pointer to the environment structure. 1508 * @param[in] variable The variable to modify. 1509 * @param[in] value The double value to assign to the variable. 1510 * @return Returns a status code of type `ani_status` indicating success or failure. 1511 */ 1512 ani_status (*Variable_SetValue_Double)(ani_env *env, ani_variable variable, ani_double value); 1513 1514 /** 1515 * @brief Sets a reference value to a variable. 1516 * 1517 * This function assigns a reference value to the specified variable. 1518 * 1519 * @param[in] env A pointer to the environment structure. 1520 * @param[in] variable The variable to modify. 1521 * @param[in] value The reference value to assign to the variable. 1522 * @return Returns a status code of type `ani_status` indicating success or failure. 1523 */ 1524 ani_status (*Variable_SetValue_Ref)(ani_env *env, ani_variable variable, ani_ref value); 1525 1526 /** 1527 * @brief Retrieves a boolean value from a variable. 1528 * 1529 * This function fetches a boolean value from the specified variable. 1530 * 1531 * @param[in] env A pointer to the environment structure. 1532 * @param[in] variable The variable to query. 1533 * @param[out] result A pointer to store the retrieved boolean value. 1534 * @return Returns a status code of type `ani_status` indicating success or failure. 1535 */ 1536 ani_status (*Variable_GetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean *result); 1537 1538 /** 1539 * @brief Retrieves a character value from a variable. 1540 * 1541 * This function fetches a character value from the specified variable. 1542 * 1543 * @param[in] env A pointer to the environment structure. 1544 * @param[in] variable The variable to query. 1545 * @param[out] result A pointer to store the retrieved character value. 1546 * @return Returns a status code of type `ani_status` indicating success or failure. 1547 */ 1548 ani_status (*Variable_GetValue_Char)(ani_env *env, ani_variable variable, ani_char *result); 1549 1550 /** 1551 * @brief Retrieves a byte value from a variable. 1552 * 1553 * This function fetches a byte value from the specified variable. 1554 * 1555 * @param[in] env A pointer to the environment structure. 1556 * @param[in] variable The variable to query. 1557 * @param[out] result A pointer to store the retrieved byte value. 1558 * @return Returns a status code of type `ani_status` indicating success or failure. 1559 */ 1560 ani_status (*Variable_GetValue_Byte)(ani_env *env, ani_variable variable, ani_byte *result); 1561 1562 /** 1563 * @brief Retrieves a short value from a variable. 1564 * 1565 * This function fetches a short integer value from the specified variable. 1566 * 1567 * @param[in] env A pointer to the environment structure. 1568 * @param[in] variable The variable to query. 1569 * @param[out] result A pointer to store the retrieved short integer value. 1570 * @return Returns a status code of type `ani_status` indicating success or failure. 1571 */ 1572 ani_status (*Variable_GetValue_Short)(ani_env *env, ani_variable variable, ani_short *result); 1573 1574 /** 1575 * @brief Retrieves an integer value from a variable. 1576 * 1577 * This function fetches an integer value from the specified variable. 1578 * 1579 * @param[in] env A pointer to the environment structure. 1580 * @param[in] variable The variable to query. 1581 * @param[out] result A pointer to store the retrieved integer value. 1582 * @return Returns a status code of type `ani_status` indicating success or failure. 1583 */ 1584 ani_status (*Variable_GetValue_Int)(ani_env *env, ani_variable variable, ani_int *result); 1585 1586 /** 1587 * @brief Retrieves a long value from a variable. 1588 * 1589 * This function fetches a long integer value from the specified variable. 1590 * 1591 * @param[in] env A pointer to the environment structure. 1592 * @param[in] variable The variable to query. 1593 * @param[out] result A pointer to store the retrieved long integer value. 1594 * @return Returns a status code of type `ani_status` indicating success or failure. 1595 */ 1596 ani_status (*Variable_GetValue_Long)(ani_env *env, ani_variable variable, ani_long *result); 1597 1598 /** 1599 * @brief Retrieves a float value from a variable. 1600 * 1601 * This function fetches a float value from the specified variable. 1602 * 1603 * @param[in] env A pointer to the environment structure. 1604 * @param[in] variable The variable to query. 1605 * @param[out] result A pointer to store the retrieved float value. 1606 * @return Returns a status code of type `ani_status` indicating success or failure. 1607 */ 1608 ani_status (*Variable_GetValue_Float)(ani_env *env, ani_variable variable, ani_float *result); 1609 1610 /** 1611 * @brief Retrieves a double value from a variable. 1612 * 1613 * This function fetches a double value from the specified variable. 1614 * 1615 * @param[in] env A pointer to the environment structure. 1616 * @param[in] variable The variable to query. 1617 * @param[out] result A pointer to store the retrieved double value. 1618 * @return Returns a status code of type `ani_status` indicating success or failure. 1619 */ 1620 ani_status (*Variable_GetValue_Double)(ani_env *env, ani_variable variable, ani_double *result); 1621 1622 /** 1623 * @brief Retrieves a reference value from a variable. 1624 * 1625 * This function fetches a reference value from the specified variable. 1626 * 1627 * @param[in] env A pointer to the environment structure. 1628 * @param[in] variable The variable to query. 1629 * @param[out] result A pointer to store the retrieved reference value. 1630 * @return Returns a status code of type `ani_status` indicating success or failure. 1631 */ 1632 ani_status (*Variable_GetValue_Ref)(ani_env *env, ani_variable variable, ani_ref *result); 1633 1634 /** 1635 * @brief Calls a function and retrieves a boolean result. 1636 * 1637 * This function calls the specified function with variadic arguments and retrieves a boolean result. 1638 * 1639 * @param[in] env A pointer to the environment structure. 1640 * @param[in] fn The function to call. 1641 * @param[out] result A pointer to store the boolean result. 1642 * @param[in] ... Variadic arguments to pass to the function. 1643 * @return Returns a status code of type `ani_status` indicating success or failure. 1644 */ 1645 ani_status (*Function_Call_Boolean)(ani_env *env, ani_function fn, ani_boolean *result, ...); 1646 1647 /** 1648 * @brief Calls a function and retrieves a boolean result (array-based). 1649 * 1650 * This function calls the specified function with arguments provided in an array and retrieves a boolean result. 1651 * 1652 * @param[in] env A pointer to the environment structure. 1653 * @param[in] fn The function to call. 1654 * @param[out] result A pointer to store the boolean result. 1655 * @param[in] args A pointer to an array of arguments to pass to the function. 1656 * @return Returns a status code of type `ani_status` indicating success or failure. 1657 */ 1658 ani_status (*Function_Call_Boolean_A)(ani_env *env, ani_function fn, ani_boolean *result, const ani_value *args); 1659 1660 /** 1661 * @brief Calls a function and retrieves a boolean result (variadic arguments). 1662 * 1663 * This function calls the specified function with arguments provided in a `va_list` and retrieves a boolean result. 1664 * 1665 * @param[in] env A pointer to the environment structure. 1666 * @param[in] fn The function to call. 1667 * @param[out] result A pointer to store the boolean result. 1668 * @param[in] args A `va_list` containing the arguments to pass to the function. 1669 * @return Returns a status code of type `ani_status` indicating success or failure. 1670 */ 1671 ani_status (*Function_Call_Boolean_V)(ani_env *env, ani_function fn, ani_boolean *result, va_list args); 1672 1673 /** 1674 * @brief Calls a function and retrieves a character result. 1675 * 1676 * This function calls the specified function with variadic arguments and retrieves a character result. 1677 * 1678 * @param[in] env A pointer to the environment structure. 1679 * @param[in] fn The function to call. 1680 * @param[out] result A pointer to store the character result. 1681 * @param[in] ... Variadic arguments to pass to the function. 1682 * @return Returns a status code of type `ani_status` indicating success or failure. 1683 */ 1684 ani_status (*Function_Call_Char)(ani_env *env, ani_function fn, ani_char *result, ...); 1685 1686 /** 1687 * @brief Calls a function and retrieves a character result (array-based). 1688 * 1689 * This function calls the specified function with arguments provided in an array and retrieves a character result. 1690 * 1691 * @param[in] env A pointer to the environment structure. 1692 * @param[in] fn The function to call. 1693 * @param[out] result A pointer to store the character result. 1694 * @param[in] args A pointer to an array of arguments to pass to the function. 1695 * @return Returns a status code of type `ani_status` indicating success or failure. 1696 */ 1697 ani_status (*Function_Call_Char_A)(ani_env *env, ani_function fn, ani_char *result, const ani_value *args); 1698 1699 /** 1700 * @brief Calls a function and retrieves a character result (variadic arguments). 1701 * 1702 * This function calls the specified function with arguments provided in a `va_list` and retrieves a character 1703 * result. 1704 * 1705 * @param[in] env A pointer to the environment structure. 1706 * @param[in] fn The function to call. 1707 * @param[out] result A pointer to store the character result. 1708 * @param[in] args A `va_list` containing the arguments to pass to the function. 1709 * @return Returns a status code of type `ani_status` indicating success or failure. 1710 */ 1711 ani_status (*Function_Call_Char_V)(ani_env *env, ani_function fn, ani_char *result, va_list args); 1712 1713 /** 1714 * @brief Calls a function and retrieves a byte result. 1715 * 1716 * This function calls the specified function with variadic arguments and retrieves a byte result. 1717 * 1718 * @param[in] env A pointer to the environment structure. 1719 * @param[in] fn The function to call. 1720 * @param[out] result A pointer to store the byte result. 1721 * @param[in] ... Variadic arguments to pass to the function. 1722 * @return Returns a status code of type `ani_status` indicating success or failure. 1723 */ 1724 ani_status (*Function_Call_Byte)(ani_env *env, ani_function fn, ani_byte *result, ...); 1725 1726 /** 1727 * @brief Calls a function and retrieves a byte result (array-based). 1728 * 1729 * This function calls the specified function with arguments provided in an array and retrieves a byte result. 1730 * 1731 * @param[in] env A pointer to the environment structure. 1732 * @param[in] fn The function to call. 1733 * @param[out] result A pointer to store the byte result. 1734 * @param[in] args A pointer to an array of arguments to pass to the function. 1735 * @return Returns a status code of type `ani_status` indicating success or failure. 1736 */ 1737 ani_status (*Function_Call_Byte_A)(ani_env *env, ani_function fn, ani_byte *result, const ani_value *args); 1738 1739 /** 1740 * @brief Calls a function and retrieves a byte result (variadic arguments). 1741 * 1742 * This function calls the specified function with arguments provided in a `va_list` and retrieves a byte result. 1743 * 1744 * @param[in] env A pointer to the environment structure. 1745 * @param[in] fn The function to call. 1746 * @param[out] result A pointer to store the byte result. 1747 * @param[in] args A `va_list` containing the arguments to pass to the function. 1748 * @return Returns a status code of type `ani_status` indicating success or failure. 1749 */ 1750 ani_status (*Function_Call_Byte_V)(ani_env *env, ani_function fn, ani_byte *result, va_list args); 1751 1752 /** 1753 * @brief Calls a function and retrieves a short result. 1754 * 1755 * This function calls the specified function with variadic arguments and retrieves a short result. 1756 * 1757 * @param[in] env A pointer to the environment structure. 1758 * @param[in] fn The function to call. 1759 * @param[out] result A pointer to store the short result. 1760 * @param[in] ... Variadic arguments to pass to the function. 1761 * @return Returns a status code of type `ani_status` indicating success or failure. 1762 */ 1763 ani_status (*Function_Call_Short)(ani_env *env, ani_function fn, ani_short *result, ...); 1764 1765 /** 1766 * @brief Calls a function and retrieves a short result (array-based). 1767 * 1768 * This function calls the specified function with arguments provided in an array and retrieves a short result. 1769 * 1770 * @param[in] env A pointer to the environment structure. 1771 * @param[in] fn The function to call. 1772 * @param[out] result A pointer to store the short result. 1773 * @param[in] args A pointer to an array of arguments to pass to the function. 1774 * @return Returns a status code of type `ani_status` indicating success or failure. 1775 */ 1776 ani_status (*Function_Call_Short_A)(ani_env *env, ani_function fn, ani_short *result, const ani_value *args); 1777 1778 /** 1779 * @brief Calls a function and retrieves a short result (variadic arguments). 1780 * 1781 * This function calls the specified function with arguments provided in a `va_list` and retrieves a short result. 1782 * 1783 * @param[in] env A pointer to the environment structure. 1784 * @param[in] fn The function to call. 1785 * @param[out] result A pointer to store the short result. 1786 * @param[in] args A `va_list` containing the arguments to pass to the function. 1787 * @return Returns a status code of type `ani_status` indicating success or failure. 1788 */ 1789 ani_status (*Function_Call_Short_V)(ani_env *env, ani_function fn, ani_short *result, va_list args); 1790 1791 /** 1792 * @brief Calls a function and retrieves an integer result. 1793 * 1794 * This function calls the specified function with variadic arguments and retrieves an integer result. 1795 * 1796 * @param[in] env A pointer to the environment structure. 1797 * @param[in] fn The function to call. 1798 * @param[out] result A pointer to store the integer result. 1799 * @param[in] ... Variadic arguments to pass to the function. 1800 * @return Returns a status code of type `ani_status` indicating success or failure. 1801 */ 1802 ani_status (*Function_Call_Int)(ani_env *env, ani_function fn, ani_int *result, ...); 1803 1804 /** 1805 * @brief Calls a function and retrieves an integer result (array-based). 1806 * 1807 * This function calls the specified function with arguments provided in an array and retrieves an integer result. 1808 * 1809 * @param[in] env A pointer to the environment structure. 1810 * @param[in] fn The function to call. 1811 * @param[out] result A pointer to store the integer result. 1812 * @param[in] args A pointer to an array of arguments to pass to the function. 1813 * @return Returns a status code of type `ani_status` indicating success or failure. 1814 */ 1815 ani_status (*Function_Call_Int_A)(ani_env *env, ani_function fn, ani_int *result, const ani_value *args); 1816 1817 /** 1818 * @brief Calls a function and retrieves an integer result (variadic arguments). 1819 * 1820 * This function calls the specified function with arguments provided in a `va_list` and retrieves an integer 1821 * result. 1822 * 1823 * @param[in] env A pointer to the environment structure. 1824 * @param[in] fn The function to call. 1825 * @param[out] result A pointer to store the integer result. 1826 * @param[in] args A `va_list` containing the arguments to pass to the function. 1827 * @return Returns a status code of type `ani_status` indicating success or failure. 1828 */ 1829 ani_status (*Function_Call_Int_V)(ani_env *env, ani_function fn, ani_int *result, va_list args); 1830 1831 /** 1832 * @brief Calls a function and retrieves a long result. 1833 * 1834 * This function calls the specified function with variadic arguments and retrieves a long result. 1835 * 1836 * @param[in] env A pointer to the environment structure. 1837 * @param[in] fn The function to call. 1838 * @param[out] result A pointer to store the long result. 1839 * @param[in] ... Variadic arguments to pass to the function. 1840 * @return Returns a status code of type `ani_status` indicating success or failure. 1841 */ 1842 ani_status (*Function_Call_Long)(ani_env *env, ani_function fn, ani_long *result, ...); 1843 1844 /** 1845 * @brief Calls a function and retrieves a long result (array-based). 1846 * 1847 * This function calls the specified function with arguments provided in an array and retrieves a long result. 1848 * 1849 * @param[in] env A pointer to the environment structure. 1850 * @param[in] fn The function to call. 1851 * @param[out] result A pointer to store the long result. 1852 * @param[in] args A pointer to an array of arguments to pass to the function. 1853 * @return Returns a status code of type `ani_status` indicating success or failure. 1854 */ 1855 ani_status (*Function_Call_Long_A)(ani_env *env, ani_function fn, ani_long *result, const ani_value *args); 1856 1857 /** 1858 * @brief Calls a function and retrieves a long result (variadic arguments). 1859 * 1860 * This function calls the specified function with arguments provided in a `va_list` and retrieves a long result. 1861 * 1862 * @param[in] env A pointer to the environment structure. 1863 * @param[in] fn The function to call. 1864 * @param[out] result A pointer to store the long result. 1865 * @param[in] args A `va_list` containing the arguments to pass to the function. 1866 * @return Returns a status code of type `ani_status` indicating success or failure. 1867 */ 1868 ani_status (*Function_Call_Long_V)(ani_env *env, ani_function fn, ani_long *result, va_list args); 1869 1870 /** 1871 * @brief Calls a function and retrieves a float result. 1872 * 1873 * This function calls the specified function with variadic arguments and retrieves a float result. 1874 * 1875 * @param[in] env A pointer to the environment structure. 1876 * @param[in] fn The function to call. 1877 * @param[out] result A pointer to store the float result. 1878 * @param[in] ... Variadic arguments to pass to the function. 1879 * @return Returns a status code of type `ani_status` indicating success or failure. 1880 */ 1881 ani_status (*Function_Call_Float)(ani_env *env, ani_function fn, ani_float *result, ...); 1882 1883 /** 1884 * @brief Calls a function and retrieves a float result (array-based). 1885 * 1886 * This function calls the specified function with arguments provided in an array and retrieves a float result. 1887 * 1888 * @param[in] env A pointer to the environment structure. 1889 * @param[in] fn The function to call. 1890 * @param[out] result A pointer to store the float result. 1891 * @param[in] args A pointer to an array of arguments to pass to the function. 1892 * @return Returns a status code of type `ani_status` indicating success or failure. 1893 */ 1894 ani_status (*Function_Call_Float_A)(ani_env *env, ani_function fn, ani_float *result, const ani_value *args); 1895 1896 /** 1897 * @brief Calls a function and retrieves a float result (variadic arguments). 1898 * 1899 * This function calls the specified function with arguments provided in a `va_list` and retrieves a float result. 1900 * 1901 * @param[in] env A pointer to the environment structure. 1902 * @param[in] fn The function to call. 1903 * @param[out] result A pointer to store the float result. 1904 * @param[in] args A `va_list` containing the arguments to pass to the function. 1905 * @return Returns a status code of type `ani_status` indicating success or failure. 1906 */ 1907 ani_status (*Function_Call_Float_V)(ani_env *env, ani_function fn, ani_float *result, va_list args); 1908 1909 /** 1910 * @brief Calls a function and retrieves a double result. 1911 * 1912 * This function calls the specified function with variadic arguments and retrieves a double result. 1913 * 1914 * @param[in] env A pointer to the environment structure. 1915 * @param[in] fn The function to call. 1916 * @param[out] result A pointer to store the double result. 1917 * @param[in] ... Variadic arguments to pass to the function. 1918 * @return Returns a status code of type `ani_status` indicating success or failure. 1919 */ 1920 ani_status (*Function_Call_Double)(ani_env *env, ani_function fn, ani_double *result, ...); 1921 1922 /** 1923 * @brief Calls a function and retrieves a double result (array-based). 1924 * 1925 * This function calls the specified function with arguments provided in an array and retrieves a double result. 1926 * 1927 * @param[in] env A pointer to the environment structure. 1928 * @param[in] fn The function to call. 1929 * @param[out] result A pointer to store the double result. 1930 * @param[in] args A pointer to an array of arguments to pass to the function. 1931 * @return Returns a status code of type `ani_status` indicating success or failure. 1932 */ 1933 ani_status (*Function_Call_Double_A)(ani_env *env, ani_function fn, ani_double *result, const ani_value *args); 1934 1935 /** 1936 * @brief Calls a function and retrieves a double result (variadic arguments). 1937 * 1938 * This function calls the specified function with arguments provided in a `va_list` and retrieves a double result. 1939 * 1940 * @param[in] env A pointer to the environment structure. 1941 * @param[in] fn The function to call. 1942 * @param[out] result A pointer to store the double result. 1943 * @param[in] args A `va_list` containing the arguments to pass to the function. 1944 * @return Returns a status code of type `ani_status` indicating success or failure. 1945 */ 1946 ani_status (*Function_Call_Double_V)(ani_env *env, ani_function fn, ani_double *result, va_list args); 1947 1948 /** 1949 * @brief Calls a function and retrieves a reference result. 1950 * 1951 * This function calls the specified function with variadic arguments and retrieves a reference result. 1952 * 1953 * @param[in] env A pointer to the environment structure. 1954 * @param[in] fn The function to call. 1955 * @param[out] result A pointer to store the reference result. 1956 * @param[in] ... Variadic arguments to pass to the function. 1957 * @return Returns a status code of type `ani_status` indicating success or failure. 1958 */ 1959 ani_status (*Function_Call_Ref)(ani_env *env, ani_function fn, ani_ref *result, ...); 1960 1961 /** 1962 * @brief Calls a function and retrieves a reference result (array-based). 1963 * 1964 * This function calls the specified function with arguments provided in an array and retrieves a reference result. 1965 * 1966 * @param[in] env A pointer to the environment structure. 1967 * @param[in] fn The function to call. 1968 * @param[out] result A pointer to store the reference result. 1969 * @param[in] args A pointer to an array of arguments to pass to the function. 1970 * @return Returns a status code of type `ani_status` indicating success or failure. 1971 */ 1972 ani_status (*Function_Call_Ref_A)(ani_env *env, ani_function fn, ani_ref *result, const ani_value *args); 1973 1974 /** 1975 * @brief Calls a function and retrieves a reference result (variadic arguments). 1976 * 1977 * This function calls the specified function with arguments provided in a `va_list` and retrieves a reference 1978 * result. 1979 * 1980 * @param[in] env A pointer to the environment structure. 1981 * @param[in] fn The function to call. 1982 * @param[out] result A pointer to store the reference result. 1983 * @param[in] args A `va_list` containing the arguments to pass to the function. 1984 * @return Returns a status code of type `ani_status` indicating success or failure. 1985 */ 1986 ani_status (*Function_Call_Ref_V)(ani_env *env, ani_function fn, ani_ref *result, va_list args); 1987 1988 /** 1989 * @brief Calls a function without returning a result. 1990 * 1991 * This function calls the specified function with variadic arguments and does not return a result. 1992 * 1993 * @param[in] env A pointer to the environment structure. 1994 * @param[in] fn The function to call. 1995 * @param[in] ... Variadic arguments to pass to the function. 1996 * @return Returns a status code of type `ani_status` indicating success or failure. 1997 */ 1998 ani_status (*Function_Call_Void)(ani_env *env, ani_function fn, ...); 1999 2000 /** 2001 * @brief Calls a function without returning a result (array-based). 2002 * 2003 * This function calls the specified function with arguments provided in an array and does not return a result. 2004 * 2005 * @param[in] env A pointer to the environment structure. 2006 * @param[in] fn The function to call. 2007 * @param[in] args A pointer to an array of arguments to pass to the function. 2008 * @return Returns a status code of type `ani_status` indicating success or failure. 2009 */ 2010 ani_status (*Function_Call_Void_A)(ani_env *env, ani_function fn, const ani_value *args); 2011 2012 /** 2013 * @brief Calls a function without returning a result (variadic arguments). 2014 * 2015 * This function calls the specified function with arguments provided in a `va_list` and does not return a result. 2016 * 2017 * @param[in] env A pointer to the environment structure. 2018 * @param[in] fn The function to call. 2019 * @param[in] args A `va_list` containing the arguments to pass to the function. 2020 * @return Returns a status code of type `ani_status` indicating success or failure. 2021 */ 2022 ani_status (*Function_Call_Void_V)(ani_env *env, ani_function fn, va_list args); 2023 2024 /** 2025 * @brief Finds a field from by its name. 2026 * 2027 * This function locates a field based on its name and stores it in the result parameter. 2028 * 2029 * @param[in] env A pointer to the environment structure. 2030 * @param[in] cls The class to query. 2031 * @param[in] name The name of the field to find. 2032 * @param[out] result A pointer to the field to be populated. 2033 * @return Returns a status code of type `ani_status` indicating success or failure. 2034 */ 2035 ani_status (*Class_FindField)(ani_env *env, ani_class cls, const char *name, ani_field *result); 2036 2037 /** 2038 * @brief Finds a static field by its name. 2039 * 2040 * This function locates a static field based on its name and stores it in the result parameter. 2041 * 2042 * @param[in] env A pointer to the environment structure. 2043 * @param[in] cls The class to query. 2044 * @param[in] name The name of the static field to find. 2045 * @param[out] result A pointer to the static field to be populated. 2046 * @return Returns a status code of type `ani_status` indicating success or failure. 2047 */ 2048 ani_status (*Class_FindStaticField)(ani_env *env, ani_class cls, const char *name, ani_static_field *result); 2049 2050 /** 2051 * @brief Finds a method from by its name and signature. 2052 * 2053 * This function locates a method based on its name and signature and stores it in the result parameter. 2054 * 2055 * @param[in] env A pointer to the environment structure. 2056 * @param[in] cls The class to query. 2057 * @param[in] name The name of the method to find. 2058 * @param[in] signature The signature of the method to find. 2059 * @param[out] result A pointer to the method to be populated. 2060 * @return Returns a status code of type `ani_status` indicating success or failure. 2061 */ 2062 ani_status (*Class_FindMethod)(ani_env *env, ani_class cls, const char *name, const char *signature, 2063 ani_method *result); 2064 2065 /** 2066 * @brief Finds a static method from by its name and signature. 2067 * 2068 * This function locates a static method based on its name and signature and stores it in the result parameter. 2069 * 2070 * @param[in] env A pointer to the environment structure. 2071 * @param[in] cls The class to query. 2072 * @param[in] name The name of the static method to find. 2073 * @param[in] signature The signature of the static method to find. 2074 * @param[out] result A pointer to the static method to be populated. 2075 * @return Returns a status code of type `ani_status` indicating success or failure. 2076 */ 2077 ani_status (*Class_FindStaticMethod)(ani_env *env, ani_class cls, const char *name, const char *signature, 2078 ani_static_method *result); 2079 2080 /** 2081 * @brief Finds a setter method from by its name. 2082 * 2083 * This function locates a setter method based on its name and stores it in the result parameter. 2084 * 2085 * @param[in] env A pointer to the environment structure. 2086 * @param[in] cls The class to query. 2087 * @param[in] name The name of the property whose setter is to be found. 2088 * @param[out] result A pointer to the method to be populated. 2089 * @return Returns a status code of type `ani_status` indicating success or failure. 2090 */ 2091 ani_status (*Class_FindSetter)(ani_env *env, ani_class cls, const char *name, ani_method *result); 2092 2093 /** 2094 * @brief Finds a getter method from by its name. 2095 * 2096 * This function locates a getter method based on its name and stores it in the result parameter. 2097 * 2098 * @param[in] env A pointer to the environment structure. 2099 * @param[in] cls The class to query. 2100 * @param[in] name The name of the property whose getter is to be found. 2101 * @param[out] result A pointer to the method to be populated. 2102 * @return Returns a status code of type `ani_status` indicating success or failure. 2103 */ 2104 ani_status (*Class_FindGetter)(ani_env *env, ani_class cls, const char *name, ani_method *result); 2105 2106 /** 2107 * @brief Finds an indexable getter method from by its signature. 2108 * 2109 * This function locates an indexable getter method based on its signature and stores it in the result parameter. 2110 * 2111 * @param[in] env A pointer to the environment structure. 2112 * @param[in] cls The class to query. 2113 * @param[in] signature The signature of the indexable getter to find. 2114 * @param[out] result A pointer to the method to be populated. 2115 * @return Returns a status code of type `ani_status` indicating success or failure. 2116 */ 2117 ani_status (*Class_FindIndexableGetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result); 2118 2119 /** 2120 * @brief Finds an indexable setter method from by its signature. 2121 * 2122 * This function locates an indexable setter method based on its signature and stores it in the result parameter. 2123 * 2124 * @param[in] env A pointer to the environment structure. 2125 * @param[in] cls The class to query. 2126 * @param[in] signature The signature of the indexable setter to find. 2127 * @param[out] result A pointer to the method to be populated. 2128 * @return Returns a status code of type `ani_status` indicating success or failure. 2129 */ 2130 ani_status (*Class_FindIndexableSetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result); 2131 2132 /** 2133 * @brief Finds an iterator method. 2134 * 2135 * This function locates an iterator method 2136 * 2137 * @param[in] env A pointer to the environment structure. 2138 * @param[in] cls The class to query. 2139 * @param[out] result A pointer to the method to be populated. 2140 * @return Returns a status code of type `ani_status` indicating success or failure. 2141 */ 2142 ani_status (*Class_FindIterator)(ani_env *env, ani_class cls, ani_method *result); 2143 2144 /** 2145 * @brief Retrieves a boolean value from a static field of a class. 2146 * 2147 * This function retrieves the boolean value of the specified static field from the given class. 2148 * 2149 * @param[in] env A pointer to the environment structure. 2150 * @param[in] cls The class containing the static field. 2151 * @param[in] field The static field to retrieve. 2152 * @param[out] result A pointer to store the retrieved boolean value. 2153 * @return Returns a status code of type `ani_status` indicating success or failure. 2154 */ 2155 ani_status (*Class_GetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field, 2156 ani_boolean *result); 2157 2158 /** 2159 * @brief Retrieves a character value from a static field of a class. 2160 * 2161 * This function retrieves the character value of the specified static field from the given class. 2162 * 2163 * @param[in] env A pointer to the environment structure. 2164 * @param[in] cls The class containing the static field. 2165 * @param[in] field The static field to retrieve. 2166 * @param[out] result A pointer to store the retrieved character value. 2167 * @return Returns a status code of type `ani_status` indicating success or failure. 2168 */ 2169 ani_status (*Class_GetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char *result); 2170 2171 /** 2172 * @brief Retrieves a byte value from a static field of a class. 2173 * 2174 * This function retrieves the byte value of the specified static field from the given class. 2175 * 2176 * @param[in] env A pointer to the environment structure. 2177 * @param[in] cls The class containing the static field. 2178 * @param[in] field The static field to retrieve. 2179 * @param[out] result A pointer to store the retrieved byte value. 2180 * @return Returns a status code of type `ani_status` indicating success or failure. 2181 */ 2182 ani_status (*Class_GetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte *result); 2183 2184 /** 2185 * @brief Retrieves a short value from a static field of a class. 2186 * 2187 * This function retrieves the short value of the specified static field from the given class. 2188 * 2189 * @param[in] env A pointer to the environment structure. 2190 * @param[in] cls The class containing the static field. 2191 * @param[in] field The static field to retrieve. 2192 * @param[out] result A pointer to store the retrieved short value. 2193 * @return Returns a status code of type `ani_status` indicating success or failure. 2194 */ 2195 ani_status (*Class_GetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short *result); 2196 2197 /** 2198 * @brief Retrieves an integer value from a static field of a class. 2199 * 2200 * This function retrieves the integer value of the specified static field from the given class. 2201 * 2202 * @param[in] env A pointer to the environment structure. 2203 * @param[in] cls The class containing the static field. 2204 * @param[in] field The static field to retrieve. 2205 * @param[out] result A pointer to store the retrieved integer value. 2206 * @return Returns a status code of type `ani_status` indicating success or failure. 2207 */ 2208 ani_status (*Class_GetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int *result); 2209 2210 /** 2211 * @brief Retrieves a long value from a static field of a class. 2212 * 2213 * This function retrieves the long value of the specified static field from the given class. 2214 * 2215 * @param[in] env A pointer to the environment structure. 2216 * @param[in] cls The class containing the static field. 2217 * @param[in] field The static field to retrieve. 2218 * @param[out] result A pointer to store the retrieved long value. 2219 * @return Returns a status code of type `ani_status` indicating success or failure. 2220 */ 2221 ani_status (*Class_GetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long *result); 2222 2223 /** 2224 * @brief Retrieves a float value from a static field of a class. 2225 * 2226 * This function retrieves the float value of the specified static field from the given class. 2227 * 2228 * @param[in] env A pointer to the environment structure. 2229 * @param[in] cls The class containing the static field. 2230 * @param[in] field The static field to retrieve. 2231 * @param[out] result A pointer to store the retrieved float value. 2232 * @return Returns a status code of type `ani_status` indicating success or failure. 2233 */ 2234 ani_status (*Class_GetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float *result); 2235 2236 /** 2237 * @brief Retrieves a double value from a static field of a class. 2238 * 2239 * This function retrieves the double value of the specified static field from the given class. 2240 * 2241 * @param[in] env A pointer to the environment structure. 2242 * @param[in] cls The class containing the static field. 2243 * @param[in] field The static field to retrieve. 2244 * @param[out] result A pointer to store the retrieved double value. 2245 * @return Returns a status code of type `ani_status` indicating success or failure. 2246 */ 2247 ani_status (*Class_GetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double *result); 2248 2249 /** 2250 * @brief Retrieves a reference value from a static field of a class. 2251 * 2252 * This function retrieves the reference value of the specified static field from the given class. 2253 * 2254 * @param[in] env A pointer to the environment structure. 2255 * @param[in] cls The class containing the static field. 2256 * @param[in] field The static field to retrieve. 2257 * @param[out] result A pointer to store the retrieved reference value. 2258 * @return Returns a status code of type `ani_status` indicating success or failure. 2259 */ 2260 ani_status (*Class_GetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref *result); 2261 2262 /** 2263 * @brief Sets a boolean value to a static field of a class. 2264 * 2265 * This function assigns a boolean value to the specified static field of the given class. 2266 * 2267 * @param[in] env A pointer to the environment structure. 2268 * @param[in] cls The class containing the static field. 2269 * @param[in] field The static field to modify. 2270 * @param[in] value The boolean value to assign. 2271 * @return Returns a status code of type `ani_status` indicating success or failure. 2272 */ 2273 ani_status (*Class_SetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field, ani_boolean value); 2274 2275 /** 2276 * @brief Sets a character value to a static field of a class. 2277 * 2278 * This function assigns a character value to the specified static field of the given class. 2279 * 2280 * @param[in] env A pointer to the environment structure. 2281 * @param[in] cls The class containing the static field. 2282 * @param[in] field The static field to modify. 2283 * @param[in] value The character value to assign. 2284 * @return Returns a status code of type `ani_status` indicating success or failure. 2285 */ 2286 ani_status (*Class_SetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char value); 2287 2288 /** 2289 * @brief Sets a byte value to a static field of a class. 2290 * 2291 * This function assigns a byte value to the specified static field of the given class. 2292 * 2293 * @param[in] env A pointer to the environment structure. 2294 * @param[in] cls The class containing the static field. 2295 * @param[in] field The static field to modify. 2296 * @param[in] value The byte value to assign. 2297 * @return Returns a status code of type `ani_status` indicating success or failure. 2298 */ 2299 ani_status (*Class_SetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte value); 2300 2301 /** 2302 * @brief Sets a short value to a static field of a class. 2303 * 2304 * This function assigns a short value to the specified static field of the given class. 2305 * 2306 * @param[in] env A pointer to the environment structure. 2307 * @param[in] cls The class containing the static field. 2308 * @param[in] field The static field to modify. 2309 * @param[in] value The short value to assign. 2310 * @return Returns a status code of type `ani_status` indicating success or failure. 2311 */ 2312 ani_status (*Class_SetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short value); 2313 2314 /** 2315 * @brief Sets an integer value to a static field of a class. 2316 * 2317 * This function assigns an integer value to the specified static field of the given class. 2318 * 2319 * @param[in] env A pointer to the environment structure. 2320 * @param[in] cls The class containing the static field. 2321 * @param[in] field The static field to modify. 2322 * @param[in] value The integer value to assign. 2323 * @return Returns a status code of type `ani_status` indicating success or failure. 2324 */ 2325 ani_status (*Class_SetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int value); 2326 2327 /** 2328 * @brief Sets a long value to a static field of a class. 2329 * 2330 * This function assigns a long value to the specified static field of the given class. 2331 * 2332 * @param[in] env A pointer to the environment structure. 2333 * @param[in] cls The class containing the static field. 2334 * @param[in] field The static field to modify. 2335 * @param[in] value The long value to assign. 2336 * @return Returns a status code of type `ani_status` indicating success or failure. 2337 */ 2338 ani_status (*Class_SetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long value); 2339 2340 /** 2341 * @brief Sets a float value to a static field of a class. 2342 * 2343 * This function assigns a float value to the specified static field of the given class. 2344 * 2345 * @param[in] env A pointer to the environment structure. 2346 * @param[in] cls The class containing the static field. 2347 * @param[in] field The static field to modify. 2348 * @param[in] value The float value to assign. 2349 * @return Returns a status code of type `ani_status` indicating success or failure. 2350 */ 2351 ani_status (*Class_SetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float value); 2352 2353 /** 2354 * @brief Sets a double value to a static field of a class. 2355 * 2356 * This function assigns a double value to the specified static field of the given class. 2357 * 2358 * @param[in] env A pointer to the environment structure. 2359 * @param[in] cls The class containing the static field. 2360 * @param[in] field The static field to modify. 2361 * @param[in] value The double value to assign. 2362 * @return Returns a status code of type `ani_status` indicating success or failure. 2363 */ 2364 ani_status (*Class_SetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double value); 2365 2366 /** 2367 * @brief Sets a reference value to a static field of a class. 2368 * 2369 * This function assigns a reference value to the specified static field of the given class. 2370 * 2371 * @param[in] env A pointer to the environment structure. 2372 * @param[in] cls The class containing the static field. 2373 * @param[in] field The static field to modify. 2374 * @param[in] value The reference value to assign. 2375 * @return Returns a status code of type `ani_status` indicating success or failure. 2376 */ 2377 ani_status (*Class_SetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref value); 2378 2379 /** 2380 * @brief Retrieves a boolean value from a static field of a class by its name. 2381 * 2382 * This function retrieves the boolean value of the specified static field from the given class by its name. 2383 * 2384 * @param[in] env A pointer to the environment structure. 2385 * @param[in] cls The class containing the static field. 2386 * @param[in] name The name of the static field to retrieve. 2387 * @param[out] result A pointer to store the retrieved boolean value. 2388 * @return Returns a status code of type `ani_status` indicating success or failure. 2389 */ 2390 ani_status (*Class_GetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name, 2391 ani_boolean *result); 2392 2393 /** 2394 * @brief Retrieves a character value from a static field of a class by its name. 2395 * 2396 * This function retrieves the character value of the specified static field from the given class by its name. 2397 * 2398 * @param[in] env A pointer to the environment structure. 2399 * @param[in] cls The class containing the static field. 2400 * @param[in] name The name of the static field to retrieve. 2401 * @param[out] result A pointer to store the retrieved character value. 2402 * @return Returns a status code of type `ani_status` indicating success or failure. 2403 */ 2404 ani_status (*Class_GetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char *result); 2405 2406 /** 2407 * @brief Retrieves a byte value from a static field of a class by its name. 2408 * 2409 * This function retrieves the byte value of the specified static field from the given class by its name. 2410 * 2411 * @param[in] env A pointer to the environment structure. 2412 * @param[in] cls The class containing the static field. 2413 * @param[in] name The name of the static field to retrieve. 2414 * @param[out] result A pointer to store the retrieved byte value. 2415 * @return Returns a status code of type `ani_status` indicating success or failure. 2416 */ 2417 ani_status (*Class_GetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte *result); 2418 2419 /** 2420 * @brief Retrieves a short value from a static field of a class by its name. 2421 * 2422 * This function retrieves the short value of the specified static field from the given class by its name. 2423 * 2424 * @param[in] env A pointer to the environment structure. 2425 * @param[in] cls The class containing the static field. 2426 * @param[in] name The name of the static field to retrieve. 2427 * @param[out] result A pointer to store the retrieved short value. 2428 * @return Returns a status code of type `ani_status` indicating success or failure. 2429 */ 2430 ani_status (*Class_GetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short *result); 2431 2432 /** 2433 * @brief Retrieves an integer value from a static field of a class by its name. 2434 * 2435 * This function retrieves the integer value of the specified static field from the given class by its name. 2436 * 2437 * @param[in] env A pointer to the environment structure. 2438 * @param[in] cls The class containing the static field. 2439 * @param[in] name The name of the static field to retrieve. 2440 * @param[out] result A pointer to store the retrieved integer value. 2441 * @return Returns a status code of type `ani_status` indicating success or failure. 2442 */ 2443 ani_status (*Class_GetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int *result); 2444 2445 /** 2446 * @brief Retrieves a long value from a static field of a class by its name. 2447 * 2448 * This function retrieves the long value of the specified static field from the given class by its name. 2449 * 2450 * @param[in] env A pointer to the environment structure. 2451 * @param[in] cls The class containing the static field. 2452 * @param[in] name The name of the static field to retrieve. 2453 * @param[out] result A pointer to store the retrieved long value. 2454 * @return Returns a status code of type `ani_status` indicating success or failure. 2455 */ 2456 ani_status (*Class_GetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long *result); 2457 2458 /** 2459 * @brief Retrieves a float value from a static field of a class by its name. 2460 * 2461 * This function retrieves the float value of the specified static field from the given class by its name. 2462 * 2463 * @param[in] env A pointer to the environment structure. 2464 * @param[in] cls The class containing the static field. 2465 * @param[in] name The name of the static field to retrieve. 2466 * @param[out] result A pointer to store the retrieved float value. 2467 * @return Returns a status code of type `ani_status` indicating success or failure. 2468 */ 2469 ani_status (*Class_GetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float *result); 2470 2471 /** 2472 * @brief Retrieves a double value from a static field of a class by its name. 2473 * 2474 * This function retrieves the double value of the specified static field from the given class by its name. 2475 * 2476 * @param[in] env A pointer to the environment structure. 2477 * @param[in] cls The class containing the static field. 2478 * @param[in] name The name of the static field to retrieve. 2479 * @param[out] result A pointer to store the retrieved double value. 2480 * @return Returns a status code of type `ani_status` indicating success or failure. 2481 */ 2482 ani_status (*Class_GetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double *result); 2483 2484 /** 2485 * @brief Retrieves a reference value from a static field of a class by its name. 2486 * 2487 * This function retrieves the reference value of the specified static field from the given class by its name. 2488 * 2489 * @param[in] env A pointer to the environment structure. 2490 * @param[in] cls The class containing the static field. 2491 * @param[in] name The name of the static field to retrieve. 2492 * @param[out] result A pointer to store the retrieved reference value. 2493 * @return Returns a status code of type `ani_status` indicating success or failure. 2494 */ 2495 ani_status (*Class_GetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref *result); 2496 2497 /** 2498 * @brief Sets a boolean value to a static field of a class by its name. 2499 * 2500 * This function assigns a boolean value to the specified static field of the given class by its name. 2501 * 2502 * @param[in] env A pointer to the environment structure. 2503 * @param[in] cls The class containing the static field. 2504 * @param[in] name The name of the static field to modify. 2505 * @param[in] value The boolean value to assign. 2506 * @return Returns a status code of type `ani_status` indicating success or failure. 2507 */ 2508 ani_status (*Class_SetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name, ani_boolean value); 2509 2510 /** 2511 * @brief Sets a character value to a static field of a class by its name. 2512 * 2513 * This function assigns a character value to the specified static field of the given class by its name. 2514 * 2515 * @param[in] env A pointer to the environment structure. 2516 * @param[in] cls The class containing the static field. 2517 * @param[in] name The name of the static field to modify. 2518 * @param[in] value The character value to assign. 2519 * @return Returns a status code of type `ani_status` indicating success or failure. 2520 */ 2521 ani_status (*Class_SetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char value); 2522 2523 /** 2524 * @brief Sets a byte value to a static field of a class by its name. 2525 * 2526 * This function assigns a byte value to the specified static field of the given class by its name. 2527 * 2528 * @param[in] env A pointer to the environment structure. 2529 * @param[in] cls The class containing the static field. 2530 * @param[in] name The name of the static field to modify. 2531 * @param[in] value The byte value to assign. 2532 * @return Returns a status code of type `ani_status` indicating success or failure. 2533 */ 2534 ani_status (*Class_SetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte value); 2535 2536 /** 2537 * @brief Sets a short value to a static field of a class by its name. 2538 * 2539 * This function assigns a short value to the specified static field of the given class by its name. 2540 * 2541 * @param[in] env A pointer to the environment structure. 2542 * @param[in] cls The class containing the static field. 2543 * @param[in] name The name of the static field to modify. 2544 * @param[in] value The short value to assign. 2545 * @return Returns a status code of type `ani_status` indicating success or failure. 2546 */ 2547 ani_status (*Class_SetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short value); 2548 2549 /** 2550 * @brief Sets an integer value to a static field of a class by its name. 2551 * 2552 * This function assigns an integer value to the specified static field of the given class by its name. 2553 * 2554 * @param[in] env A pointer to the environment structure. 2555 * @param[in] cls The class containing the static field. 2556 * @param[in] name The name of the static field to modify. 2557 * @param[in] value The integer value to assign. 2558 * @return Returns a status code of type `ani_status` indicating success or failure. 2559 */ 2560 ani_status (*Class_SetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int value); 2561 2562 /** 2563 * @brief Sets a long value to a static field of a class by its name. 2564 * 2565 * This function assigns a long value to the specified static field of the given class by its name. 2566 * 2567 * @param[in] env A pointer to the environment structure. 2568 * @param[in] cls The class containing the static field. 2569 * @param[in] name The name of the static field to modify. 2570 * @param[in] value The long value to assign. 2571 * @return Returns a status code of type `ani_status` indicating success or failure. 2572 */ 2573 ani_status (*Class_SetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long value); 2574 2575 /** 2576 * @brief Sets a float value to a static field of a class by its name. 2577 * 2578 * This function assigns a float value to the specified static field of the given class by its name. 2579 * 2580 * @param[in] env A pointer to the environment structure. 2581 * @param[in] cls The class containing the static field. 2582 * @param[in] name The name of the static field to modify. 2583 * @param[in] value The float value to assign. 2584 * @return Returns a status code of type `ani_status` indicating success or failure. 2585 */ 2586 ani_status (*Class_SetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float value); 2587 2588 /** 2589 * @brief Sets a double value to a static field of a class by its name. 2590 * 2591 * This function assigns a double value to the specified static field of the given class by its name. 2592 * 2593 * @param[in] env A pointer to the environment structure. 2594 * @param[in] cls The class containing the static field. 2595 * @param[in] name The name of the static field to modify. 2596 * @param[in] value The double value to assign. 2597 * @return Returns a status code of type `ani_status` indicating success or failure. 2598 */ 2599 ani_status (*Class_SetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double value); 2600 2601 /** 2602 * @brief Sets a reference value to a static field of a class by its name. 2603 * 2604 * This function assigns a reference value to the specified static field of the given class by its name. 2605 * 2606 * @param[in] env A pointer to the environment structure. 2607 * @param[in] cls The class containing the static field. 2608 * @param[in] name The name of the static field to modify. 2609 * @param[in] value The reference value to assign. 2610 * @return Returns a status code of type `ani_status` indicating success or failure. 2611 */ 2612 ani_status (*Class_SetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref value); 2613 2614 /** 2615 * @brief Calls a static method with a boolean return type. 2616 * 2617 * This function calls the specified static method of a class and retrieves a boolean result using variadic 2618 * arguments. 2619 * 2620 * @param[in] env A pointer to the environment structure. 2621 * @param[in] cls The class containing the static method. 2622 * @param[in] method The static method to call. 2623 * @param[out] result A pointer to store the boolean result. 2624 * @param[in] ... Variadic arguments to pass to the method. 2625 * @return Returns a status code of type `ani_status` indicating success or failure. 2626 */ 2627 ani_status (*Class_CallStaticMethod_Boolean)(ani_env *env, ani_class cls, ani_static_method method, 2628 ani_boolean *result, ...); 2629 2630 /** 2631 * @brief Calls a static method with a boolean return type (array-based). 2632 * 2633 * This function calls the specified static method of a class and retrieves a boolean result using arguments from an 2634 * array. 2635 * 2636 * @param[in] env A pointer to the environment structure. 2637 * @param[in] cls The class containing the static method. 2638 * @param[in] method The static method to call. 2639 * @param[out] result A pointer to store the boolean result. 2640 * @param[in] args An array of arguments to pass to the method. 2641 * @return Returns a status code of type `ani_status` indicating success or failure. 2642 */ 2643 ani_status (*Class_CallStaticMethod_Boolean_A)(ani_env *env, ani_class cls, ani_static_method method, 2644 ani_boolean *result, const ani_value *args); 2645 2646 /** 2647 * @brief Calls a static method with a boolean return type (variadic arguments). 2648 * 2649 * This function calls the specified static method of a class and retrieves a boolean result using a `va_list`. 2650 * 2651 * @param[in] env A pointer to the environment structure. 2652 * @param[in] cls The class containing the static method. 2653 * @param[in] method The static method to call. 2654 * @param[out] result A pointer to store the boolean result. 2655 * @param[in] args A `va_list` of arguments to pass to the method. 2656 * @return Returns a status code of type `ani_status` indicating success or failure. 2657 */ 2658 ani_status (*Class_CallStaticMethod_Boolean_V)(ani_env *env, ani_class cls, ani_static_method method, 2659 ani_boolean *result, va_list args); 2660 2661 /** 2662 * @brief Calls a static method with a character return type. 2663 * 2664 * This function calls the specified static method of a class and retrieves a character result using variadic 2665 * arguments. 2666 * 2667 * @param[in] env A pointer to the environment structure. 2668 * @param[in] cls The class containing the static method. 2669 * @param[in] method The static method to call. 2670 * @param[out] result A pointer to store the character result. 2671 * @param[in] ... Variadic arguments to pass to the method. 2672 * @return Returns a status code of type `ani_status` indicating success or failure. 2673 */ 2674 ani_status (*Class_CallStaticMethod_Char)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result, 2675 ...); 2676 2677 /** 2678 * @brief Calls a static method with a character return type (array-based). 2679 * 2680 * This function calls the specified static method of a class and retrieves a character result using arguments from 2681 * an array. 2682 * 2683 * @param[in] env A pointer to the environment structure. 2684 * @param[in] cls The class containing the static method. 2685 * @param[in] method The static method to call. 2686 * @param[out] result A pointer to store the character result. 2687 * @param[in] args An array of arguments to pass to the method. 2688 * @return Returns a status code of type `ani_status` indicating success or failure. 2689 */ 2690 ani_status (*Class_CallStaticMethod_Char_A)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result, 2691 const ani_value *args); 2692 2693 /** 2694 * @brief Calls a static method with a character return type (variadic arguments). 2695 * 2696 * This function calls the specified static method of a class and retrieves a character result using a `va_list`. 2697 * 2698 * @param[in] env A pointer to the environment structure. 2699 * @param[in] cls The class containing the static method. 2700 * @param[in] method The static method to call. 2701 * @param[out] result A pointer to store the character result. 2702 * @param[in] args A `va_list` of arguments to pass to the method. 2703 * @return Returns a status code of type `ani_status` indicating success or failure. 2704 */ 2705 ani_status (*Class_CallStaticMethod_Char_V)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result, 2706 va_list args); 2707 2708 /** 2709 * @brief Calls a static method with a byte return type. 2710 * 2711 * This function calls the specified static method of a class and retrieves a byte result using variadic arguments. 2712 * 2713 * @param[in] env A pointer to the environment structure. 2714 * @param[in] cls The class containing the static method. 2715 * @param[in] method The static method to call. 2716 * @param[out] result A pointer to store the byte result. 2717 * @param[in] ... Variadic arguments to pass to the method. 2718 * @return Returns a status code of type `ani_status` indicating success or failure. 2719 */ 2720 ani_status (*Class_CallStaticMethod_Byte)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result, 2721 ...); 2722 2723 /** 2724 * @brief Calls a static method with a byte return type (array-based). 2725 * 2726 * This function calls the specified static method of a class and retrieves a byte result using arguments from an 2727 * array. 2728 * 2729 * @param[in] env A pointer to the environment structure. 2730 * @param[in] cls The class containing the static method. 2731 * @param[in] method The static method to call. 2732 * @param[out] result A pointer to store the byte result. 2733 * @param[in] args An array of arguments to pass to the method. 2734 * @return Returns a status code of type `ani_status` indicating success or failure. 2735 */ 2736 ani_status (*Class_CallStaticMethod_Byte_A)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result, 2737 const ani_value *args); 2738 2739 /** 2740 * @brief Calls a static method with a byte return type (variadic arguments). 2741 * 2742 * This function calls the specified static method of a class and retrieves a byte result using a `va_list`. 2743 * 2744 * @param[in] env A pointer to the environment structure. 2745 * @param[in] cls The class containing the static method. 2746 * @param[in] method The static method to call. 2747 * @param[out] result A pointer to store the byte result. 2748 * @param[in] args A `va_list` of arguments to pass to the method. 2749 * @return Returns a status code of type `ani_status` indicating success or failure. 2750 */ 2751 ani_status (*Class_CallStaticMethod_Byte_V)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result, 2752 va_list args); 2753 2754 /** 2755 * @brief Calls a static method with a short return type. 2756 * 2757 * This function calls the specified static method of a class and retrieves a short result using variadic arguments. 2758 * 2759 * @param[in] env A pointer to the environment structure. 2760 * @param[in] cls The class containing the static method. 2761 * @param[in] method The static method to call. 2762 * @param[out] result A pointer to store the short result. 2763 * @param[in] ... Variadic arguments to pass to the method. 2764 * @return Returns a status code of type `ani_status` indicating success or failure. 2765 */ 2766 ani_status (*Class_CallStaticMethod_Short)(ani_env *env, ani_class cls, ani_static_method method, ani_short *result, 2767 ...); 2768 2769 /** 2770 * @brief Calls a static method with a short return type (array-based). 2771 * 2772 * This function calls the specified static method of a class and retrieves a short result using arguments from an 2773 * array. 2774 * 2775 * @param[in] env A pointer to the environment structure. 2776 * @param[in] cls The class containing the static method. 2777 * @param[in] method The static method to call. 2778 * @param[out] result A pointer to store the short result. 2779 * @param[in] args An array of arguments to pass to the method. 2780 * @return Returns a status code of type `ani_status` indicating success or failure. 2781 */ 2782 ani_status (*Class_CallStaticMethod_Short_A)(ani_env *env, ani_class cls, ani_static_method method, 2783 ani_short *result, const ani_value *args); 2784 2785 /** 2786 * @brief Calls a static method with a short return type (variadic arguments). 2787 * 2788 * This function calls the specified static method of a class and retrieves a short result using a `va_list`. 2789 * 2790 * @param[in] env A pointer to the environment structure. 2791 * @param[in] cls The class containing the static method. 2792 * @param[in] method The static method to call. 2793 * @param[out] result A pointer to store the short result. 2794 * @param[in] args A `va_list` of arguments to pass to the method. 2795 * @return Returns a status code of type `ani_status` indicating success or failure. 2796 */ 2797 ani_status (*Class_CallStaticMethod_Short_V)(ani_env *env, ani_class cls, ani_static_method method, 2798 ani_short *result, va_list args); 2799 2800 /** 2801 * @brief Calls a static method with an integer return type. 2802 * 2803 * This function calls the specified static method of a class and retrieves an integer result using variadic 2804 * arguments. 2805 * 2806 * @param[in] env A pointer to the environment structure. 2807 * @param[in] cls The class containing the static method. 2808 * @param[in] method The static method to call. 2809 * @param[out] result A pointer to store the integer result. 2810 * @param[in] ... Variadic arguments to pass to the method. 2811 * @return Returns a status code of type `ani_status` indicating success or failure. 2812 */ 2813 ani_status (*Class_CallStaticMethod_Int)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result, 2814 ...); 2815 2816 /** 2817 * @brief Calls a static method with an integer return type (array-based). 2818 * 2819 * This function calls the specified static method of a class and retrieves an integer result using arguments from 2820 * an array. 2821 * 2822 * @param[in] env A pointer to the environment structure. 2823 * @param[in] cls The class containing the static method. 2824 * @param[in] method The static method to call. 2825 * @param[out] result A pointer to store the integer result. 2826 * @param[in] args An array of arguments to pass to the method. 2827 * @return Returns a status code of type `ani_status` indicating success or failure. 2828 */ 2829 ani_status (*Class_CallStaticMethod_Int_A)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result, 2830 const ani_value *args); 2831 2832 /** 2833 * @brief Calls a static method with an integer return type (variadic arguments). 2834 * 2835 * This function calls the specified static method of a class and retrieves an integer result using a `va_list`. 2836 * 2837 * @param[in] env A pointer to the environment structure. 2838 * @param[in] cls The class containing the static method. 2839 * @param[in] method The static method to call. 2840 * @param[out] result A pointer to store the integer result. 2841 * @param[in] args A `va_list` of arguments to pass to the method. 2842 * @return Returns a status code of type `ani_status` indicating success or failure. 2843 */ 2844 ani_status (*Class_CallStaticMethod_Int_V)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result, 2845 va_list args); 2846 2847 /** 2848 * @brief Calls a static method with a long return type. 2849 * 2850 * This function calls the specified static method of a class and retrieves a long result using variadic arguments. 2851 * 2852 * @param[in] env A pointer to the environment structure. 2853 * @param[in] cls The class containing the static method. 2854 * @param[in] method The static method to call. 2855 * @param[out] result A pointer to store the long result. 2856 * @param[in] ... Variadic arguments to pass to the method. 2857 * @return Returns a status code of type `ani_status` indicating success or failure. 2858 */ 2859 ani_status (*Class_CallStaticMethod_Long)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result, 2860 ...); 2861 2862 /** 2863 * @brief Calls a static method with a long return type (array-based). 2864 * 2865 * This function calls the specified static method of a class and retrieves a long result using arguments from an 2866 * array. 2867 * 2868 * @param[in] env A pointer to the environment structure. 2869 * @param[in] cls The class containing the static method. 2870 * @param[in] method The static method to call. 2871 * @param[out] result A pointer to store the long result. 2872 * @param[in] args An array of arguments to pass to the method. 2873 * @return Returns a status code of type `ani_status` indicating success or failure. 2874 */ 2875 ani_status (*Class_CallStaticMethod_Long_A)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result, 2876 const ani_value *args); 2877 2878 /** 2879 * @brief Calls a static method with a long return type (variadic arguments). 2880 * 2881 * This function calls the specified static method of a class and retrieves a long result using a `va_list`. 2882 * 2883 * @param[in] env A pointer to the environment structure. 2884 * @param[in] cls The class containing the static method. 2885 * @param[in] method The static method to call. 2886 * @param[out] result A pointer to store the long result. 2887 * @param[in] args A `va_list` of arguments to pass to the method. 2888 * @return Returns a status code of type `ani_status` indicating success or failure. 2889 */ 2890 ani_status (*Class_CallStaticMethod_Long_V)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result, 2891 va_list args); 2892 2893 /** 2894 * @brief Calls a static method with a float return type. 2895 * 2896 * This function calls the specified static method of a class and retrieves a float result using variadic arguments. 2897 * 2898 * @param[in] env A pointer to the environment structure. 2899 * @param[in] cls The class containing the static method. 2900 * @param[in] method The static method to call. 2901 * @param[out] result A pointer to store the float result. 2902 * @param[in] ... Variadic arguments to pass to the method. 2903 * @return Returns a status code of type `ani_status` indicating success or failure. 2904 */ 2905 ani_status (*Class_CallStaticMethod_Float)(ani_env *env, ani_class cls, ani_static_method method, ani_float *result, 2906 ...); 2907 2908 /** 2909 * @brief Calls a static method with a float return type (array-based). 2910 * 2911 * This function calls the specified static method of a class and retrieves a float result using arguments from an 2912 * array. 2913 * 2914 * @param[in] env A pointer to the environment structure. 2915 * @param[in] cls The class containing the static method. 2916 * @param[in] method The static method to call. 2917 * @param[out] result A pointer to store the float result. 2918 * @param[in] args An array of arguments to pass to the method. 2919 * @return Returns a status code of type `ani_status` indicating success or failure. 2920 */ 2921 ani_status (*Class_CallStaticMethod_Float_A)(ani_env *env, ani_class cls, ani_static_method method, 2922 ani_float *result, const ani_value *args); 2923 2924 /** 2925 * @brief Calls a static method with a float return type (variadic arguments). 2926 * 2927 * This function calls the specified static method of a class and retrieves a float result using a `va_list`. 2928 * 2929 * @param[in] env A pointer to the environment structure. 2930 * @param[in] cls The class containing the static method. 2931 * @param[in] method The static method to call. 2932 * @param[out] result A pointer to store the float result. 2933 * @param[in] args A `va_list` of arguments to pass to the method. 2934 * @return Returns a status code of type `ani_status` indicating success or failure. 2935 */ 2936 ani_status (*Class_CallStaticMethod_Float_V)(ani_env *env, ani_class cls, ani_static_method method, 2937 ani_float *result, va_list args); 2938 2939 /** 2940 * @brief Calls a static method with a double return type. 2941 * 2942 * This function calls the specified static method of a class and retrieves a double result using variadic 2943 * arguments. 2944 * 2945 * @param[in] env A pointer to the environment structure. 2946 * @param[in] cls The class containing the static method. 2947 * @param[in] method The static method to call. 2948 * @param[out] result A pointer to store the double result. 2949 * @param[in] ... Variadic arguments to pass to the method. 2950 * @return Returns a status code of type `ani_status` indicating success or failure. 2951 */ 2952 ani_status (*Class_CallStaticMethod_Double)(ani_env *env, ani_class cls, ani_static_method method, 2953 ani_double *result, ...); 2954 2955 /** 2956 * @brief Calls a static method with a double return type (array-based). 2957 * 2958 * This function calls the specified static method of a class and retrieves a double result using arguments from an 2959 * array. 2960 * 2961 * @param[in] env A pointer to the environment structure. 2962 * @param[in] cls The class containing the static method. 2963 * @param[in] method The static method to call. 2964 * @param[out] result A pointer to store the double result. 2965 * @param[in] args An array of arguments to pass to the method. 2966 * @return Returns a status code of type `ani_status` indicating success or failure. 2967 */ 2968 ani_status (*Class_CallStaticMethod_Double_A)(ani_env *env, ani_class cls, ani_static_method method, 2969 ani_double *result, const ani_value *args); 2970 2971 /** 2972 * @brief Calls a static method with a double return type (variadic arguments). 2973 * 2974 * This function calls the specified static method of a class and retrieves a double result using a `va_list`. 2975 * 2976 * @param[in] env A pointer to the environment structure. 2977 * @param[in] cls The class containing the static method. 2978 * @param[in] method The static method to call. 2979 * @param[out] result A pointer to store the double result. 2980 * @param[in] args A `va_list` of arguments to pass to the method. 2981 * @return Returns a status code of type `ani_status` indicating success or failure. 2982 */ 2983 ani_status (*Class_CallStaticMethod_Double_V)(ani_env *env, ani_class cls, ani_static_method method, 2984 ani_double *result, va_list args); 2985 2986 /** 2987 * @brief Calls a static method with a reference return type. 2988 * 2989 * This function calls the specified static method of a class and retrieves a reference result using variadic 2990 * arguments. 2991 * 2992 * @param[in] env A pointer to the environment structure. 2993 * @param[in] cls The class containing the static method. 2994 * @param[in] method The static method to call. 2995 * @param[out] result A pointer to store the reference result. 2996 * @param[in] ... Variadic arguments to pass to the method. 2997 * @return Returns a status code of type `ani_status` indicating success or failure. 2998 */ 2999 ani_status (*Class_CallStaticMethod_Ref)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result, 3000 ...); 3001 3002 /** 3003 * @brief Calls a static method with a reference return type (array-based). 3004 * 3005 * This function calls the specified static method of a class and retrieves a reference result using arguments from 3006 * an array. 3007 * 3008 * @param[in] env A pointer to the environment structure. 3009 * @param[in] cls The class containing the static method. 3010 * @param[in] method The static method to call. 3011 * @param[out] result A pointer to store the reference result. 3012 * @param[in] args An array of arguments to pass to the method. 3013 * @return Returns a status code of type `ani_status` indicating success or failure. 3014 */ 3015 ani_status (*Class_CallStaticMethod_Ref_A)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result, 3016 const ani_value *args); 3017 3018 /** 3019 * @brief Calls a static method with a reference return type (variadic arguments). 3020 * 3021 * This function calls the specified static method of a class and retrieves a reference result using a `va_list`. 3022 * 3023 * @param[in] env A pointer to the environment structure. 3024 * @param[in] cls The class containing the static method. 3025 * @param[in] method The static method to call. 3026 * @param[out] result A pointer to store the reference result. 3027 * @param[in] args A `va_list` of arguments to pass to the method. 3028 * @return Returns a status code of type `ani_status` indicating success or failure. 3029 */ 3030 ani_status (*Class_CallStaticMethod_Ref_V)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result, 3031 va_list args); 3032 3033 /** 3034 * @brief Calls a static method with no return value. 3035 * 3036 * This function calls the specified static method of a class using variadic arguments. The method does not return a 3037 * value. 3038 * 3039 * @param[in] env A pointer to the environment structure. 3040 * @param[in] cls The class containing the static method. 3041 * @param[in] method The static method to call. 3042 * @param[in] ... Variadic arguments to pass to the method. 3043 * @return Returns a status code of type `ani_status` indicating success or failure. 3044 */ 3045 ani_status (*Class_CallStaticMethod_Void)(ani_env *env, ani_class cls, ani_static_method method, ...); 3046 3047 /** 3048 * @brief Calls a static method with no return value (array-based). 3049 * 3050 * This function calls the specified static method of a class using arguments from an array. The method does not 3051 * return a value. 3052 * 3053 * @param[in] env A pointer to the environment structure. 3054 * @param[in] cls The class containing the static method. 3055 * @param[in] method The static method to call. 3056 * @param[in] args An array of arguments to pass to the method. 3057 * @return Returns a status code of type `ani_status` indicating success or failure. 3058 */ 3059 ani_status (*Class_CallStaticMethod_Void_A)(ani_env *env, ani_class cls, ani_static_method method, 3060 const ani_value *args); 3061 3062 /** 3063 * @brief Calls a static method with no return value (variadic arguments). 3064 * 3065 * This function calls the specified static method of a class using a `va_list`. The method does not return a value. 3066 * 3067 * @param[in] env A pointer to the environment structure. 3068 * @param[in] cls The class containing the static method. 3069 * @param[in] method The static method to call. 3070 * @param[in] args A `va_list` of arguments to pass to the method. 3071 * @return Returns a status code of type `ani_status` indicating success or failure. 3072 */ 3073 ani_status (*Class_CallStaticMethod_Void_V)(ani_env *env, ani_class cls, ani_static_method method, va_list args); 3074 3075 /** 3076 * @brief Calls a static method by name with a boolean return type. 3077 * 3078 * This function calls the specified static method of a class by its name and retrieves a boolean result using 3079 * variadic arguments. 3080 * 3081 * @param[in] env A pointer to the environment structure. 3082 * @param[in] cls The class containing the static method. 3083 * @param[in] name The name of the static method to call. 3084 * @param[in] signature The signature of the static method to call. 3085 * @param[out] result A pointer to store the boolean result. 3086 * @param[in] ... Variadic arguments to pass to the method. 3087 * @return Returns a status code of type `ani_status` indicating success or failure. 3088 */ 3089 ani_status (*Class_CallStaticMethodByName_Boolean)(ani_env *env, ani_class cls, const char *name, 3090 const char *signature, ani_boolean *result, ...); 3091 3092 /** 3093 * @brief Calls a static method by name with a boolean return type (array-based). 3094 * 3095 * This function calls the specified static method of a class by its name and retrieves a boolean result using 3096 * arguments from an array. 3097 * 3098 * @param[in] env A pointer to the environment structure. 3099 * @param[in] cls The class containing the static method. 3100 * @param[in] name The name of the static method to call. 3101 * @param[in] signature The signature of the static method to call. 3102 * @param[out] result A pointer to store the boolean result. 3103 * @param[in] args An array of arguments to pass to the method. 3104 * @return Returns a status code of type `ani_status` indicating success or failure. 3105 */ 3106 ani_status (*Class_CallStaticMethodByName_Boolean_A)(ani_env *env, ani_class cls, const char *name, 3107 const char *signature, ani_boolean *result, 3108 const ani_value *args); 3109 3110 /** 3111 * @brief Calls a static method by name with a boolean return type (variadic arguments). 3112 * 3113 * This function calls the specified static method of a class by its name and retrieves a boolean result using a 3114 * `va_list`. 3115 * 3116 * @param[in] env A pointer to the environment structure. 3117 * @param[in] cls The class containing the static method. 3118 * @param[in] name The name of the static method to call. 3119 * @param[in] signature The signature of the static method to call. 3120 * @param[out] result A pointer to store the boolean result. 3121 * @param[in] args A `va_list` of arguments to pass to the method. 3122 * @return Returns a status code of type `ani_status` indicating success or failure. 3123 */ 3124 ani_status (*Class_CallStaticMethodByName_Boolean_V)(ani_env *env, ani_class cls, const char *name, 3125 const char *signature, ani_boolean *result, va_list args); 3126 3127 /** 3128 * @brief Calls a static method by name with a char return type. 3129 * 3130 * This function calls the specified static method of a class by its name and retrieves a char result using variadic 3131 * arguments. 3132 * 3133 * @param[in] env A pointer to the environment structure. 3134 * @param[in] cls The class containing the static method. 3135 * @param[in] name The name of the static method to call. 3136 * @param[in] signature The signature of the static method to call. 3137 * @param[out] result A pointer to store the char result. 3138 * @param[in] ... Variadic arguments to pass to the method. 3139 * @return Returns a status code of type `ani_status` indicating success or failure. 3140 */ 3141 ani_status (*Class_CallStaticMethodByName_Char)(ani_env *env, ani_class cls, const char *name, 3142 const char *signature, ani_char *result, ...); 3143 3144 /** 3145 * @brief Calls a static method by name with a char return type (array-based). 3146 * 3147 * This function calls the specified static method of a class by its name and retrieves a char result using 3148 * arguments from an array. 3149 * 3150 * @param[in] env A pointer to the environment structure. 3151 * @param[in] cls The class containing the static method. 3152 * @param[in] name The name of the static method to call. 3153 * @param[in] signature The signature of the static method to call. 3154 * @param[out] result A pointer to store the char result. 3155 * @param[in] args An array of arguments to pass to the method. 3156 * @return Returns a status code of type `ani_status` indicating success or failure. 3157 */ 3158 ani_status (*Class_CallStaticMethodByName_Char_A)(ani_env *env, ani_class cls, const char *name, 3159 const char *signature, ani_char *result, const ani_value *args); 3160 3161 /** 3162 * @brief Calls a static method by name with a char return type (variadic arguments). 3163 * 3164 * This function calls the specified static method of a class by its name and retrieves a char result using a 3165 * `va_list`. 3166 * 3167 * @param[in] env A pointer to the environment structure. 3168 * @param[in] cls The class containing the static method. 3169 * @param[in] name The name of the static method to call. 3170 * @param[in] signature The signature of the static method to call. 3171 * @param[out] result A pointer to store the char result. 3172 * @param[in] args A `va_list` of arguments to pass to the method. 3173 * @return Returns a status code of type `ani_status` indicating success or failure. 3174 */ 3175 ani_status (*Class_CallStaticMethodByName_Char_V)(ani_env *env, ani_class cls, const char *name, 3176 const char *signature, ani_char *result, va_list args); 3177 3178 /** 3179 * @brief Calls a static method by name with a byte return type. 3180 * 3181 * This function calls the specified static method of a class by its name and retrieves a byte result using variadic 3182 * arguments. 3183 * 3184 * @param[in] env A pointer to the environment structure. 3185 * @param[in] cls The class containing the static method. 3186 * @param[in] name The name of the static method to call. 3187 * @param[in] signature The signature of the static method to call. 3188 * @param[out] result A pointer to store the byte result. 3189 * @param[in] ... Variadic arguments to pass to the method. 3190 * @return Returns a status code of type `ani_status` indicating success or failure. 3191 */ 3192 ani_status (*Class_CallStaticMethodByName_Byte)(ani_env *env, ani_class cls, const char *name, 3193 const char *signature, ani_byte *result, ...); 3194 3195 /** 3196 * @brief Calls a static method by name with a byte return type (array-based). 3197 * 3198 * This function calls the specified static method of a class by its name and retrieves a byte result using 3199 * arguments from an array. 3200 * 3201 * @param[in] env A pointer to the environment structure. 3202 * @param[in] cls The class containing the static method. 3203 * @param[in] name The name of the static method to call. 3204 * @param[in] signature The signature of the static method to call. 3205 * @param[out] result A pointer to store the byte result. 3206 * @param[in] args An array of arguments to pass to the method. 3207 * @return Returns a status code of type `ani_status` indicating success or failure. 3208 */ 3209 ani_status (*Class_CallStaticMethodByName_Byte_A)(ani_env *env, ani_class cls, const char *name, 3210 const char *signature, ani_byte *result, const ani_value *args); 3211 3212 /** 3213 * @brief Calls a static method by name with a byte return type (variadic arguments). 3214 * 3215 * This function calls the specified static method of a class by its name and retrieves a byte result using a 3216 * `va_list`. 3217 * 3218 * @param[in] env A pointer to the environment structure. 3219 * @param[in] cls The class containing the static method. 3220 * @param[in] name The name of the static method to call. 3221 * @param[in] signature The signature of the static method to call. 3222 * @param[out] result A pointer to store the byte result. 3223 * @param[in] args A `va_list` of arguments to pass to the method. 3224 * @return Returns a status code of type `ani_status` indicating success or failure. 3225 */ 3226 ani_status (*Class_CallStaticMethodByName_Byte_V)(ani_env *env, ani_class cls, const char *name, 3227 const char *signature, ani_byte *result, va_list args); 3228 3229 /** 3230 * @brief Calls a static method by name with a short return type. 3231 * 3232 * This function calls the specified static method of a class by its name and retrieves a short result using 3233 * variadic arguments. 3234 * 3235 * @param[in] env A pointer to the environment structure. 3236 * @param[in] cls The class containing the static method. 3237 * @param[in] name The name of the static method to call. 3238 * @param[in] signature The signature of the static method to call. 3239 * @param[out] result A pointer to store the short result. 3240 * @param[in] ... Variadic arguments to pass to the method. 3241 * @return Returns a status code of type `ani_status` indicating success or failure. 3242 */ 3243 ani_status (*Class_CallStaticMethodByName_Short)(ani_env *env, ani_class cls, const char *name, 3244 const char *signature, ani_short *result, ...); 3245 3246 /** 3247 * @brief Calls a static method by name with a short return type (array-based). 3248 * 3249 * This function calls the specified static method of a class by its name and retrieves a short result using 3250 * arguments from an array. 3251 * 3252 * @param[in] env A pointer to the environment structure. 3253 * @param[in] cls The class containing the static method. 3254 * @param[in] name The name of the static method to call. 3255 * @param[in] signature The signature of the static method to call. 3256 * @param[out] result A pointer to store the short result. 3257 * @param[in] args An array of arguments to pass to the method. 3258 * @return Returns a status code of type `ani_status` indicating success or failure. 3259 */ 3260 ani_status (*Class_CallStaticMethodByName_Short_A)(ani_env *env, ani_class cls, const char *name, 3261 const char *signature, ani_short *result, const ani_value *args); 3262 3263 /** 3264 * @brief Calls a static method by name with a short return type (variadic arguments). 3265 * 3266 * This function calls the specified static method of a class by its name and retrieves a short result using a 3267 * `va_list`. 3268 * 3269 * @param[in] env A pointer to the environment structure. 3270 * @param[in] cls The class containing the static method. 3271 * @param[in] name The name of the static method to call. 3272 * @param[in] signature The signature of 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_CallStaticMethodByName_Short_V)(ani_env *env, ani_class cls, const char *name, 3278 const char *signature, ani_short *result, va_list args); 3279 3280 /** 3281 * @brief Calls a static method by name with a integer return type. 3282 * 3283 * This function calls the specified static method of a class by its name and retrieves a integer result using 3284 * variadic 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] name The name of the static method to call. 3289 * @param[in] signature The signature of the static method to call. 3290 * @param[out] result A pointer to store the integer result. 3291 * @param[in] ... Variadic arguments to pass to the method. 3292 * @return Returns a status code of type `ani_status` indicating success or failure. 3293 */ 3294 ani_status (*Class_CallStaticMethodByName_Int)(ani_env *env, ani_class cls, const char *name, const char *signature, 3295 ani_int *result, ...); 3296 3297 /** 3298 * @brief Calls a static method by name with a integer return type (array-based). 3299 * 3300 * This function calls the specified static method of a class by its name and retrieves a integer result using 3301 * arguments from an array. 3302 * 3303 * @param[in] env A pointer to the environment structure. 3304 * @param[in] cls The class containing the static method. 3305 * @param[in] name The name of the static method to call. 3306 * @param[in] signature The signature of the static method to call. 3307 * @param[out] result A pointer to store the integer result. 3308 * @param[in] args An array of arguments to pass to the method. 3309 * @return Returns a status code of type `ani_status` indicating success or failure. 3310 */ 3311 ani_status (*Class_CallStaticMethodByName_Int_A)(ani_env *env, ani_class cls, const char *name, 3312 const char *signature, ani_int *result, const ani_value *args); 3313 3314 /** 3315 * @brief Calls a static method by name with a integer return type (variadic arguments). 3316 * 3317 * This function calls the specified static method of a class by its name and retrieves a integer result using a 3318 * `va_list`. 3319 * 3320 * @param[in] env A pointer to the environment structure. 3321 * @param[in] cls The class containing the static method. 3322 * @param[in] name The name of the static method to call. 3323 * @param[in] signature The signature of the static method to call. 3324 * @param[out] result A pointer to store the integer result. 3325 * @param[in] args A `va_list` of arguments to pass to the method. 3326 * @return Returns a status code of type `ani_status` indicating success or failure. 3327 */ 3328 ani_status (*Class_CallStaticMethodByName_Int_V)(ani_env *env, ani_class cls, const char *name, 3329 const char *signature, ani_int *result, va_list args); 3330 3331 /** 3332 * @brief Calls a static method by name with a long return type. 3333 * 3334 * This function calls the specified static method of a class by its name and retrieves a long result using variadic 3335 * arguments. 3336 * 3337 * @param[in] env A pointer to the environment structure. 3338 * @param[in] cls The class containing the static method. 3339 * @param[in] name The name of the static method to call. 3340 * @param[in] signature The signature of the static method to call. 3341 * @param[out] result A pointer to store the long result. 3342 * @param[in] ... Variadic arguments to pass to the method. 3343 * @return Returns a status code of type `ani_status` indicating success or failure. 3344 */ 3345 ani_status (*Class_CallStaticMethodByName_Long)(ani_env *env, ani_class cls, const char *name, 3346 const char *signature, ani_long *result, ...); 3347 3348 /** 3349 * @brief Calls a static method by name with a long return type (array-based). 3350 * 3351 * This function calls the specified static method of a class by its name and retrieves a long result using 3352 * arguments from an array. 3353 * 3354 * @param[in] env A pointer to the environment structure. 3355 * @param[in] cls The class containing the static method. 3356 * @param[in] name The name of the static method to call. 3357 * @param[in] signature The signature of the static method to call. 3358 * @param[out] result A pointer to store the long result. 3359 * @param[in] args An array of arguments to pass to the method. 3360 * @return Returns a status code of type `ani_status` indicating success or failure. 3361 */ 3362 ani_status (*Class_CallStaticMethodByName_Long_A)(ani_env *env, ani_class cls, const char *name, 3363 const char *signature, ani_long *result, const ani_value *args); 3364 3365 /** 3366 * @brief Calls a static method by name with a long return type (variadic arguments). 3367 * 3368 * This function calls the specified static method of a class by its name and retrieves a long result using a 3369 * `va_list`. 3370 * 3371 * @param[in] env A pointer to the environment structure. 3372 * @param[in] cls The class containing the static method. 3373 * @param[in] name The name of the static method to call. 3374 * @param[in] signature The signature of the static method to call. 3375 * @param[out] result A pointer to store the long result. 3376 * @param[in] args A `va_list` of arguments to pass to the method. 3377 * @return Returns a status code of type `ani_status` indicating success or failure. 3378 */ 3379 ani_status (*Class_CallStaticMethodByName_Long_V)(ani_env *env, ani_class cls, const char *name, 3380 const char *signature, ani_long *result, va_list args); 3381 3382 /** 3383 * @brief Calls a static method by name with a float return type. 3384 * 3385 * This function calls the specified static method of a class by its name and retrieves a float result using 3386 * variadic arguments. 3387 * 3388 * @param[in] env A pointer to the environment structure. 3389 * @param[in] cls The class containing the static method. 3390 * @param[in] name The name of the static method to call. 3391 * @param[in] signature The signature of the static method to call. 3392 * @param[out] result A pointer to store the float result. 3393 * @param[in] ... Variadic arguments to pass to the method. 3394 * @return Returns a status code of type `ani_status` indicating success or failure. 3395 */ 3396 ani_status (*Class_CallStaticMethodByName_Float)(ani_env *env, ani_class cls, const char *name, 3397 const char *signature, ani_float *result, ...); 3398 3399 /** 3400 * @brief Calls a static method by name with a float return type (array-based). 3401 * 3402 * This function calls the specified static method of a class by its name and retrieves a float result using 3403 * arguments from an array. 3404 * 3405 * @param[in] env A pointer to the environment structure. 3406 * @param[in] cls The class containing the static method. 3407 * @param[in] name The name of the static method to call. 3408 * @param[in] signature The signature of the static method to call. 3409 * @param[out] result A pointer to store the float result. 3410 * @param[in] args An array of arguments to pass to the method. 3411 * @return Returns a status code of type `ani_status` indicating success or failure. 3412 */ 3413 ani_status (*Class_CallStaticMethodByName_Float_A)(ani_env *env, ani_class cls, const char *name, 3414 const char *signature, ani_float *result, const ani_value *args); 3415 3416 /** 3417 * @brief Calls a static method by name with a float return type (variadic arguments). 3418 * 3419 * This function calls the specified static method of a class by its name and retrieves a float result using a 3420 * `va_list`. 3421 * 3422 * @param[in] env A pointer to the environment structure. 3423 * @param[in] cls The class containing the static method. 3424 * @param[in] name The name of the static method to call. 3425 * @param[in] signature The signature of the static method to call. 3426 * @param[out] result A pointer to store the float result. 3427 * @param[in] args A `va_list` of arguments to pass to the method. 3428 * @return Returns a status code of type `ani_status` indicating success or failure. 3429 */ 3430 ani_status (*Class_CallStaticMethodByName_Float_V)(ani_env *env, ani_class cls, const char *name, 3431 const char *signature, ani_float *result, va_list args); 3432 3433 /** 3434 * @brief Calls a static method by name with a double return type. 3435 * 3436 * This function calls the specified static method of a class by its name and retrieves a double result using 3437 * variadic arguments. 3438 * 3439 * @param[in] env A pointer to the environment structure. 3440 * @param[in] cls The class containing the static method. 3441 * @param[in] name The name of the static method to call. 3442 * @param[in] signature The signature of the static method to call. 3443 * @param[out] result A pointer to store the double result. 3444 * @param[in] ... Variadic arguments to pass to the method. 3445 * @return Returns a status code of type `ani_status` indicating success or failure. 3446 */ 3447 ani_status (*Class_CallStaticMethodByName_Double)(ani_env *env, ani_class cls, const char *name, 3448 const char *signature, ani_double *result, ...); 3449 3450 /** 3451 * @brief Calls a static method by name with a double return type (array-based). 3452 * 3453 * This function calls the specified static method of a class by its name and retrieves a double result using 3454 * arguments from an array. 3455 * 3456 * @param[in] env A pointer to the environment structure. 3457 * @param[in] cls The class containing the static method. 3458 * @param[in] name The name of the static method to call. 3459 * @param[in] signature The signature of the static method to call. 3460 * @param[out] result A pointer to store the double result. 3461 * @param[in] args An array of arguments to pass to the method. 3462 * @return Returns a status code of type `ani_status` indicating success or failure. 3463 */ 3464 ani_status (*Class_CallStaticMethodByName_Double_A)(ani_env *env, ani_class cls, const char *name, 3465 const char *signature, ani_double *result, 3466 const ani_value *args); 3467 3468 /** 3469 * @brief Calls a static method by name with a double return type (variadic arguments). 3470 * 3471 * This function calls the specified static method of a class by its name and retrieves a double result using a 3472 * `va_list`. 3473 * 3474 * @param[in] env A pointer to the environment structure. 3475 * @param[in] cls The class containing the static method. 3476 * @param[in] name The name of the static method to call. 3477 * @param[in] signature The signature of the static method to call. 3478 * @param[out] result A pointer to store the double result. 3479 * @param[in] args A `va_list` of arguments to pass to the method. 3480 * @return Returns a status code of type `ani_status` indicating success or failure. 3481 */ 3482 ani_status (*Class_CallStaticMethodByName_Double_V)(ani_env *env, ani_class cls, const char *name, 3483 const char *signature, ani_double *result, va_list args); 3484 3485 /** 3486 * @brief Calls a static method by name with a reference return type. 3487 * 3488 * This function calls the specified static method of a class by its name and retrieves a reference result using 3489 * variadic arguments. 3490 * 3491 * @param[in] env A pointer to the environment structure. 3492 * @param[in] cls The class containing the static method. 3493 * @param[in] name The name of the static method to call. 3494 * @param[in] signature The signature of the static method to call. 3495 * @param[out] result A pointer to store the reference result. 3496 * @param[in] ... Variadic arguments to pass to the method. 3497 * @return Returns a status code of type `ani_status` indicating success or failure. 3498 */ 3499 ani_status (*Class_CallStaticMethodByName_Ref)(ani_env *env, ani_class cls, const char *name, const char *signature, 3500 ani_ref *result, ...); 3501 3502 /** 3503 * @brief Calls a static method by name with a reference return type (array-based). 3504 * 3505 * This function calls the specified static method of a class by its name and retrieves a reference result using 3506 * arguments from an array. 3507 * 3508 * @param[in] env A pointer to the environment structure. 3509 * @param[in] cls The class containing the static method. 3510 * @param[in] name The name of the static method to call. 3511 * @param[in] signature The signature of the static method to call. 3512 * @param[out] result A pointer to store the reference result. 3513 * @param[in] args An array of arguments to pass to the method. 3514 * @return Returns a status code of type `ani_status` indicating success or failure. 3515 */ 3516 ani_status (*Class_CallStaticMethodByName_Ref_A)(ani_env *env, ani_class cls, const char *name, 3517 const char *signature, ani_ref *result, const ani_value *args); 3518 3519 /** 3520 * @brief Calls a static method by name with a reference return type (variadic arguments). 3521 * 3522 * This function calls the specified static method of a class by its name and retrieves a reference result using a 3523 * `va_list`. 3524 * 3525 * @param[in] env A pointer to the environment structure. 3526 * @param[in] cls The class containing the static method. 3527 * @param[in] name The name of the static method to call. 3528 * @param[in] signature The signature of the static method to call. 3529 * @param[out] result A pointer to store the reference result. 3530 * @param[in] args A `va_list` of arguments to pass to the method. 3531 * @return Returns a status code of type `ani_status` indicating success or failure. 3532 */ 3533 ani_status (*Class_CallStaticMethodByName_Ref_V)(ani_env *env, ani_class cls, const char *name, 3534 const char *signature, ani_ref *result, va_list args); 3535 3536 /** 3537 * @brief Calls a static method by name with no return value. 3538 * 3539 * This function calls the specified static method of a class by its name using variadic arguments. The method does 3540 * not return a value. 3541 * 3542 * @param[in] env A pointer to the environment structure. 3543 * @param[in] cls The class containing the static method. 3544 * @param[in] name The name of the static method to call. 3545 * @param[in] signature The signature of the static method to call. 3546 * @param[in] ... Variadic arguments to pass to the method. 3547 * @return Returns a status code of type `ani_status` indicating success or failure. 3548 */ 3549 ani_status (*Class_CallStaticMethodByName_Void)(ani_env *env, ani_class cls, const char *name, 3550 const char *signature, ...); 3551 3552 /** 3553 * @brief Calls a static method by name with no return value (array-based). 3554 * 3555 * This function calls the specified static method of a class by its name using arguments from an array. The method 3556 * does not return a value. 3557 * 3558 * @param[in] env A pointer to the environment structure. 3559 * @param[in] cls The class containing the static method. 3560 * @param[in] name The name of the static method to call. 3561 * @param[in] signature The signature of the static method to call. 3562 * @param[in] args An array of arguments to pass to the method. 3563 * @return Returns a status code of type `ani_status` indicating success or failure. 3564 */ 3565 ani_status (*Class_CallStaticMethodByName_Void_A)(ani_env *env, ani_class cls, const char *name, 3566 const char *signature, const ani_value *args); 3567 3568 /** 3569 * @brief Calls a static method by name with no return value (variadic arguments). 3570 * 3571 * This function calls the specified static method of a class by its name using a `va_list`. The method does not 3572 * return a value. 3573 * 3574 * @param[in] env A pointer to the environment structure. 3575 * @param[in] cls The class containing the static method. 3576 * @param[in] name The name of the static method to call. 3577 * @param[in] signature The signature of the static method to call. 3578 * @param[in] args A `va_list` of arguments to pass to the method. 3579 * @return Returns a status code of type `ani_status` indicating success or failure. 3580 */ 3581 ani_status (*Class_CallStaticMethodByName_Void_V)(ani_env *env, ani_class cls, const char *name, 3582 const char *signature, va_list args); 3583 3584 /** 3585 * @brief Retrieves a boolean value from a field of an object. 3586 * 3587 * This function retrieves the boolean value of the specified field from the given object. 3588 * 3589 * @param[in] env A pointer to the environment structure. 3590 * @param[in] object The object containing the field. 3591 * @param[in] field The field to retrieve the boolean value from. 3592 * @param[out] result A pointer to store the retrieved boolean value. 3593 * @return Returns a status code of type `ani_status` indicating success or failure. 3594 */ 3595 ani_status (*Object_GetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean *result); 3596 3597 /** 3598 * @brief Retrieves a char value from a field of an object. 3599 * 3600 * This function retrieves the char value of the specified field from the given object. 3601 * 3602 * @param[in] env A pointer to the environment structure. 3603 * @param[in] object The object containing the field. 3604 * @param[in] field The field to retrieve the char value from. 3605 * @param[out] result A pointer to store the retrieved char value. 3606 * @return Returns a status code of type `ani_status` indicating success or failure. 3607 */ 3608 ani_status (*Object_GetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char *result); 3609 3610 /** 3611 * @brief Retrieves a byte value from a field of an object. 3612 * 3613 * This function retrieves the byte value of the specified field from the given object. 3614 * 3615 * @param[in] env A pointer to the environment structure. 3616 * @param[in] object The object containing the field. 3617 * @param[in] field The field to retrieve the byte value from. 3618 * @param[out] result A pointer to store the retrieved byte value. 3619 * @return Returns a status code of type `ani_status` indicating success or failure. 3620 */ 3621 ani_status (*Object_GetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte *result); 3622 3623 /** 3624 * @brief Retrieves a short value from a field of an object. 3625 * 3626 * This function retrieves the short value of the specified field from the given object. 3627 * 3628 * @param[in] env A pointer to the environment structure. 3629 * @param[in] object The object containing the field. 3630 * @param[in] field The field to retrieve the short value from. 3631 * @param[out] result A pointer to store the retrieved short value. 3632 * @return Returns a status code of type `ani_status` indicating success or failure. 3633 */ 3634 ani_status (*Object_GetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short *result); 3635 3636 /** 3637 * @brief Retrieves a integer value from a field of an object. 3638 * 3639 * This function retrieves the integer value of the specified field from the given object. 3640 * 3641 * @param[in] env A pointer to the environment structure. 3642 * @param[in] object The object containing the field. 3643 * @param[in] field The field to retrieve the integer value from. 3644 * @param[out] result A pointer to store the retrieved integer value. 3645 * @return Returns a status code of type `ani_status` indicating success or failure. 3646 */ 3647 ani_status (*Object_GetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int *result); 3648 3649 /** 3650 * @brief Retrieves a long value from a field of an object. 3651 * 3652 * This function retrieves the long value of the specified field from the given object. 3653 * 3654 * @param[in] env A pointer to the environment structure. 3655 * @param[in] object The object containing the field. 3656 * @param[in] field The field to retrieve the long value from. 3657 * @param[out] result A pointer to store the retrieved long value. 3658 * @return Returns a status code of type `ani_status` indicating success or failure. 3659 */ 3660 ani_status (*Object_GetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long *result); 3661 3662 /** 3663 * @brief Retrieves a float value from a field of an object. 3664 * 3665 * This function retrieves the float value of the specified field from the given object. 3666 * 3667 * @param[in] env A pointer to the environment structure. 3668 * @param[in] object The object containing the field. 3669 * @param[in] field The field to retrieve the float value from. 3670 * @param[out] result A pointer to store the retrieved float value. 3671 * @return Returns a status code of type `ani_status` indicating success or failure. 3672 */ 3673 ani_status (*Object_GetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float *result); 3674 3675 /** 3676 * @brief Retrieves a double value from a field of an object. 3677 * 3678 * This function retrieves the double value of the specified field from the given object. 3679 * 3680 * @param[in] env A pointer to the environment structure. 3681 * @param[in] object The object containing the field. 3682 * @param[in] field The field to retrieve the double value from. 3683 * @param[out] result A pointer to store the retrieved double value. 3684 * @return Returns a status code of type `ani_status` indicating success or failure. 3685 */ 3686 ani_status (*Object_GetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double *result); 3687 3688 /** 3689 * @brief Retrieves a reference value from a field of an object. 3690 * 3691 * This function retrieves the reference value of the specified field from the given object. 3692 * 3693 * @param[in] env A pointer to the environment structure. 3694 * @param[in] object The object containing the field. 3695 * @param[in] field The field to retrieve the reference value from. 3696 * @param[out] result A pointer to store the retrieved reference value. 3697 * @return Returns a status code of type `ani_status` indicating success or failure. 3698 */ 3699 ani_status (*Object_GetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref *result); 3700 3701 /** 3702 * @brief Sets a boolean value to a field of an object. 3703 * 3704 * This function assigns a boolean value to the specified field of the given object. 3705 * 3706 * @param[in] env A pointer to the environment structure. 3707 * @param[in] object The object containing the field. 3708 * @param[in] field The field to set the boolean value to. 3709 * @param[in] value The boolean value to assign to the field. 3710 * @return Returns a status code of type `ani_status` indicating success or failure. 3711 */ 3712 ani_status (*Object_SetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean value); 3713 3714 /** 3715 * @brief Sets a char value to a field of an object. 3716 * 3717 * This function assigns a char value to the specified field of the given object. 3718 * 3719 * @param[in] env A pointer to the environment structure. 3720 * @param[in] object The object containing the field. 3721 * @param[in] field The field to set the char value to. 3722 * @param[in] value The char value to assign to the field. 3723 * @return Returns a status code of type `ani_status` indicating success or failure. 3724 */ 3725 ani_status (*Object_SetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char value); 3726 3727 /** 3728 * @brief Sets a byte value to a field of an object. 3729 * 3730 * This function assigns a byte value to the specified field of the given object. 3731 * 3732 * @param[in] env A pointer to the environment structure. 3733 * @param[in] object The object containing the field. 3734 * @param[in] field The field to set the byte value to. 3735 * @param[in] value The byte value to assign to the field. 3736 * @return Returns a status code of type `ani_status` indicating success or failure. 3737 */ 3738 ani_status (*Object_SetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte value); 3739 3740 /** 3741 * @brief Sets a short value to a field of an object. 3742 * 3743 * This function assigns a short value to the specified field of the given object. 3744 * 3745 * @param[in] env A pointer to the environment structure. 3746 * @param[in] object The object containing the field. 3747 * @param[in] field The field to set the short value to. 3748 * @param[in] value The short value to assign to the field. 3749 * @return Returns a status code of type `ani_status` indicating success or failure. 3750 */ 3751 ani_status (*Object_SetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short value); 3752 3753 /** 3754 * @brief Sets a integer value to a field of an object. 3755 * 3756 * This function assigns a integer value to the specified field of the given object. 3757 * 3758 * @param[in] env A pointer to the environment structure. 3759 * @param[in] object The object containing the field. 3760 * @param[in] field The field to set the integer value to. 3761 * @param[in] value The integer value to assign to the field. 3762 * @return Returns a status code of type `ani_status` indicating success or failure. 3763 */ 3764 ani_status (*Object_SetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int value); 3765 3766 /** 3767 * @brief Sets a long value to a field of an object. 3768 * 3769 * This function assigns a long value to the specified field of the given object. 3770 * 3771 * @param[in] env A pointer to the environment structure. 3772 * @param[in] object The object containing the field. 3773 * @param[in] field The field to set the long value to. 3774 * @param[in] value The long value to assign to the field. 3775 * @return Returns a status code of type `ani_status` indicating success or failure. 3776 */ 3777 ani_status (*Object_SetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long value); 3778 3779 /** 3780 * @brief Sets a float value to a field of an object. 3781 * 3782 * This function assigns a float value to the specified field of the given object. 3783 * 3784 * @param[in] env A pointer to the environment structure. 3785 * @param[in] object The object containing the field. 3786 * @param[in] field The field to set the float value to. 3787 * @param[in] value The float value to assign to the field. 3788 * @return Returns a status code of type `ani_status` indicating success or failure. 3789 */ 3790 ani_status (*Object_SetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float value); 3791 3792 /** 3793 * @brief Sets a double value to a field of an object. 3794 * 3795 * This function assigns a double value to the specified field of the given object. 3796 * 3797 * @param[in] env A pointer to the environment structure. 3798 * @param[in] object The object containing the field. 3799 * @param[in] field The field to set the double value to. 3800 * @param[in] value The double value to assign to the field. 3801 * @return Returns a status code of type `ani_status` indicating success or failure. 3802 */ 3803 ani_status (*Object_SetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double value); 3804 3805 /** 3806 * @brief Sets a reference value to a field of an object. 3807 * 3808 * This function assigns a reference value to the specified field of the given object. 3809 * 3810 * @param[in] env A pointer to the environment structure. 3811 * @param[in] object The object containing the field. 3812 * @param[in] field The field to set the reference value to. 3813 * @param[in] value The reference value to assign to the field. 3814 * @return Returns a status code of type `ani_status` indicating success or failure. 3815 */ 3816 ani_status (*Object_SetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref value); 3817 3818 /** 3819 * @brief Retrieves a boolean value from a field of an object by its name. 3820 * 3821 * This function retrieves the boolean value of the specified field from the given object by its name. 3822 * 3823 * @param[in] env A pointer to the environment structure. 3824 * @param[in] object The object containing the field. 3825 * @param[in] name The name of the field to retrieve the boolean value from. 3826 * @param[out] result A pointer to store the retrieved boolean value. 3827 * @return Returns a status code of type `ani_status` indicating success or failure. 3828 */ 3829 ani_status (*Object_GetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean *result); 3830 3831 /** 3832 * @brief Retrieves a char value from a field of an object by its name. 3833 * 3834 * This function retrieves the char value of the specified field from the given object by its name. 3835 * 3836 * @param[in] env A pointer to the environment structure. 3837 * @param[in] object The object containing the field. 3838 * @param[in] name The name of the field to retrieve the char value from. 3839 * @param[out] result A pointer to store the retrieved char value. 3840 * @return Returns a status code of type `ani_status` indicating success or failure. 3841 */ 3842 ani_status (*Object_GetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result); 3843 3844 /** 3845 * @brief Retrieves a byte value from a field of an object by its name. 3846 * 3847 * This function retrieves the byte value of the specified field from the given object by its name. 3848 * 3849 * @param[in] env A pointer to the environment structure. 3850 * @param[in] object The object containing the field. 3851 * @param[in] name The name of the field to retrieve the byte value from. 3852 * @param[out] result A pointer to store the retrieved byte value. 3853 * @return Returns a status code of type `ani_status` indicating success or failure. 3854 */ 3855 ani_status (*Object_GetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result); 3856 3857 /** 3858 * @brief Retrieves a short value from a field of an object by its name. 3859 * 3860 * This function retrieves the short value of the specified field from the given object by its name. 3861 * 3862 * @param[in] env A pointer to the environment structure. 3863 * @param[in] object The object containing the field. 3864 * @param[in] name The name of the field to retrieve the short value from. 3865 * @param[out] result A pointer to store the retrieved short value. 3866 * @return Returns a status code of type `ani_status` indicating success or failure. 3867 */ 3868 ani_status (*Object_GetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result); 3869 3870 /** 3871 * @brief Retrieves a integer value from a field of an object by its name. 3872 * 3873 * This function retrieves the integer value of the specified field from the given object by its name. 3874 * 3875 * @param[in] env A pointer to the environment structure. 3876 * @param[in] object The object containing the field. 3877 * @param[in] name The name of the field to retrieve the integer value from. 3878 * @param[out] result A pointer to store the retrieved integer value. 3879 * @return Returns a status code of type `ani_status` indicating success or failure. 3880 */ 3881 ani_status (*Object_GetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result); 3882 3883 /** 3884 * @brief Retrieves a long value from a field of an object by its name. 3885 * 3886 * This function retrieves the long value of the specified field from the given object by its name. 3887 * 3888 * @param[in] env A pointer to the environment structure. 3889 * @param[in] object The object containing the field. 3890 * @param[in] name The name of the field to retrieve the long value from. 3891 * @param[out] result A pointer to store the retrieved long value. 3892 * @return Returns a status code of type `ani_status` indicating success or failure. 3893 */ 3894 ani_status (*Object_GetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result); 3895 3896 /** 3897 * @brief Retrieves a float value from a field of an object by its name. 3898 * 3899 * This function retrieves the float value of the specified field from the given object by its name. 3900 * 3901 * @param[in] env A pointer to the environment structure. 3902 * @param[in] object The object containing the field. 3903 * @param[in] name The name of the field to retrieve the float value from. 3904 * @param[out] result A pointer to store the retrieved float value. 3905 * @return Returns a status code of type `ani_status` indicating success or failure. 3906 */ 3907 ani_status (*Object_GetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result); 3908 3909 /** 3910 * @brief Retrieves a double value from a field of an object by its name. 3911 * 3912 * This function retrieves the double value of the specified field from the given object by its name. 3913 * 3914 * @param[in] env A pointer to the environment structure. 3915 * @param[in] object The object containing the field. 3916 * @param[in] name The name of the field to retrieve the double value from. 3917 * @param[out] result A pointer to store the retrieved double value. 3918 * @return Returns a status code of type `ani_status` indicating success or failure. 3919 */ 3920 ani_status (*Object_GetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double *result); 3921 3922 /** 3923 * @brief Retrieves a reference value from a field of an object by its name. 3924 * 3925 * This function retrieves the reference value of the specified field from the given object by its name. 3926 * 3927 * @param[in] env A pointer to the environment structure. 3928 * @param[in] object The object containing the field. 3929 * @param[in] name The name of the field to retrieve the reference value from. 3930 * @param[out] result A pointer to store the retrieved reference value. 3931 * @return Returns a status code of type `ani_status` indicating success or failure. 3932 */ 3933 ani_status (*Object_GetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result); 3934 3935 /** 3936 * @brief Sets a boolean value to a field of an object by its name. 3937 * 3938 * This function assigns a boolean value to the specified field of the given object by its name. 3939 * 3940 * @param[in] env A pointer to the environment structure. 3941 * @param[in] object The object containing the field. 3942 * @param[in] name The name of the field to set the boolean value to. 3943 * @param[in] value The boolean value to assign to the field. 3944 * @return Returns a status code of type `ani_status` indicating success or failure. 3945 */ 3946 ani_status (*Object_SetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean value); 3947 3948 /** 3949 * @brief Sets a char value to a field of an object by its name. 3950 * 3951 * This function assigns a char value to the specified field of the given object by its name. 3952 * 3953 * @param[in] env A pointer to the environment structure. 3954 * @param[in] object The object containing the field. 3955 * @param[in] name The name of the field to set the char value to. 3956 * @param[in] value The char value to assign to the field. 3957 * @return Returns a status code of type `ani_status` indicating success or failure. 3958 */ 3959 ani_status (*Object_SetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value); 3960 3961 /** 3962 * @brief Sets a byte value to a field of an object by its name. 3963 * 3964 * This function assigns a byte value to the specified field of the given object by its name. 3965 * 3966 * @param[in] env A pointer to the environment structure. 3967 * @param[in] object The object containing the field. 3968 * @param[in] name The name of the field to set the byte value to. 3969 * @param[in] value The byte value to assign to the field. 3970 * @return Returns a status code of type `ani_status` indicating success or failure. 3971 */ 3972 ani_status (*Object_SetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value); 3973 3974 /** 3975 * @brief Sets a short value to a field of an object by its name. 3976 * 3977 * This function assigns a short value to the specified field of the given object by its name. 3978 * 3979 * @param[in] env A pointer to the environment structure. 3980 * @param[in] object The object containing the field. 3981 * @param[in] name The name of the field to set the short value to. 3982 * @param[in] value The short value to assign to the field. 3983 * @return Returns a status code of type `ani_status` indicating success or failure. 3984 */ 3985 ani_status (*Object_SetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value); 3986 3987 /** 3988 * @brief Sets a integer value to a field of an object by its name. 3989 * 3990 * This function assigns a integer value to the specified field of the given object by its name. 3991 * 3992 * @param[in] env A pointer to the environment structure. 3993 * @param[in] object The object containing the field. 3994 * @param[in] name The name of the field to set the integer value to. 3995 * @param[in] value The integer value to assign to the field. 3996 * @return Returns a status code of type `ani_status` indicating success or failure. 3997 */ 3998 ani_status (*Object_SetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value); 3999 4000 /** 4001 * @brief Sets a long value to a field of an object by its name. 4002 * 4003 * This function assigns a long value to the specified field of the given object by its name. 4004 * 4005 * @param[in] env A pointer to the environment structure. 4006 * @param[in] object The object containing the field. 4007 * @param[in] name The name of the field to set the long value to. 4008 * @param[in] value The long value to assign to the field. 4009 * @return Returns a status code of type `ani_status` indicating success or failure. 4010 */ 4011 ani_status (*Object_SetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value); 4012 4013 /** 4014 * @brief Sets a float value to a field of an object by its name. 4015 * 4016 * This function assigns a float value to the specified field of the given object by its name. 4017 * 4018 * @param[in] env A pointer to the environment structure. 4019 * @param[in] object The object containing the field. 4020 * @param[in] name The name of the field to set the float value to. 4021 * @param[in] value The float value to assign to the field. 4022 * @return Returns a status code of type `ani_status` indicating success or failure. 4023 */ 4024 ani_status (*Object_SetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value); 4025 4026 /** 4027 * @brief Sets a double value to a field of an object by its name. 4028 * 4029 * This function assigns a double value to the specified field of the given object by its name. 4030 * 4031 * @param[in] env A pointer to the environment structure. 4032 * @param[in] object The object containing the field. 4033 * @param[in] name The name of the field to set the double value to. 4034 * @param[in] value The double value to assign to the field. 4035 * @return Returns a status code of type `ani_status` indicating success or failure. 4036 */ 4037 ani_status (*Object_SetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value); 4038 4039 /** 4040 * @brief Sets a reference value to a field of an object by its name. 4041 * 4042 * This function assigns a reference value to the specified field of the given object by its name. 4043 * 4044 * @param[in] env A pointer to the environment structure. 4045 * @param[in] object The object containing the field. 4046 * @param[in] name The name of the field to set the reference value to. 4047 * @param[in] value The reference value to assign to the field. 4048 * @return Returns a status code of type `ani_status` indicating success or failure. 4049 */ 4050 ani_status (*Object_SetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value); 4051 4052 /** 4053 * @brief Retrieves a boolean value from a property of an object by its name. 4054 * 4055 * This function retrieves the boolean value of the specified property from the given object by its name. 4056 * 4057 * @param[in] env A pointer to the environment structure. 4058 * @param[in] object The object containing the property. 4059 * @param[in] name The name of the property to retrieve the boolean value from. 4060 * @param[out] result A pointer to store the retrieved boolean value. 4061 * @return Returns a status code of type `ani_status` indicating success or failure. 4062 */ 4063 ani_status (*Object_GetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name, 4064 ani_boolean *result); 4065 4066 /** 4067 * @brief Retrieves a char value from a property of an object by its name. 4068 * 4069 * This function retrieves the char value of the specified property from the given object by its name. 4070 * 4071 * @param[in] env A pointer to the environment structure. 4072 * @param[in] object The object containing the property. 4073 * @param[in] name The name of the property to retrieve the char value from. 4074 * @param[out] result A pointer to store the retrieved char value. 4075 * @return Returns a status code of type `ani_status` indicating success or failure. 4076 */ 4077 ani_status (*Object_GetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result); 4078 4079 /** 4080 * @brief Retrieves a byte value from a property of an object by its name. 4081 * 4082 * This function retrieves the byte value of the specified property from the given object by its name. 4083 * 4084 * @param[in] env A pointer to the environment structure. 4085 * @param[in] object The object containing the property. 4086 * @param[in] name The name of the property to retrieve the byte value from. 4087 * @param[out] result A pointer to store the retrieved byte value. 4088 * @return Returns a status code of type `ani_status` indicating success or failure. 4089 */ 4090 ani_status (*Object_GetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result); 4091 4092 /** 4093 * @brief Retrieves a short value from a property of an object by its name. 4094 * 4095 * This function retrieves the short value of the specified property from the given object by its name. 4096 * 4097 * @param[in] env A pointer to the environment structure. 4098 * @param[in] object The object containing the property. 4099 * @param[in] name The name of the property to retrieve the short value from. 4100 * @param[out] result A pointer to store the retrieved short value. 4101 * @return Returns a status code of type `ani_status` indicating success or failure. 4102 */ 4103 ani_status (*Object_GetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result); 4104 4105 /** 4106 * @brief Retrieves a integer value from a property of an object by its name. 4107 * 4108 * This function retrieves the integer value of the specified property from the given object by its name. 4109 * 4110 * @param[in] env A pointer to the environment structure. 4111 * @param[in] object The object containing the property. 4112 * @param[in] name The name of the property to retrieve the integer value from. 4113 * @param[out] result A pointer to store the retrieved integer value. 4114 * @return Returns a status code of type `ani_status` indicating success or failure. 4115 */ 4116 ani_status (*Object_GetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result); 4117 4118 /** 4119 * @brief Retrieves a long value from a property of an object by its name. 4120 * 4121 * This function retrieves the long value of the specified property from the given object by its name. 4122 * 4123 * @param[in] env A pointer to the environment structure. 4124 * @param[in] object The object containing the property. 4125 * @param[in] name The name of the property to retrieve the long value from. 4126 * @param[out] result A pointer to store the retrieved long value. 4127 * @return Returns a status code of type `ani_status` indicating success or failure. 4128 */ 4129 ani_status (*Object_GetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result); 4130 4131 /** 4132 * @brief Retrieves a float value from a property of an object by its name. 4133 * 4134 * This function retrieves the float value of the specified property from the given object by its name. 4135 * 4136 * @param[in] env A pointer to the environment structure. 4137 * @param[in] object The object containing the property. 4138 * @param[in] name The name of the property to retrieve the float value from. 4139 * @param[out] result A pointer to store the retrieved float value. 4140 * @return Returns a status code of type `ani_status` indicating success or failure. 4141 */ 4142 ani_status (*Object_GetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result); 4143 4144 /** 4145 * @brief Retrieves a double value from a property of an object by its name. 4146 * 4147 * This function retrieves the double value of the specified property from the given object by its name. 4148 * 4149 * @param[in] env A pointer to the environment structure. 4150 * @param[in] object The object containing the property. 4151 * @param[in] name The name of the property to retrieve the double value from. 4152 * @param[out] result A pointer to store the retrieved double value. 4153 * @return Returns a status code of type `ani_status` indicating success or failure. 4154 */ 4155 ani_status (*Object_GetPropertyByName_Double)(ani_env *env, ani_object object, const char *name, 4156 ani_double *result); 4157 4158 /** 4159 * @brief Retrieves a reference value from a property of an object by its name. 4160 * 4161 * This function retrieves the reference value of the specified property from the given object by its name. 4162 * 4163 * @param[in] env A pointer to the environment structure. 4164 * @param[in] object The object containing the property. 4165 * @param[in] name The name of the property to retrieve the reference value from. 4166 * @param[out] result A pointer to store the retrieved reference value. 4167 * @return Returns a status code of type `ani_status` indicating success or failure. 4168 */ 4169 ani_status (*Object_GetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result); 4170 4171 /** 4172 * @brief Sets a boolean value to a property of an object by its name. 4173 * 4174 * This function assigns a boolean value to the specified property of the given object by its name. 4175 * 4176 * @param[in] env A pointer to the environment structure. 4177 * @param[in] object The object containing the property. 4178 * @param[in] name The name of the property to set the boolean value to. 4179 * @param[in] value The boolean value to assign to the property. 4180 * @return Returns a status code of type `ani_status` indicating success or failure. 4181 */ 4182 ani_status (*Object_SetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name, 4183 ani_boolean value); 4184 4185 /** 4186 * @brief Sets a char value to a property of an object by its name. 4187 * 4188 * This function assigns a char value to the specified property of the given object by its name. 4189 * 4190 * @param[in] env A pointer to the environment structure. 4191 * @param[in] object The object containing the property. 4192 * @param[in] name The name of the property to set the char value to. 4193 * @param[in] value The char value to assign to the property. 4194 * @return Returns a status code of type `ani_status` indicating success or failure. 4195 */ 4196 ani_status (*Object_SetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value); 4197 4198 /** 4199 * @brief Sets a byte value to a property of an object by its name. 4200 * 4201 * This function assigns a byte value to the specified property of the given object by its name. 4202 * 4203 * @param[in] env A pointer to the environment structure. 4204 * @param[in] object The object containing the property. 4205 * @param[in] name The name of the property to set the byte value to. 4206 * @param[in] value The byte value to assign to the property. 4207 * @return Returns a status code of type `ani_status` indicating success or failure. 4208 */ 4209 ani_status (*Object_SetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value); 4210 4211 /** 4212 * @brief Sets a short value to a property of an object by its name. 4213 * 4214 * This function assigns a short value to the specified property of the given object by its name. 4215 * 4216 * @param[in] env A pointer to the environment structure. 4217 * @param[in] object The object containing the property. 4218 * @param[in] name The name of the property to set the short value to. 4219 * @param[in] value The short value to assign to the property. 4220 * @return Returns a status code of type `ani_status` indicating success or failure. 4221 */ 4222 ani_status (*Object_SetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value); 4223 4224 /** 4225 * @brief Sets a integer value to a property of an object by its name. 4226 * 4227 * This function assigns a integer value to the specified property of the given object by its name. 4228 * 4229 * @param[in] env A pointer to the environment structure. 4230 * @param[in] object The object containing the property. 4231 * @param[in] name The name of the property to set the integer value to. 4232 * @param[in] value The integer value to assign to the property. 4233 * @return Returns a status code of type `ani_status` indicating success or failure. 4234 */ 4235 ani_status (*Object_SetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value); 4236 4237 /** 4238 * @brief Sets a long value to a property of an object by its name. 4239 * 4240 * This function assigns a long value to the specified property of the given object by its name. 4241 * 4242 * @param[in] env A pointer to the environment structure. 4243 * @param[in] object The object containing the property. 4244 * @param[in] name The name of the property to set the long value to. 4245 * @param[in] value The long value to assign to the property. 4246 * @return Returns a status code of type `ani_status` indicating success or failure. 4247 */ 4248 ani_status (*Object_SetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value); 4249 4250 /** 4251 * @brief Sets a float value to a property of an object by its name. 4252 * 4253 * This function assigns a float value to the specified property of the given object by its name. 4254 * 4255 * @param[in] env A pointer to the environment structure. 4256 * @param[in] object The object containing the property. 4257 * @param[in] name The name of the property to set the float value to. 4258 * @param[in] value The float value to assign to the property. 4259 * @return Returns a status code of type `ani_status` indicating success or failure. 4260 */ 4261 ani_status (*Object_SetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value); 4262 4263 /** 4264 * @brief Sets a double value to a property of an object by its name. 4265 * 4266 * This function assigns a double value to the specified property of the given object by its name. 4267 * 4268 * @param[in] env A pointer to the environment structure. 4269 * @param[in] object The object containing the property. 4270 * @param[in] name The name of the property to set the double value to. 4271 * @param[in] value The double value to assign to the property. 4272 * @return Returns a status code of type `ani_status` indicating success or failure. 4273 */ 4274 ani_status (*Object_SetPropertyByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value); 4275 4276 /** 4277 * @brief Sets a reference value to a property of an object by its name. 4278 * 4279 * This function assigns a reference value to the specified property of the given object by its name. 4280 * 4281 * @param[in] env A pointer to the environment structure. 4282 * @param[in] object The object containing the property. 4283 * @param[in] name The name of the property to set the reference value to. 4284 * @param[in] value The reference value to assign to the property. 4285 * @return Returns a status code of type `ani_status` indicating success or failure. 4286 */ 4287 ani_status (*Object_SetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value); 4288 4289 /** 4290 * @brief Calls a method on an object and retrieves a boolean return value. 4291 * 4292 * This function calls the specified method of an object using variadic arguments and retrieves a boolean result. 4293 * 4294 * @param[in] env A pointer to the environment structure. 4295 * @param[in] object The object on which the method is to be called. 4296 * @param[in] method The method to call. 4297 * @param[out] result A pointer to store the boolean return value. 4298 * @param[in] ... Variadic arguments to pass to the method. 4299 * @return Returns a status code of type `ani_status` indicating success or failure. 4300 */ 4301 ani_status (*Object_CallMethod_Boolean)(ani_env *env, ani_object object, ani_method method, ani_boolean *result, 4302 ...); 4303 4304 /** 4305 * @brief Calls a method on an object and retrieves a boolean return value (array-based). 4306 * 4307 * This function calls the specified method of an object using arguments provided in an array and retrieves a 4308 * boolean result. 4309 * 4310 * @param[in] env A pointer to the environment structure. 4311 * @param[in] object The object on which the method is to be called. 4312 * @param[in] method The method to call. 4313 * @param[out] result A pointer to store the boolean return value. 4314 * @param[in] args An array of arguments to pass to the method. 4315 * @return Returns a status code of type `ani_status` indicating success or failure. 4316 */ 4317 ani_status (*Object_CallMethod_Boolean_A)(ani_env *env, ani_object object, ani_method method, ani_boolean *result, 4318 const ani_value *args); 4319 4320 /** 4321 * @brief Calls a method on an object and retrieves a boolean return value (variadic arguments). 4322 * 4323 * This function calls the specified method of an object using a `va_list` and retrieves a boolean result. 4324 * 4325 * @param[in] env A pointer to the environment structure. 4326 * @param[in] object The object on which the method is to be called. 4327 * @param[in] method The method to call. 4328 * @param[out] result A pointer to store the boolean return value. 4329 * @param[in] args A `va_list` of arguments to pass to the method. 4330 * @return Returns a status code of type `ani_status` indicating success or failure. 4331 */ 4332 ani_status (*Object_CallMethod_Boolean_V)(ani_env *env, ani_object object, ani_method method, ani_boolean *result, 4333 va_list args); 4334 4335 /** 4336 * @brief Calls a method on an object and retrieves a char return value. 4337 * 4338 * This function calls the specified method of an object using variadic arguments and retrieves a char result. 4339 * 4340 * @param[in] env A pointer to the environment structure. 4341 * @param[in] object The object on which the method is to be called. 4342 * @param[in] method The method to call. 4343 * @param[out] result A pointer to store the char return value. 4344 * @param[in] ... Variadic arguments to pass to the method. 4345 * @return Returns a status code of type `ani_status` indicating success or failure. 4346 */ 4347 ani_status (*Object_CallMethod_Char)(ani_env *env, ani_object object, ani_method method, ani_char *result, ...); 4348 4349 /** 4350 * @brief Calls a method on an object and retrieves a char return value (array-based). 4351 * 4352 * This function calls the specified method of an object using arguments provided in an array and retrieves a char 4353 * result. 4354 * 4355 * @param[in] env A pointer to the environment structure. 4356 * @param[in] object The object on which the method is to be called. 4357 * @param[in] method The method to call. 4358 * @param[out] result A pointer to store the char return value. 4359 * @param[in] args An array of arguments to pass to the method. 4360 * @return Returns a status code of type `ani_status` indicating success or failure. 4361 */ 4362 ani_status (*Object_CallMethod_Char_A)(ani_env *env, ani_object object, ani_method method, ani_char *result, 4363 const ani_value *args); 4364 4365 /** 4366 * @brief Calls a method on an object and retrieves a char return value (variadic arguments). 4367 * 4368 * This function calls the specified method of an object using a `va_list` and retrieves a char result. 4369 * 4370 * @param[in] env A pointer to the environment structure. 4371 * @param[in] object The object on which the method is to be called. 4372 * @param[in] method The method to call. 4373 * @param[out] result A pointer to store the char return value. 4374 * @param[in] args A `va_list` of arguments to pass to the method. 4375 * @return Returns a status code of type `ani_status` indicating success or failure. 4376 */ 4377 ani_status (*Object_CallMethod_Char_V)(ani_env *env, ani_object object, ani_method method, ani_char *result, 4378 va_list args); 4379 4380 /** 4381 * @brief Calls a method on an object and retrieves a byte return value. 4382 * 4383 * This function calls the specified method of an object using variadic arguments and retrieves a byte result. 4384 * 4385 * @param[in] env A pointer to the environment structure. 4386 * @param[in] object The object on which the method is to be called. 4387 * @param[in] method The method to call. 4388 * @param[out] result A pointer to store the byte return value. 4389 * @param[in] ... Variadic arguments to pass to the method. 4390 * @return Returns a status code of type `ani_status` indicating success or failure. 4391 */ 4392 ani_status (*Object_CallMethod_Byte)(ani_env *env, ani_object object, ani_method method, ani_byte *result, ...); 4393 4394 /** 4395 * @brief Calls a method on an object and retrieves a byte return value (array-based). 4396 * 4397 * This function calls the specified method of an object using arguments provided in an array and retrieves a byte 4398 * result. 4399 * 4400 * @param[in] env A pointer to the environment structure. 4401 * @param[in] object The object on which the method is to be called. 4402 * @param[in] method The method to call. 4403 * @param[out] result A pointer to store the byte return value. 4404 * @param[in] args An array of arguments to pass to the method. 4405 * @return Returns a status code of type `ani_status` indicating success or failure. 4406 */ 4407 ani_status (*Object_CallMethod_Byte_A)(ani_env *env, ani_object object, ani_method method, ani_byte *result, 4408 const ani_value *args); 4409 4410 /** 4411 * @brief Calls a method on an object and retrieves a byte return value (variadic arguments). 4412 * 4413 * This function calls the specified method of an object using a `va_list` and retrieves a byte result. 4414 * 4415 * @param[in] env A pointer to the environment structure. 4416 * @param[in] object The object on which the method is to be called. 4417 * @param[in] method The method to call. 4418 * @param[out] result A pointer to store the byte return value. 4419 * @param[in] args A `va_list` of arguments to pass to the method. 4420 * @return Returns a status code of type `ani_status` indicating success or failure. 4421 */ 4422 ani_status (*Object_CallMethod_Byte_V)(ani_env *env, ani_object object, ani_method method, ani_byte *result, 4423 va_list args); 4424 4425 /** 4426 * @brief Calls a method on an object and retrieves a short return value. 4427 * 4428 * This function calls the specified method of an object using variadic arguments and retrieves a short result. 4429 * 4430 * @param[in] env A pointer to the environment structure. 4431 * @param[in] object The object on which the method is to be called. 4432 * @param[in] method The method to call. 4433 * @param[out] result A pointer to store the short return value. 4434 * @param[in] ... Variadic arguments to pass to the method. 4435 * @return Returns a status code of type `ani_status` indicating success or failure. 4436 */ 4437 ani_status (*Object_CallMethod_Short)(ani_env *env, ani_object object, ani_method method, ani_short *result, ...); 4438 4439 /** 4440 * @brief Calls a method on an object and retrieves a short return value (array-based). 4441 * 4442 * This function calls the specified method of an object using arguments provided in an array and retrieves a short 4443 * result. 4444 * 4445 * @param[in] env A pointer to the environment structure. 4446 * @param[in] object The object on which the method is to be called. 4447 * @param[in] method The method to call. 4448 * @param[out] result A pointer to store the short return value. 4449 * @param[in] args An array of arguments to pass to the method. 4450 * @return Returns a status code of type `ani_status` indicating success or failure. 4451 */ 4452 ani_status (*Object_CallMethod_Short_A)(ani_env *env, ani_object object, ani_method method, ani_short *result, 4453 const ani_value *args); 4454 4455 /** 4456 * @brief Calls a method on an object and retrieves a short return value (variadic arguments). 4457 * 4458 * This function calls the specified method of an object using a `va_list` and retrieves a short result. 4459 * 4460 * @param[in] env A pointer to the environment structure. 4461 * @param[in] object The object on which the method is to be called. 4462 * @param[in] method The method to call. 4463 * @param[out] result A pointer to store the short return value. 4464 * @param[in] args A `va_list` of arguments to pass to the method. 4465 * @return Returns a status code of type `ani_status` indicating success or failure. 4466 */ 4467 ani_status (*Object_CallMethod_Short_V)(ani_env *env, ani_object object, ani_method method, ani_short *result, 4468 va_list args); 4469 4470 /** 4471 * @brief Calls a method on an object and retrieves a integer return value. 4472 * 4473 * This function calls the specified method of an object using variadic arguments and retrieves a integer result. 4474 * 4475 * @param[in] env A pointer to the environment structure. 4476 * @param[in] object The object on which the method is to be called. 4477 * @param[in] method The method to call. 4478 * @param[out] result A pointer to store the integer return value. 4479 * @param[in] ... Variadic arguments to pass to the method. 4480 * @return Returns a status code of type `ani_status` indicating success or failure. 4481 */ 4482 ani_status (*Object_CallMethod_Int)(ani_env *env, ani_object object, ani_method method, ani_int *result, ...); 4483 4484 /** 4485 * @brief Calls a method on an object and retrieves a integer return value (array-based). 4486 * 4487 * This function calls the specified method of an object using arguments provided in an array and retrieves a 4488 * integer result. 4489 * 4490 * @param[in] env A pointer to the environment structure. 4491 * @param[in] object The object on which the method is to be called. 4492 * @param[in] method The method to call. 4493 * @param[out] result A pointer to store the integer return value. 4494 * @param[in] args An array of arguments to pass to the method. 4495 * @return Returns a status code of type `ani_status` indicating success or failure. 4496 */ 4497 ani_status (*Object_CallMethod_Int_A)(ani_env *env, ani_object object, ani_method method, ani_int *result, 4498 const ani_value *args); 4499 4500 /** 4501 * @brief Calls a method on an object and retrieves a integer return value (variadic arguments). 4502 * 4503 * This function calls the specified method of an object using a `va_list` and retrieves a integer result. 4504 * 4505 * @param[in] env A pointer to the environment structure. 4506 * @param[in] object The object on which the method is to be called. 4507 * @param[in] method The method to call. 4508 * @param[out] result A pointer to store the integer return value. 4509 * @param[in] args A `va_list` of arguments to pass to the method. 4510 * @return Returns a status code of type `ani_status` indicating success or failure. 4511 */ 4512 ani_status (*Object_CallMethod_Int_V)(ani_env *env, ani_object object, ani_method method, ani_int *result, 4513 va_list args); 4514 4515 /** 4516 * @brief Calls a method on an object and retrieves a long return value. 4517 * 4518 * This function calls the specified method of an object using variadic arguments and retrieves a long result. 4519 * 4520 * @param[in] env A pointer to the environment structure. 4521 * @param[in] object The object on which the method is to be called. 4522 * @param[in] method The method to call. 4523 * @param[out] result A pointer to store the long return value. 4524 * @param[in] ... Variadic arguments to pass to the method. 4525 * @return Returns a status code of type `ani_status` indicating success or failure. 4526 */ 4527 ani_status (*Object_CallMethod_Long)(ani_env *env, ani_object object, ani_method method, ani_long *result, ...); 4528 4529 /** 4530 * @brief Calls a method on an object and retrieves a long return value (array-based). 4531 * 4532 * This function calls the specified method of an object using arguments provided in an array and retrieves a long 4533 * result. 4534 * 4535 * @param[in] env A pointer to the environment structure. 4536 * @param[in] object The object on which the method is to be called. 4537 * @param[in] method The method to call. 4538 * @param[out] result A pointer to store the long return value. 4539 * @param[in] args An array of arguments to pass to the method. 4540 * @return Returns a status code of type `ani_status` indicating success or failure. 4541 */ 4542 ani_status (*Object_CallMethod_Long_A)(ani_env *env, ani_object object, ani_method method, ani_long *result, 4543 const ani_value *args); 4544 4545 /** 4546 * @brief Calls a method on an object and retrieves a long return value (variadic arguments). 4547 * 4548 * This function calls the specified method of an object using a `va_list` and retrieves a long result. 4549 * 4550 * @param[in] env A pointer to the environment structure. 4551 * @param[in] object The object on which the method is to be called. 4552 * @param[in] method The method to call. 4553 * @param[out] result A pointer to store the long return value. 4554 * @param[in] args A `va_list` of arguments to pass to the method. 4555 * @return Returns a status code of type `ani_status` indicating success or failure. 4556 */ 4557 ani_status (*Object_CallMethod_Long_V)(ani_env *env, ani_object object, ani_method method, ani_long *result, 4558 va_list args); 4559 4560 /** 4561 * @brief Calls a method on an object and retrieves a float return value. 4562 * 4563 * This function calls the specified method of an object using variadic arguments and retrieves a float result. 4564 * 4565 * @param[in] env A pointer to the environment structure. 4566 * @param[in] object The object on which the method is to be called. 4567 * @param[in] method The method to call. 4568 * @param[out] result A pointer to store the float return value. 4569 * @param[in] ... Variadic arguments to pass to the method. 4570 * @return Returns a status code of type `ani_status` indicating success or failure. 4571 */ 4572 ani_status (*Object_CallMethod_Float)(ani_env *env, ani_object object, ani_method method, ani_float *result, ...); 4573 4574 /** 4575 * @brief Calls a method on an object and retrieves a float return value (array-based). 4576 * 4577 * This function calls the specified method of an object using arguments provided in an array and retrieves a float 4578 * result. 4579 * 4580 * @param[in] env A pointer to the environment structure. 4581 * @param[in] object The object on which the method is to be called. 4582 * @param[in] method The method to call. 4583 * @param[out] result A pointer to store the float return value. 4584 * @param[in] args An array of arguments to pass to the method. 4585 * @return Returns a status code of type `ani_status` indicating success or failure. 4586 */ 4587 ani_status (*Object_CallMethod_Float_A)(ani_env *env, ani_object object, ani_method method, ani_float *result, 4588 const ani_value *args); 4589 4590 /** 4591 * @brief Calls a method on an object and retrieves a float return value (variadic arguments). 4592 * 4593 * This function calls the specified method of an object using a `va_list` and retrieves a float result. 4594 * 4595 * @param[in] env A pointer to the environment structure. 4596 * @param[in] object The object on which the method is to be called. 4597 * @param[in] method The method to call. 4598 * @param[out] result A pointer to store the float return value. 4599 * @param[in] args A `va_list` of arguments to pass to the method. 4600 * @return Returns a status code of type `ani_status` indicating success or failure. 4601 */ 4602 ani_status (*Object_CallMethod_Float_V)(ani_env *env, ani_object object, ani_method method, ani_float *result, 4603 va_list args); 4604 4605 /** 4606 * @brief Calls a method on an object and retrieves a double return value. 4607 * 4608 * This function calls the specified method of an object using variadic arguments and retrieves a double result. 4609 * 4610 * @param[in] env A pointer to the environment structure. 4611 * @param[in] object The object on which the method is to be called. 4612 * @param[in] method The method to call. 4613 * @param[out] result A pointer to store the double return value. 4614 * @param[in] ... Variadic arguments to pass to the method. 4615 * @return Returns a status code of type `ani_status` indicating success or failure. 4616 */ 4617 ani_status (*Object_CallMethod_Double)(ani_env *env, ani_object object, ani_method method, ani_double *result, ...); 4618 4619 /** 4620 * @brief Calls a method on an object and retrieves a double return value (array-based). 4621 * 4622 * This function calls the specified method of an object using arguments provided in an array and retrieves a double 4623 * result. 4624 * 4625 * @param[in] env A pointer to the environment structure. 4626 * @param[in] object The object on which the method is to be called. 4627 * @param[in] method The method to call. 4628 * @param[out] result A pointer to store the double return value. 4629 * @param[in] args An array of arguments to pass to the method. 4630 * @return Returns a status code of type `ani_status` indicating success or failure. 4631 */ 4632 ani_status (*Object_CallMethod_Double_A)(ani_env *env, ani_object object, ani_method method, ani_double *result, 4633 const ani_value *args); 4634 4635 /** 4636 * @brief Calls a method on an object and retrieves a double return value (variadic arguments). 4637 * 4638 * This function calls the specified method of an object using a `va_list` and retrieves a double result. 4639 * 4640 * @param[in] env A pointer to the environment structure. 4641 * @param[in] object The object on which the method is to be called. 4642 * @param[in] method The method to call. 4643 * @param[out] result A pointer to store the double return value. 4644 * @param[in] args A `va_list` of arguments to pass to the method. 4645 * @return Returns a status code of type `ani_status` indicating success or failure. 4646 */ 4647 ani_status (*Object_CallMethod_Double_V)(ani_env *env, ani_object object, ani_method method, ani_double *result, 4648 va_list args); 4649 4650 /** 4651 * @brief Calls a method on an object and retrieves a reference return value. 4652 * 4653 * This function calls the specified method of an object using variadic arguments and retrieves a reference result. 4654 * 4655 * @param[in] env A pointer to the environment structure. 4656 * @param[in] object The object on which the method is to be called. 4657 * @param[in] method The method to call. 4658 * @param[out] result A pointer to store the reference return value. 4659 * @param[in] ... Variadic arguments to pass to the method. 4660 * @return Returns a status code of type `ani_status` indicating success or failure. 4661 */ 4662 ani_status (*Object_CallMethod_Ref)(ani_env *env, ani_object object, ani_method method, ani_ref *result, ...); 4663 4664 /** 4665 * @brief Calls a method on an object and retrieves a reference return value (array-based). 4666 * 4667 * This function calls the specified method of an object using arguments provided in an array and retrieves a 4668 * reference result. 4669 * 4670 * @param[in] env A pointer to the environment structure. 4671 * @param[in] object The object on which the method is to be called. 4672 * @param[in] method The method to call. 4673 * @param[out] result A pointer to store the reference return value. 4674 * @param[in] args An array of arguments to pass to the method. 4675 * @return Returns a status code of type `ani_status` indicating success or failure. 4676 */ 4677 ani_status (*Object_CallMethod_Ref_A)(ani_env *env, ani_object object, ani_method method, ani_ref *result, 4678 const ani_value *args); 4679 4680 /** 4681 * @brief Calls a method on an object and retrieves a reference return value (variadic arguments). 4682 * 4683 * This function calls the specified method of an object using a `va_list` and retrieves a reference result. 4684 * 4685 * @param[in] env A pointer to the environment structure. 4686 * @param[in] object The object on which the method is to be called. 4687 * @param[in] method The method to call. 4688 * @param[out] result A pointer to store the reference return value. 4689 * @param[in] args A `va_list` of arguments to pass to the method. 4690 * @return Returns a status code of type `ani_status` indicating success or failure. 4691 */ 4692 ani_status (*Object_CallMethod_Ref_V)(ani_env *env, ani_object object, ani_method method, ani_ref *result, 4693 va_list args); 4694 4695 /** 4696 * @brief Calls a method on an object with no return value. 4697 * 4698 * This function calls the specified method of an object using variadic arguments. The method does not return a 4699 * value. 4700 * 4701 * @param[in] env A pointer to the environment structure. 4702 * @param[in] object The object on which the method is to be called. 4703 * @param[in] method The method to call. 4704 * @param[in] ... Variadic arguments to pass to the method. 4705 * @return Returns a status code of type `ani_status` indicating success or failure. 4706 */ 4707 ani_status (*Object_CallMethod_Void)(ani_env *env, ani_object object, ani_method method, ...); 4708 4709 /** 4710 * @brief Calls a method on an object with no return value (array-based). 4711 * 4712 * This function calls the specified method of an object using arguments provided in an array. The method does not 4713 * return a value. 4714 * 4715 * @param[in] env A pointer to the environment structure. 4716 * @param[in] object The object on which the method is to be called. 4717 * @param[in] method The method to call. 4718 * @param[in] args An array of arguments to pass to the method. 4719 * @return Returns a status code of type `ani_status` indicating success or failure. 4720 */ 4721 ani_status (*Object_CallMethod_Void_A)(ani_env *env, ani_object object, ani_method method, const ani_value *args); 4722 4723 /** 4724 * @brief Calls a method on an object with no return value (variadic arguments). 4725 * 4726 * This function calls the specified method of an object using a `va_list`. The method does not return a value. 4727 * 4728 * @param[in] env A pointer to the environment structure. 4729 * @param[in] object The object on which the method is to be called. 4730 * @param[in] method The method to call. 4731 * @param[in] args A `va_list` of arguments to pass to the method. 4732 * @return Returns a status code of type `ani_status` indicating success or failure. 4733 */ 4734 ani_status (*Object_CallMethod_Void_V)(ani_env *env, ani_object object, ani_method method, va_list args); 4735 4736 /** 4737 * @brief Calls a method by name on an object and retrieves a boolean return value. 4738 * 4739 * This function calls the specified method by its name and signature on an object using variadic arguments and 4740 * retrieves a boolean result. 4741 * 4742 * @param[in] env A pointer to the environment structure. 4743 * @param[in] object The object on which the method is to be called. 4744 * @param[in] name The name of the method to call. 4745 * @param[in] signature The signature of the method to call. 4746 * @param[out] result A pointer to store the boolean return value. 4747 * @param[in] ... Variadic arguments to pass to the method. 4748 * @return Returns a status code of type `ani_status` indicating success or failure. 4749 */ 4750 ani_status (*Object_CallMethodByName_Boolean)(ani_env *env, ani_object object, const char *name, 4751 const char *signature, ani_boolean *result, ...); 4752 4753 /** 4754 * @brief Calls a method by name on an object and retrieves a boolean return value (array-based). 4755 * 4756 * This function calls the specified method by its name and signature on an object using arguments provided in an 4757 * array and retrieves a boolean result. 4758 * 4759 * @param[in] env A pointer to the environment structure. 4760 * @param[in] object The object on which the method is to be called. 4761 * @param[in] name The name of the method to call. 4762 * @param[in] signature The signature of the method to call. 4763 * @param[out] result A pointer to store the boolean return value. 4764 * @param[in] args An array of arguments to pass to the method. 4765 * @return Returns a status code of type `ani_status` indicating success or failure. 4766 */ 4767 ani_status (*Object_CallMethodByName_Boolean_A)(ani_env *env, ani_object object, const char *name, 4768 const char *signature, ani_boolean *result, const ani_value *args); 4769 4770 /** 4771 * @brief Calls a method by name on an object and retrieves a boolean return value (variadic arguments). 4772 * 4773 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 4774 * boolean result. 4775 * 4776 * @param[in] env A pointer to the environment structure. 4777 * @param[in] object The object on which the method is to be called. 4778 * @param[in] name The name of the method to call. 4779 * @param[in] signature The signature of the method to call. 4780 * @param[out] result A pointer to store the boolean return value. 4781 * @param[in] args A `va_list` of arguments to pass to the method. 4782 * @return Returns a status code of type `ani_status` indicating success or failure. 4783 */ 4784 ani_status (*Object_CallMethodByName_Boolean_V)(ani_env *env, ani_object object, const char *name, 4785 const char *signature, ani_boolean *result, va_list args); 4786 4787 /** 4788 * @brief Calls a method by name on an object and retrieves a char return value. 4789 * 4790 * This function calls the specified method by its name and signature on an object using variadic arguments and 4791 * retrieves a char result. 4792 * 4793 * @param[in] env A pointer to the environment structure. 4794 * @param[in] object The object on which the method is to be called. 4795 * @param[in] name The name of the method to call. 4796 * @param[in] signature The signature of the method to call. 4797 * @param[out] result A pointer to store the char return value. 4798 * @param[in] ... Variadic arguments to pass to the method. 4799 * @return Returns a status code of type `ani_status` indicating success or failure. 4800 */ 4801 ani_status (*Object_CallMethodByName_Char)(ani_env *env, ani_object object, const char *name, const char *signature, 4802 ani_char *result, ...); 4803 4804 /** 4805 * @brief Calls a method by name on an object and retrieves a char return value (array-based). 4806 * 4807 * This function calls the specified method by its name and signature on an object using arguments provided in an 4808 * array and retrieves a char result. 4809 * 4810 * @param[in] env A pointer to the environment structure. 4811 * @param[in] object The object on which the method is to be called. 4812 * @param[in] name The name of the method to call. 4813 * @param[in] signature The signature of the method to call. 4814 * @param[out] result A pointer to store the char return value. 4815 * @param[in] args An array of arguments to pass to the method. 4816 * @return Returns a status code of type `ani_status` indicating success or failure. 4817 */ 4818 ani_status (*Object_CallMethodByName_Char_A)(ani_env *env, ani_object object, const char *name, 4819 const char *signature, ani_char *result, const ani_value *args); 4820 4821 /** 4822 * @brief Calls a method by name on an object and retrieves a char return value (variadic arguments). 4823 * 4824 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 4825 * char result. 4826 * 4827 * @param[in] env A pointer to the environment structure. 4828 * @param[in] object The object on which the method is to be called. 4829 * @param[in] name The name of the method to call. 4830 * @param[in] signature The signature of the method to call. 4831 * @param[out] result A pointer to store the char return value. 4832 * @param[in] args A `va_list` of arguments to pass to the method. 4833 * @return Returns a status code of type `ani_status` indicating success or failure. 4834 */ 4835 ani_status (*Object_CallMethodByName_Char_V)(ani_env *env, ani_object object, const char *name, 4836 const char *signature, ani_char *result, va_list args); 4837 4838 /** 4839 * @brief Calls a method by name on an object and retrieves a byte return value. 4840 * 4841 * This function calls the specified method by its name and signature on an object using variadic arguments and 4842 * retrieves a byte result. 4843 * 4844 * @param[in] env A pointer to the environment structure. 4845 * @param[in] object The object on which the method is to be called. 4846 * @param[in] name The name of the method to call. 4847 * @param[in] signature The signature of the method to call. 4848 * @param[out] result A pointer to store the byte return value. 4849 * @param[in] ... Variadic arguments to pass to the method. 4850 * @return Returns a status code of type `ani_status` indicating success or failure. 4851 */ 4852 ani_status (*Object_CallMethodByName_Byte)(ani_env *env, ani_object object, const char *name, const char *signature, 4853 ani_byte *result, ...); 4854 4855 /** 4856 * @brief Calls a method by name on an object and retrieves a byte return value (array-based). 4857 * 4858 * This function calls the specified method by its name and signature on an object using arguments provided in an 4859 * array and retrieves a byte result. 4860 * 4861 * @param[in] env A pointer to the environment structure. 4862 * @param[in] object The object on which the method is to be called. 4863 * @param[in] name The name of the method to call. 4864 * @param[in] signature The signature of the method to call. 4865 * @param[out] result A pointer to store the byte return value. 4866 * @param[in] args An array of arguments to pass to the method. 4867 * @return Returns a status code of type `ani_status` indicating success or failure. 4868 */ 4869 ani_status (*Object_CallMethodByName_Byte_A)(ani_env *env, ani_object object, const char *name, 4870 const char *signature, ani_byte *result, const ani_value *args); 4871 4872 /** 4873 * @brief Calls a method by name on an object and retrieves a byte return value (variadic arguments). 4874 * 4875 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 4876 * byte result. 4877 * 4878 * @param[in] env A pointer to the environment structure. 4879 * @param[in] object The object on which the method is to be called. 4880 * @param[in] name The name of the method to call. 4881 * @param[in] signature The signature of the method to call. 4882 * @param[out] result A pointer to store the byte return value. 4883 * @param[in] args A `va_list` of arguments to pass to the method. 4884 * @return Returns a status code of type `ani_status` indicating success or failure. 4885 */ 4886 ani_status (*Object_CallMethodByName_Byte_V)(ani_env *env, ani_object object, const char *name, 4887 const char *signature, ani_byte *result, va_list args); 4888 4889 /** 4890 * @brief Calls a method by name on an object and retrieves a short return value. 4891 * 4892 * This function calls the specified method by its name and signature on an object using variadic arguments and 4893 * retrieves a short result. 4894 * 4895 * @param[in] env A pointer to the environment structure. 4896 * @param[in] object The object on which the method is to be called. 4897 * @param[in] name The name of the method to call. 4898 * @param[in] signature The signature of the method to call. 4899 * @param[out] result A pointer to store the short return value. 4900 * @param[in] ... Variadic arguments to pass to the method. 4901 * @return Returns a status code of type `ani_status` indicating success or failure. 4902 */ 4903 ani_status (*Object_CallMethodByName_Short)(ani_env *env, ani_object object, const char *name, 4904 const char *signature, ani_short *result, ...); 4905 4906 /** 4907 * @brief Calls a method by name on an object and retrieves a short return value (array-based). 4908 * 4909 * This function calls the specified method by its name and signature on an object using arguments provided in an 4910 * array and retrieves a short result. 4911 * 4912 * @param[in] env A pointer to the environment structure. 4913 * @param[in] object The object on which the method is to be called. 4914 * @param[in] name The name of the method to call. 4915 * @param[in] signature The signature of the method to call. 4916 * @param[out] result A pointer to store the short return value. 4917 * @param[in] args An array of arguments to pass to the method. 4918 * @return Returns a status code of type `ani_status` indicating success or failure. 4919 */ 4920 ani_status (*Object_CallMethodByName_Short_A)(ani_env *env, ani_object object, const char *name, 4921 const char *signature, ani_short *result, const ani_value *args); 4922 4923 /** 4924 * @brief Calls a method by name on an object and retrieves a short return value (variadic arguments). 4925 * 4926 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 4927 * short result. 4928 * 4929 * @param[in] env A pointer to the environment structure. 4930 * @param[in] object The object on which the method is to be called. 4931 * @param[in] name The name of the method to call. 4932 * @param[in] signature The signature of the method to call. 4933 * @param[out] result A pointer to store the short return value. 4934 * @param[in] args A `va_list` of arguments to pass to the method. 4935 * @return Returns a status code of type `ani_status` indicating success or failure. 4936 */ 4937 ani_status (*Object_CallMethodByName_Short_V)(ani_env *env, ani_object object, const char *name, 4938 const char *signature, ani_short *result, va_list args); 4939 4940 /** 4941 * @brief Calls a method by name on an object and retrieves a integer return value. 4942 * 4943 * This function calls the specified method by its name and signature on an object using variadic arguments and 4944 * retrieves a integer result. 4945 * 4946 * @param[in] env A pointer to the environment structure. 4947 * @param[in] object The object on which the method is to be called. 4948 * @param[in] name The name of the method to call. 4949 * @param[in] signature The signature of the method to call. 4950 * @param[out] result A pointer to store the integer return value. 4951 * @param[in] ... Variadic arguments to pass to the method. 4952 * @return Returns a status code of type `ani_status` indicating success or failure. 4953 */ 4954 ani_status (*Object_CallMethodByName_Int)(ani_env *env, ani_object object, const char *name, const char *signature, 4955 ani_int *result, ...); 4956 4957 /** 4958 * @brief Calls a method by name on an object and retrieves a integer return value (array-based). 4959 * 4960 * This function calls the specified method by its name and signature on an object using arguments provided in an 4961 * array and retrieves a integer result. 4962 * 4963 * @param[in] env A pointer to the environment structure. 4964 * @param[in] object The object on which the method is to be called. 4965 * @param[in] name The name of the method to call. 4966 * @param[in] signature The signature of the method to call. 4967 * @param[out] result A pointer to store the integer return value. 4968 * @param[in] args An array of arguments to pass to the method. 4969 * @return Returns a status code of type `ani_status` indicating success or failure. 4970 */ 4971 ani_status (*Object_CallMethodByName_Int_A)(ani_env *env, ani_object object, const char *name, 4972 const char *signature, ani_int *result, const ani_value *args); 4973 4974 /** 4975 * @brief Calls a method by name on an object and retrieves a integer return value (variadic arguments). 4976 * 4977 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 4978 * integer result. 4979 * 4980 * @param[in] env A pointer to the environment structure. 4981 * @param[in] object The object on which the method is to be called. 4982 * @param[in] name The name of the method to call. 4983 * @param[in] signature The signature of the method to call. 4984 * @param[out] result A pointer to store the integer return value. 4985 * @param[in] args A `va_list` of arguments to pass to the method. 4986 * @return Returns a status code of type `ani_status` indicating success or failure. 4987 */ 4988 ani_status (*Object_CallMethodByName_Int_V)(ani_env *env, ani_object object, const char *name, 4989 const char *signature, ani_int *result, va_list args); 4990 4991 /** 4992 * @brief Calls a method by name on an object and retrieves a long return value. 4993 * 4994 * This function calls the specified method by its name and signature on an object using variadic arguments and 4995 * retrieves a long result. 4996 * 4997 * @param[in] env A pointer to the environment structure. 4998 * @param[in] object The object on which the method is to be called. 4999 * @param[in] name The name of the method to call. 5000 * @param[in] signature The signature of the method to call. 5001 * @param[out] result A pointer to store the long return value. 5002 * @param[in] ... Variadic arguments to pass to the method. 5003 * @return Returns a status code of type `ani_status` indicating success or failure. 5004 */ 5005 ani_status (*Object_CallMethodByName_Long)(ani_env *env, ani_object object, const char *name, const char *signature, 5006 ani_long *result, ...); 5007 5008 /** 5009 * @brief Calls a method by name on an object and retrieves a long return value (array-based). 5010 * 5011 * This function calls the specified method by its name and signature on an object using arguments provided in an 5012 * array and retrieves a long result. 5013 * 5014 * @param[in] env A pointer to the environment structure. 5015 * @param[in] object The object on which the method is to be called. 5016 * @param[in] name The name of the method to call. 5017 * @param[in] signature The signature of the method to call. 5018 * @param[out] result A pointer to store the long return value. 5019 * @param[in] args An array of arguments to pass to the method. 5020 * @return Returns a status code of type `ani_status` indicating success or failure. 5021 */ 5022 ani_status (*Object_CallMethodByName_Long_A)(ani_env *env, ani_object object, const char *name, 5023 const char *signature, ani_long *result, const ani_value *args); 5024 5025 /** 5026 * @brief Calls a method by name on an object and retrieves a long return value (variadic arguments). 5027 * 5028 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5029 * long result. 5030 * 5031 * @param[in] env A pointer to the environment structure. 5032 * @param[in] object The object on which the method is to be called. 5033 * @param[in] name The name of the method to call. 5034 * @param[in] signature The signature of the method to call. 5035 * @param[out] result A pointer to store the long return value. 5036 * @param[in] args A `va_list` of arguments to pass to the method. 5037 * @return Returns a status code of type `ani_status` indicating success or failure. 5038 */ 5039 ani_status (*Object_CallMethodByName_Long_V)(ani_env *env, ani_object object, const char *name, 5040 const char *signature, ani_long *result, va_list args); 5041 5042 /** 5043 * @brief Calls a method by name on an object and retrieves a float return value. 5044 * 5045 * This function calls the specified method by its name and signature on an object using variadic arguments and 5046 * retrieves a float result. 5047 * 5048 * @param[in] env A pointer to the environment structure. 5049 * @param[in] object The object on which the method is to be called. 5050 * @param[in] name The name of the method to call. 5051 * @param[in] signature The signature of the method to call. 5052 * @param[out] result A pointer to store the float return value. 5053 * @param[in] ... Variadic 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_CallMethodByName_Float)(ani_env *env, ani_object object, const char *name, 5057 const char *signature, ani_float *result, ...); 5058 5059 /** 5060 * @brief Calls a method by name on an object and retrieves a float return value (array-based). 5061 * 5062 * This function calls the specified method by its name and signature on an object using arguments provided in an 5063 * array and retrieves a float result. 5064 * 5065 * @param[in] env A pointer to the environment structure. 5066 * @param[in] object The object on which the method is to be called. 5067 * @param[in] name The name of the method to call. 5068 * @param[in] signature The signature of the method to call. 5069 * @param[out] result A pointer to store the float return value. 5070 * @param[in] args An array of arguments to pass to the method. 5071 * @return Returns a status code of type `ani_status` indicating success or failure. 5072 */ 5073 ani_status (*Object_CallMethodByName_Float_A)(ani_env *env, ani_object object, const char *name, 5074 const char *signature, ani_float *result, const ani_value *args); 5075 5076 /** 5077 * @brief Calls a method by name on an object and retrieves a float return value (variadic arguments). 5078 * 5079 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5080 * float result. 5081 * 5082 * @param[in] env A pointer to the environment structure. 5083 * @param[in] object The object on which the method is to be called. 5084 * @param[in] name The name of the method to call. 5085 * @param[in] signature The signature of the method to call. 5086 * @param[out] result A pointer to store the float return value. 5087 * @param[in] args A `va_list` of arguments to pass to the method. 5088 * @return Returns a status code of type `ani_status` indicating success or failure. 5089 */ 5090 ani_status (*Object_CallMethodByName_Float_V)(ani_env *env, ani_object object, const char *name, 5091 const char *signature, ani_float *result, va_list args); 5092 5093 /** 5094 * @brief Calls a method by name on an object and retrieves a double return value. 5095 * 5096 * This function calls the specified method by its name and signature on an object using variadic arguments and 5097 * retrieves a double result. 5098 * 5099 * @param[in] env A pointer to the environment structure. 5100 * @param[in] object The object on which the method is to be called. 5101 * @param[in] name The name of the method to call. 5102 * @param[in] signature The signature of the method to call. 5103 * @param[out] result A pointer to store the double return value. 5104 * @param[in] ... Variadic arguments to pass to the method. 5105 * @return Returns a status code of type `ani_status` indicating success or failure. 5106 */ 5107 ani_status (*Object_CallMethodByName_Double)(ani_env *env, ani_object object, const char *name, 5108 const char *signature, ani_double *result, ...); 5109 5110 /** 5111 * @brief Calls a method by name on an object and retrieves a double return value (array-based). 5112 * 5113 * This function calls the specified method by its name and signature on an object using arguments provided in an 5114 * array and retrieves a double result. 5115 * 5116 * @param[in] env A pointer to the environment structure. 5117 * @param[in] object The object on which the method is to be called. 5118 * @param[in] name The name of the method to call. 5119 * @param[in] signature The signature of the method to call. 5120 * @param[out] result A pointer to store the double return value. 5121 * @param[in] args An array of arguments to pass to the method. 5122 * @return Returns a status code of type `ani_status` indicating success or failure. 5123 */ 5124 ani_status (*Object_CallMethodByName_Double_A)(ani_env *env, ani_object object, const char *name, 5125 const char *signature, ani_double *result, const ani_value *args); 5126 5127 /** 5128 * @brief Calls a method by name on an object and retrieves a double return value (variadic arguments). 5129 * 5130 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5131 * double result. 5132 * 5133 * @param[in] env A pointer to the environment structure. 5134 * @param[in] object The object on which the method is to be called. 5135 * @param[in] name The name of the method to call. 5136 * @param[in] signature The signature of the method to call. 5137 * @param[out] result A pointer to store the double return value. 5138 * @param[in] args A `va_list` of arguments to pass to the method. 5139 * @return Returns a status code of type `ani_status` indicating success or failure. 5140 */ 5141 ani_status (*Object_CallMethodByName_Double_V)(ani_env *env, ani_object object, const char *name, 5142 const char *signature, ani_double *result, va_list args); 5143 5144 /** 5145 * @brief Calls a method by name on an object and retrieves a reference return value. 5146 * 5147 * This function calls the specified method by its name and signature on an object using variadic arguments and 5148 * retrieves a reference result. 5149 * 5150 * @param[in] env A pointer to the environment structure. 5151 * @param[in] object The object on which the method is to be called. 5152 * @param[in] name The name of the method to call. 5153 * @param[in] signature The signature of the method to call. 5154 * @param[out] result A pointer to store the reference return value. 5155 * @param[in] ... Variadic arguments to pass to the method. 5156 * @return Returns a status code of type `ani_status` indicating success or failure. 5157 */ 5158 ani_status (*Object_CallMethodByName_Ref)(ani_env *env, ani_object object, const char *name, const char *signature, 5159 ani_ref *result, ...); 5160 5161 /** 5162 * @brief Calls a method by name on an object and retrieves a reference return value (array-based). 5163 * 5164 * This function calls the specified method by its name and signature on an object using arguments provided in an 5165 * array and retrieves a reference result. 5166 * 5167 * @param[in] env A pointer to the environment structure. 5168 * @param[in] object The object on which the method is to be called. 5169 * @param[in] name The name of the method to call. 5170 * @param[in] signature The signature of the method to call. 5171 * @param[out] result A pointer to store the reference return value. 5172 * @param[in] args An array of arguments to pass to the method. 5173 * @return Returns a status code of type `ani_status` indicating success or failure. 5174 */ 5175 ani_status (*Object_CallMethodByName_Ref_A)(ani_env *env, ani_object object, const char *name, 5176 const char *signature, ani_ref *result, const ani_value *args); 5177 5178 /** 5179 * @brief Calls a method by name on an object and retrieves a reference return value (variadic arguments). 5180 * 5181 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5182 * reference 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] name The name of the method to call. 5187 * @param[in] signature The signature of the method to call. 5188 * @param[out] result A pointer to store the reference return value. 5189 * @param[in] args A `va_list` of arguments to pass to the method. 5190 * @return Returns a status code of type `ani_status` indicating success or failure. 5191 */ 5192 ani_status (*Object_CallMethodByName_Ref_V)(ani_env *env, ani_object object, const char *name, 5193 const char *signature, ani_ref *result, va_list args); 5194 5195 /** 5196 * @brief Calls a method by name on an object with no return value. 5197 * 5198 * This function calls the specified method by its name and signature on an object using variadic arguments. The 5199 * method does not return a value. 5200 * 5201 * @param[in] env A pointer to the environment structure. 5202 * @param[in] object The object on which the method is to be called. 5203 * @param[in] name The name of the method to call. 5204 * @param[in] signature The signature of the method to call. 5205 * @param[in] ... Variadic arguments to pass to the method. 5206 * @return Returns a status code of type `ani_status` indicating success or failure. 5207 */ 5208 ani_status (*Object_CallMethodByName_Void)(ani_env *env, ani_object object, const char *name, const char *signature, 5209 ...); 5210 5211 /** 5212 * @brief Calls a method by name on an object with no return value (array-based). 5213 * 5214 * This function calls the specified method by its name and signature on an object using arguments provided in an 5215 * array. The method does not return a value. 5216 * 5217 * @param[in] env A pointer to the environment structure. 5218 * @param[in] object The object on which the method is to be called. 5219 * @param[in] name The name of the method to call. 5220 * @param[in] signature The signature of the method to call. 5221 * @param[in] args An array of arguments to pass to the method. 5222 * @return Returns a status code of type `ani_status` indicating success or failure. 5223 */ 5224 ani_status (*Object_CallMethodByName_Void_A)(ani_env *env, ani_object object, const char *name, 5225 const char *signature, const ani_value *args); 5226 5227 /** 5228 * @brief Calls a method by name on an object with no return value (variadic arguments). 5229 * 5230 * This function calls the specified method by its name and signature on an object using a `va_list`. The method 5231 * does not return a value. 5232 * 5233 * @param[in] env A pointer to the environment structure. 5234 * @param[in] object The object on which the method is to be called. 5235 * @param[in] name The name of the method to call. 5236 * @param[in] signature The signature of the method to call. 5237 * @param[in] args A `va_list` of arguments to pass to the method. 5238 * @return Returns a status code of type `ani_status` indicating success or failure. 5239 */ 5240 ani_status (*Object_CallMethodByName_Void_V)(ani_env *env, ani_object object, const char *name, 5241 const char *signature, va_list args); 5242 5243 /** 5244 * @brief Retrieves the number of items in a tuple value. 5245 * 5246 * This function retrieves the total number of items in the specified tuple value. 5247 * 5248 * @param[in] env A pointer to the environment structure. 5249 * @param[in] tuple_value The tuple value whose number of items is to be retrieved. 5250 * @param[out] result A pointer to store the number of items. 5251 * @return Returns a status code of type `ani_status` indicating success or failure. 5252 */ 5253 ani_status (*TupleValue_GetNumberOfItems)(ani_env *env, ani_tuple_value tuple_value, ani_size *result); 5254 5255 /** 5256 * @brief Retrieves a boolean item from a tuple value. 5257 * 5258 * This function retrieves the boolean value of the item at the specified index in the tuple value. 5259 * 5260 * @param[in] env A pointer to the environment structure. 5261 * @param[in] tuple_value The tuple value containing the item. 5262 * @param[in] index The index of the item. 5263 * @param[out] result A pointer to store the boolean value of the item. 5264 * @return Returns a status code of type `ani_status` indicating success or failure. 5265 */ 5266 ani_status (*TupleValue_GetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5267 ani_boolean *result); 5268 5269 /** 5270 * @brief Retrieves a char item from a tuple value. 5271 * 5272 * This function retrieves the char value of the item at the specified index in the tuple value. 5273 * 5274 * @param[in] env A pointer to the environment structure. 5275 * @param[in] tuple_value The tuple value containing the item. 5276 * @param[in] index The index of the item. 5277 * @param[out] result A pointer to store the char value of the item. 5278 * @return Returns a status code of type `ani_status` indicating success or failure. 5279 */ 5280 ani_status (*TupleValue_GetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char *result); 5281 5282 /** 5283 * @brief Retrieves a byte item from a tuple value. 5284 * 5285 * This function retrieves the byte value of the item at the specified index in the tuple value. 5286 * 5287 * @param[in] env A pointer to the environment structure. 5288 * @param[in] tuple_value The tuple value containing the item. 5289 * @param[in] index The index of the item. 5290 * @param[out] result A pointer to store the byte value of the item. 5291 * @return Returns a status code of type `ani_status` indicating success or failure. 5292 */ 5293 ani_status (*TupleValue_GetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte *result); 5294 5295 /** 5296 * @brief Retrieves a short item from a tuple value. 5297 * 5298 * This function retrieves the short value of the item at the specified index in the tuple value. 5299 * 5300 * @param[in] env A pointer to the environment structure. 5301 * @param[in] tuple_value The tuple value containing the item. 5302 * @param[in] index The index of the item. 5303 * @param[out] result A pointer to store the short value of the item. 5304 * @return Returns a status code of type `ani_status` indicating success or failure. 5305 */ 5306 ani_status (*TupleValue_GetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5307 ani_short *result); 5308 5309 /** 5310 * @brief Retrieves a integer item from a tuple value. 5311 * 5312 * This function retrieves the integer value of the item at the specified index in the tuple value. 5313 * 5314 * @param[in] env A pointer to the environment structure. 5315 * @param[in] tuple_value The tuple value containing the item. 5316 * @param[in] index The index of the item. 5317 * @param[out] result A pointer to store the integer value of the item. 5318 * @return Returns a status code of type `ani_status` indicating success or failure. 5319 */ 5320 ani_status (*TupleValue_GetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int *result); 5321 5322 /** 5323 * @brief Retrieves a long item from a tuple value. 5324 * 5325 * This function retrieves the long value of the item at the specified index in the tuple value. 5326 * 5327 * @param[in] env A pointer to the environment structure. 5328 * @param[in] tuple_value The tuple value containing the item. 5329 * @param[in] index The index of the item. 5330 * @param[out] result A pointer to store the long value of the item. 5331 * @return Returns a status code of type `ani_status` indicating success or failure. 5332 */ 5333 ani_status (*TupleValue_GetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long *result); 5334 5335 /** 5336 * @brief Retrieves a float item from a tuple value. 5337 * 5338 * This function retrieves the float value of the item at the specified index in the tuple value. 5339 * 5340 * @param[in] env A pointer to the environment structure. 5341 * @param[in] tuple_value The tuple value containing the item. 5342 * @param[in] index The index of the item. 5343 * @param[out] result A pointer to store the float value of the item. 5344 * @return Returns a status code of type `ani_status` indicating success or failure. 5345 */ 5346 ani_status (*TupleValue_GetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5347 ani_float *result); 5348 5349 /** 5350 * @brief Retrieves a double item from a tuple value. 5351 * 5352 * This function retrieves the double value of the item at the specified index in the tuple value. 5353 * 5354 * @param[in] env A pointer to the environment structure. 5355 * @param[in] tuple_value The tuple value containing the item. 5356 * @param[in] index The index of the item. 5357 * @param[out] result A pointer to store the double value of the item. 5358 * @return Returns a status code of type `ani_status` indicating success or failure. 5359 */ 5360 ani_status (*TupleValue_GetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5361 ani_double *result); 5362 5363 /** 5364 * @brief Retrieves a reference item from a tuple value. 5365 * 5366 * This function retrieves the reference value of the item at the specified index in the tuple value. 5367 * 5368 * @param[in] env A pointer to the environment structure. 5369 * @param[in] tuple_value The tuple value containing the item. 5370 * @param[in] index The index of the item. 5371 * @param[out] result A pointer to store the reference value of the item. 5372 * @return Returns a status code of type `ani_status` indicating success or failure. 5373 */ 5374 ani_status (*TupleValue_GetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref *result); 5375 5376 /** 5377 * @brief Sets a boolean value to an item in a tuple value. 5378 * 5379 * This function assigns a boolean value to the item at the specified index in the tuple value. 5380 * 5381 * @param[in] env A pointer to the environment structure. 5382 * @param[in] tuple_value The tuple value containing the item. 5383 * @param[in] index The index of the item. 5384 * @param[in] value The boolean value to assign to the item. 5385 * @return Returns a status code of type `ani_status` indicating success or failure. 5386 */ 5387 ani_status (*TupleValue_SetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5388 ani_boolean value); 5389 5390 /** 5391 * @brief Sets a char value to an item in a tuple value. 5392 * 5393 * This function assigns a char value to the item at the specified index in the tuple value. 5394 * 5395 * @param[in] env A pointer to the environment structure. 5396 * @param[in] tuple_value The tuple value containing the item. 5397 * @param[in] index The index of the item. 5398 * @param[in] value The char value to assign to the item. 5399 * @return Returns a status code of type `ani_status` indicating success or failure. 5400 */ 5401 ani_status (*TupleValue_SetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char value); 5402 5403 /** 5404 * @brief Sets a byte value to an item in a tuple value. 5405 * 5406 * This function assigns a byte value to the item at the specified index in the tuple value. 5407 * 5408 * @param[in] env A pointer to the environment structure. 5409 * @param[in] tuple_value The tuple value containing the item. 5410 * @param[in] index The index of the item. 5411 * @param[in] value The byte value to assign to the item. 5412 * @return Returns a status code of type `ani_status` indicating success or failure. 5413 */ 5414 ani_status (*TupleValue_SetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte value); 5415 5416 /** 5417 * @brief Sets a short value to an item in a tuple value. 5418 * 5419 * This function assigns a short value to the item at the specified index in the tuple value. 5420 * 5421 * @param[in] env A pointer to the environment structure. 5422 * @param[in] tuple_value The tuple value containing the item. 5423 * @param[in] index The index of the item. 5424 * @param[in] value The short value to assign to the item. 5425 * @return Returns a status code of type `ani_status` indicating success or failure. 5426 */ 5427 ani_status (*TupleValue_SetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_short value); 5428 5429 /** 5430 * @brief Sets a integer value to an item in a tuple value. 5431 * 5432 * This function assigns a integer value to the item at the specified index in the tuple value. 5433 * 5434 * @param[in] env A pointer to the environment structure. 5435 * @param[in] tuple_value The tuple value containing the item. 5436 * @param[in] index The index of the item. 5437 * @param[in] value The integer value to assign to the item. 5438 * @return Returns a status code of type `ani_status` indicating success or failure. 5439 */ 5440 ani_status (*TupleValue_SetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int value); 5441 5442 /** 5443 * @brief Sets a long value to an item in a tuple value. 5444 * 5445 * This function assigns a long value to the item at the specified index in the tuple value. 5446 * 5447 * @param[in] env A pointer to the environment structure. 5448 * @param[in] tuple_value The tuple value containing the item. 5449 * @param[in] index The index of the item. 5450 * @param[in] value The long value to assign to the item. 5451 * @return Returns a status code of type `ani_status` indicating success or failure. 5452 */ 5453 ani_status (*TupleValue_SetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long value); 5454 5455 /** 5456 * @brief Sets a float value to an item in a tuple value. 5457 * 5458 * This function assigns a float value to the item at the specified index in the tuple value. 5459 * 5460 * @param[in] env A pointer to the environment structure. 5461 * @param[in] tuple_value The tuple value containing the item. 5462 * @param[in] index The index of the item. 5463 * @param[in] value The float value to assign to the item. 5464 * @return Returns a status code of type `ani_status` indicating success or failure. 5465 */ 5466 ani_status (*TupleValue_SetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_float value); 5467 5468 /** 5469 * @brief Sets a double value to an item in a tuple value. 5470 * 5471 * This function assigns a double value to the item at the specified index in the tuple value. 5472 * 5473 * @param[in] env A pointer to the environment structure. 5474 * @param[in] tuple_value The tuple value containing the item. 5475 * @param[in] index The index of the item. 5476 * @param[in] value The double value to assign to the item. 5477 * @return Returns a status code of type `ani_status` indicating success or failure. 5478 */ 5479 ani_status (*TupleValue_SetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5480 ani_double value); 5481 5482 /** 5483 * @brief Sets a reference value to an item in a tuple value. 5484 * 5485 * This function assigns a reference value to the item at the specified index in the tuple value. 5486 * 5487 * @param[in] env A pointer to the environment structure. 5488 * @param[in] tuple_value The tuple value containing the item. 5489 * @param[in] index The index of the item. 5490 * @param[in] value The reference value to assign to the item. 5491 * @return Returns a status code of type `ani_status` indicating success or failure. 5492 */ 5493 ani_status (*TupleValue_SetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref value); 5494 5495 /** 5496 * @brief Creates a global reference. 5497 * 5498 * This function creates a global reference from a local reference. 5499 * 5500 * @param[in] env A pointer to the environment structure. 5501 * @param[in] ref The local reference to convert to a global reference. 5502 * @param[out] result A pointer to store the created global reference. 5503 * @return Returns a status code of type `ani_status` indicating success or failure. 5504 */ 5505 ani_status (*GlobalReference_Create)(ani_env *env, ani_ref ref, ani_ref *result); 5506 5507 /** 5508 * @brief Deletes a global reference. 5509 * 5510 * This function deletes the specified global reference, releasing all associated resources. 5511 * 5512 * @param[in] env A pointer to the environment structure. 5513 * @param[in] gref The global reference to delete. 5514 * @return Returns a status code of type `ani_status` indicating success or failure. 5515 */ 5516 ani_status (*GlobalReference_Delete)(ani_env *env, ani_ref gref); 5517 5518 /** 5519 * @brief Creates a weak reference. 5520 * 5521 * This function creates a weak reference from a local reference. 5522 * 5523 * @param[in] env A pointer to the environment structure. 5524 * @param[in] ref The local reference to convert to a weak reference. 5525 * @param[out] result A pointer to store the created weak reference. 5526 * @return Returns a status code of type `ani_status` indicating success or failure. 5527 */ 5528 ani_status (*WeakReference_Create)(ani_env *env, ani_ref ref, ani_wref *result); 5529 5530 /** 5531 * @brief Deletes a weak reference. 5532 * 5533 * This function deletes the specified weak reference, releasing all associated resources. 5534 * 5535 * @param[in] env A pointer to the environment structure. 5536 * @param[in] wref The weak reference to delete. 5537 * @return Returns a status code of type `ani_status` indicating success or failure. 5538 */ 5539 ani_status (*WeakReference_Delete)(ani_env *env, ani_wref wref); 5540 5541 /** 5542 * @brief Retrieves the local reference associated with a weak reference. 5543 * 5544 * This function retrieves the local reference that corresponds to the specified weak reference. 5545 * 5546 * @param[in] env A pointer to the environment structure. 5547 * @param[in] wref The weak reference to query. 5548 * @param[out] was_released_result A pointer to boolean flag which indicates that wref is GC collected. 5549 * @param[out] ref_result A pointer to store the retrieved local reference. 5550 * @return Returns a status code of type `ani_status` indicating success or failure. 5551 */ 5552 ani_status (*WeakReference_GetReference)(ani_env *env, ani_wref wref, ani_boolean *was_released_result, 5553 ani_ref *ref_result); 5554 5555 /** 5556 * @brief Creates a new array buffer. 5557 * 5558 * This function creates a new array buffer with the specified length and returns a pointer to the allocated data. 5559 * 5560 * @param[in] env A pointer to the environment structure. 5561 * @param[in] length The length of the array buffer in bytes. 5562 * @param[out] data_result A pointer to store the allocated data of the array buffer. 5563 * @param[out] arraybuffer_result A pointer to store the created array buffer object. 5564 * @return Returns a status code of type `ani_status` indicating success or failure. 5565 */ 5566 ani_status (*CreateArrayBuffer)(ani_env *env, size_t length, void **data_result, 5567 ani_arraybuffer *arraybuffer_result); 5568 5569 /** 5570 * @brief Creates a new array buffer using external data. 5571 * 5572 * This function creates an array buffer that uses external data. The provided finalizer will be called when the 5573 * array buffer is no longer needed. 5574 * 5575 * @param[in] env A pointer to the environment structure. 5576 * @param[in] external_data A pointer to the external data to be used by the array buffer. 5577 * @param[in] length The length of the external data in bytes. 5578 * @param[in] finalizer A callback function to be called when the array buffer is finalized. Can be nullptr. 5579 * @param[in] hint A user-defined hint to be passed to the finalizer. Can be nullptr. 5580 * @param[out] result A pointer to store the created array buffer object. 5581 * @return Returns a status code of type `ani_status` indicating success or failure. 5582 */ 5583 ani_status (*CreateArrayBufferExternal)(ani_env *env, void *external_data, size_t length, ani_finalizer finalizer, 5584 void *hint, ani_arraybuffer *result); 5585 5586 /** 5587 * @brief Retrieves information about an array buffer. 5588 * 5589 * This function retrieves the data pointer and length of the specified array buffer. 5590 * 5591 * @param[in] env A pointer to the environment structure. 5592 * @param[in] arraybuffer The array buffer to query. 5593 * @param[out] data_result A pointer to store the data of the array buffer. 5594 * @param[out] length_result A pointer to store the length of the array buffer in bytes. 5595 * @return Returns a status code of type `ani_status` indicating success or failure. 5596 */ 5597 ani_status (*ArrayBuffer_GetInfo)(ani_env *env, ani_arraybuffer arraybuffer, void **data_result, 5598 size_t *length_result); 5599 5600 /** 5601 * @brief Creates a new Promise. 5602 * 5603 * This function creates a new promise and a resolver to manage it. 5604 * 5605 * @param[in] env A pointer to the environment structure. 5606 * @param[out] result_resolver A pointer to store the created resolver. 5607 * @param[out] result_promise A pointer to store the created promise. 5608 * @return Returns a status code of type `ani_status` indicating success or failure. 5609 */ 5610 ani_status (*Promise_New)(ani_env *env, ani_resolver *result_resolver, ani_object *result_promise); 5611 5612 /** 5613 * @brief Resolves a promise. 5614 * 5615 * This function resolves a promise by way of the resolver with which it is associated 5616 * and queues promise `then` callbacks. 5617 * 5618 * @param[in] env A pointer to the environment structure. 5619 * @param[in] resolver A resolver whose associated promise to resolve. 5620 * @param[in] resolution A reference with which to resolve the promise. 5621 * @return Returns a status code of type `ani_status` indicating success or failure. 5622 * The `resolver` is freed upon successful completion. 5623 */ 5624 ani_status (*PromiseResolver_Resolve)(ani_env *env, ani_resolver resolver, ani_ref resolution); 5625 5626 /** 5627 * @brief Rejects a promise. 5628 * 5629 * This function rejects a promise by way of the resolver with which it is associated 5630 * and queues promise `catch` callbacks. 5631 * 5632 * @param[in] env A pointer to the environment structure. 5633 * @param[in] resolver A resolver whose associated promise to resolve. 5634 * @param[in] rejection An error with which to reject the promise. 5635 * @return Returns a status code of type `ani_status` indicating success or failure. 5636 * The `resolver` is freed upon successful completion. 5637 */ 5638 ani_status (*PromiseResolver_Reject)(ani_env *env, ani_resolver resolver, ani_error rejection); 5639 }; 5640 5641 // C++ API 5642 struct __ani_vm { 5643 const struct __ani_vm_api *c_api; 5644 5645 #ifdef __cplusplus DestroyVM__ani_vm5646 ani_status DestroyVM() 5647 { 5648 return c_api->DestroyVM(this); 5649 } GetEnv__ani_vm5650 ani_status GetEnv(uint32_t version, ani_env **result) 5651 { 5652 return c_api->GetEnv(this, version, result); 5653 } AttachCurrentThread__ani_vm5654 ani_status AttachCurrentThread(const ani_options *options, uint32_t version, ani_env **result) 5655 { 5656 return c_api->AttachCurrentThread(this, options, version, result); 5657 } DetachCurrentThread__ani_vm5658 ani_status DetachCurrentThread() 5659 { 5660 return c_api->DetachCurrentThread(this); 5661 } 5662 #endif // __cplusplus 5663 }; 5664 5665 struct __ani_env { 5666 const struct __ani_interaction_api *c_api; 5667 5668 #ifdef __cplusplus GetVersion__ani_env5669 ani_status GetVersion(uint32_t *result) 5670 { 5671 return c_api->GetVersion(this, result); 5672 } GetVM__ani_env5673 ani_status GetVM(ani_vm **result) 5674 { 5675 return c_api->GetVM(this, result); 5676 } Object_New__ani_env5677 ani_status Object_New(ani_class cls, ani_method method, ani_object *result, ...) 5678 { 5679 va_list args; 5680 va_start(args, result); 5681 ani_status status = c_api->Object_New_V(this, cls, method, result, args); 5682 va_end(args); 5683 return status; 5684 } Object_New_A__ani_env5685 ani_status Object_New_A(ani_class cls, ani_method method, ani_object *result, const ani_value *args) 5686 { 5687 return c_api->Object_New_A(this, cls, method, result, args); 5688 } Object_New_V__ani_env5689 ani_status Object_New_V(ani_class cls, ani_method method, ani_object *result, va_list args) 5690 { 5691 return c_api->Object_New_V(this, cls, method, result, args); 5692 } Object_GetType__ani_env5693 ani_status Object_GetType(ani_object object, ani_type *result) 5694 { 5695 return c_api->Object_GetType(this, object, result); 5696 } Object_InstanceOf__ani_env5697 ani_status Object_InstanceOf(ani_object object, ani_type type, ani_boolean *result) 5698 { 5699 return c_api->Object_InstanceOf(this, object, type, result); 5700 } Type_GetSuperClass__ani_env5701 ani_status Type_GetSuperClass(ani_type type, ani_class *result) 5702 { 5703 return c_api->Type_GetSuperClass(this, type, result); 5704 } Type_IsAssignableFrom__ani_env5705 ani_status Type_IsAssignableFrom(ani_type from_type, ani_type to_type, ani_boolean *result) 5706 { 5707 return c_api->Type_IsAssignableFrom(this, from_type, to_type, result); 5708 } FindModule__ani_env5709 ani_status FindModule(const char *module_descriptor, ani_module *result) 5710 { 5711 return c_api->FindModule(this, module_descriptor, result); 5712 } FindNamespace__ani_env5713 ani_status FindNamespace(const char *namespace_descriptor, ani_namespace *result) 5714 { 5715 return c_api->FindNamespace(this, namespace_descriptor, result); 5716 } FindClass__ani_env5717 ani_status FindClass(const char *class_descriptor, ani_class *result) 5718 { 5719 return c_api->FindClass(this, class_descriptor, result); 5720 } FindEnum__ani_env5721 ani_status FindEnum(const char *enum_descriptor, ani_enum *result) 5722 { 5723 return c_api->FindEnum(this, enum_descriptor, result); 5724 } Module_FindNamespace__ani_env5725 ani_status Module_FindNamespace(ani_module module, const char *namespace_descriptor, ani_namespace *result) 5726 { 5727 return c_api->Module_FindNamespace(this, module, namespace_descriptor, result); 5728 } Module_FindClass__ani_env5729 ani_status Module_FindClass(ani_module module, const char *class_descriptor, ani_class *result) 5730 { 5731 return c_api->Module_FindClass(this, module, class_descriptor, result); 5732 } Module_FindEnum__ani_env5733 ani_status Module_FindEnum(ani_module module, const char *enum_descriptor, ani_enum *result) 5734 { 5735 return c_api->Module_FindEnum(this, module, enum_descriptor, result); 5736 } Module_FindFunction__ani_env5737 ani_status Module_FindFunction(ani_module module, const char *name, const char *signature, ani_function *result) 5738 { 5739 return c_api->Module_FindFunction(this, module, name, signature, result); 5740 } Module_FindVariable__ani_env5741 ani_status Module_FindVariable(ani_module module, const char *name, ani_variable *result) 5742 { 5743 return c_api->Module_FindVariable(this, module, name, result); 5744 } Namespace_FindNamespace__ani_env5745 ani_status Namespace_FindNamespace(ani_namespace ns, const char *namespace_descriptor, ani_namespace *result) 5746 { 5747 return c_api->Namespace_FindNamespace(this, ns, namespace_descriptor, result); 5748 } Namespace_FindClass__ani_env5749 ani_status Namespace_FindClass(ani_namespace ns, const char *class_descriptor, ani_class *result) 5750 { 5751 return c_api->Namespace_FindClass(this, ns, class_descriptor, result); 5752 } Namespace_FindEnum__ani_env5753 ani_status Namespace_FindEnum(ani_namespace ns, const char *enum_descriptor, ani_enum *result) 5754 { 5755 return c_api->Namespace_FindEnum(this, ns, enum_descriptor, result); 5756 } Namespace_FindFunction__ani_env5757 ani_status Namespace_FindFunction(ani_namespace ns, const char *name, const char *signature, ani_function *result) 5758 { 5759 return c_api->Namespace_FindFunction(this, ns, name, signature, result); 5760 } Namespace_FindVariable__ani_env5761 ani_status Namespace_FindVariable(ani_namespace ns, const char *name, ani_variable *result) 5762 { 5763 return c_api->Namespace_FindVariable(this, ns, name, result); 5764 } Module_BindNativeFunctions__ani_env5765 ani_status Module_BindNativeFunctions(ani_module module, const ani_native_function *functions, 5766 ani_size nr_functions) 5767 { 5768 return c_api->Module_BindNativeFunctions(this, module, functions, nr_functions); 5769 } Namespace_BindNativeFunctions__ani_env5770 ani_status Namespace_BindNativeFunctions(ani_namespace ns, const ani_native_function *functions, 5771 ani_size nr_functions) 5772 { 5773 return c_api->Namespace_BindNativeFunctions(this, ns, functions, nr_functions); 5774 } Class_BindNativeMethods__ani_env5775 ani_status Class_BindNativeMethods(ani_class cls, const ani_native_function *methods, ani_size nr_methods) 5776 { 5777 return c_api->Class_BindNativeMethods(this, cls, methods, nr_methods); 5778 } Reference_Delete__ani_env5779 ani_status Reference_Delete(ani_ref ref) 5780 { 5781 return c_api->Reference_Delete(this, ref); 5782 } EnsureEnoughReferences__ani_env5783 ani_status EnsureEnoughReferences(ani_size nr_refs) 5784 { 5785 return c_api->EnsureEnoughReferences(this, nr_refs); 5786 } CreateLocalScope__ani_env5787 ani_status CreateLocalScope(ani_size nr_refs) 5788 { 5789 return c_api->CreateLocalScope(this, nr_refs); 5790 } DestroyLocalScope__ani_env5791 ani_status DestroyLocalScope() 5792 { 5793 return c_api->DestroyLocalScope(this); 5794 } CreateEscapeLocalScope__ani_env5795 ani_status CreateEscapeLocalScope(ani_size nr_refs) 5796 { 5797 return c_api->CreateEscapeLocalScope(this, nr_refs); 5798 } DestroyEscapeLocalScope__ani_env5799 ani_status DestroyEscapeLocalScope(ani_ref ref, ani_ref *result) 5800 { 5801 return c_api->DestroyEscapeLocalScope(this, ref, result); 5802 } ThrowError__ani_env5803 ani_status ThrowError(ani_error err) 5804 { 5805 return c_api->ThrowError(this, err); 5806 } ExistUnhandledError__ani_env5807 ani_status ExistUnhandledError(ani_boolean *result) 5808 { 5809 return c_api->ExistUnhandledError(this, result); 5810 } GetUnhandledError__ani_env5811 ani_status GetUnhandledError(ani_error *result) 5812 { 5813 return c_api->GetUnhandledError(this, result); 5814 } ResetError__ani_env5815 ani_status ResetError() 5816 { 5817 return c_api->ResetError(this); 5818 } DescribeError__ani_env5819 ani_status DescribeError() 5820 { 5821 return c_api->DescribeError(this); 5822 } Abort__ani_env5823 ani_status Abort(const char *message) 5824 { 5825 return c_api->Abort(this, message); 5826 } GetNull__ani_env5827 ani_status GetNull(ani_ref *result) 5828 { 5829 return c_api->GetNull(this, result); 5830 } GetUndefined__ani_env5831 ani_status GetUndefined(ani_ref *result) 5832 { 5833 return c_api->GetUndefined(this, result); 5834 } Reference_IsNull__ani_env5835 ani_status Reference_IsNull(ani_ref ref, ani_boolean *result) 5836 { 5837 return c_api->Reference_IsNull(this, ref, result); 5838 } Reference_IsUndefined__ani_env5839 ani_status Reference_IsUndefined(ani_ref ref, ani_boolean *result) 5840 { 5841 return c_api->Reference_IsUndefined(this, ref, result); 5842 } Reference_IsNullishValue__ani_env5843 ani_status Reference_IsNullishValue(ani_ref ref, ani_boolean *result) 5844 { 5845 return c_api->Reference_IsNullishValue(this, ref, result); 5846 } Reference_Equals__ani_env5847 ani_status Reference_Equals(ani_ref ref0, ani_ref ref1, ani_boolean *result) 5848 { 5849 return c_api->Reference_Equals(this, ref0, ref1, result); 5850 } Reference_StrictEquals__ani_env5851 ani_status Reference_StrictEquals(ani_ref ref0, ani_ref ref1, ani_boolean *result) 5852 { 5853 return c_api->Reference_StrictEquals(this, ref0, ref1, result); 5854 } String_NewUTF16__ani_env5855 ani_status String_NewUTF16(const uint16_t *utf16_string, ani_size utf16_size, ani_string *result) 5856 { 5857 return c_api->String_NewUTF16(this, utf16_string, utf16_size, result); 5858 } String_GetUTF16Size__ani_env5859 ani_status String_GetUTF16Size(ani_string string, ani_size *result) 5860 { 5861 return c_api->String_GetUTF16Size(this, string, result); 5862 } String_GetUTF16__ani_env5863 ani_status String_GetUTF16(ani_string string, uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result) 5864 { 5865 return c_api->String_GetUTF16(this, string, utf16_buffer, utf16_buffer_size, result); 5866 } String_GetUTF16SubString__ani_env5867 ani_status String_GetUTF16SubString(ani_string string, ani_size substr_offset, ani_size substr_size, 5868 uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result) 5869 { 5870 return c_api->String_GetUTF16SubString(this, string, substr_offset, substr_size, utf16_buffer, 5871 utf16_buffer_size, result); 5872 } String_NewUTF8__ani_env5873 ani_status String_NewUTF8(const char *utf8_string, ani_size utf8_size, ani_string *result) 5874 { 5875 return c_api->String_NewUTF8(this, utf8_string, utf8_size, result); 5876 } String_GetUTF8Size__ani_env5877 ani_status String_GetUTF8Size(ani_string string, ani_size *result) 5878 { 5879 return c_api->String_GetUTF8Size(this, string, result); 5880 } String_GetUTF8__ani_env5881 ani_status String_GetUTF8(ani_string string, char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result) 5882 { 5883 return c_api->String_GetUTF8(this, string, utf8_buffer, utf8_buffer_size, result); 5884 } String_GetUTF8SubString__ani_env5885 ani_status String_GetUTF8SubString(ani_string string, ani_size substr_offset, ani_size substr_size, 5886 char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result) 5887 { 5888 return c_api->String_GetUTF8SubString(this, string, substr_offset, substr_size, utf8_buffer, utf8_buffer_size, 5889 result); 5890 } Array_GetLength__ani_env5891 ani_status Array_GetLength(ani_array array, ani_size *result) 5892 { 5893 return c_api->Array_GetLength(this, array, result); 5894 } Array_New_Boolean__ani_env5895 ani_status Array_New_Boolean(ani_size length, ani_array_boolean *result) 5896 { 5897 return c_api->Array_New_Boolean(this, length, result); 5898 } Array_New_Char__ani_env5899 ani_status Array_New_Char(ani_size length, ani_array_char *result) 5900 { 5901 return c_api->Array_New_Char(this, length, result); 5902 } Array_New_Byte__ani_env5903 ani_status Array_New_Byte(ani_size length, ani_array_byte *result) 5904 { 5905 return c_api->Array_New_Byte(this, length, result); 5906 } Array_New_Short__ani_env5907 ani_status Array_New_Short(ani_size length, ani_array_short *result) 5908 { 5909 return c_api->Array_New_Short(this, length, result); 5910 } Array_New_Int__ani_env5911 ani_status Array_New_Int(ani_size length, ani_array_int *result) 5912 { 5913 return c_api->Array_New_Int(this, length, result); 5914 } Array_New_Long__ani_env5915 ani_status Array_New_Long(ani_size length, ani_array_long *result) 5916 { 5917 return c_api->Array_New_Long(this, length, result); 5918 } Array_New_Float__ani_env5919 ani_status Array_New_Float(ani_size length, ani_array_float *result) 5920 { 5921 return c_api->Array_New_Float(this, length, result); 5922 } Array_New_Double__ani_env5923 ani_status Array_New_Double(ani_size length, ani_array_double *result) 5924 { 5925 return c_api->Array_New_Double(this, length, result); 5926 } Array_GetRegion_Boolean__ani_env5927 ani_status Array_GetRegion_Boolean(ani_array_boolean array, ani_size offset, ani_size length, 5928 ani_boolean *native_buffer) 5929 { 5930 return c_api->Array_GetRegion_Boolean(this, array, offset, length, native_buffer); 5931 } Array_GetRegion_Char__ani_env5932 ani_status Array_GetRegion_Char(ani_array_char array, ani_size offset, ani_size length, ani_char *native_buffer) 5933 { 5934 return c_api->Array_GetRegion_Char(this, array, offset, length, native_buffer); 5935 } Array_GetRegion_Byte__ani_env5936 ani_status Array_GetRegion_Byte(ani_array_byte array, ani_size offset, ani_size length, ani_byte *native_buffer) 5937 { 5938 return c_api->Array_GetRegion_Byte(this, array, offset, length, native_buffer); 5939 } Array_GetRegion_Short__ani_env5940 ani_status Array_GetRegion_Short(ani_array_short array, ani_size offset, ani_size length, ani_short *native_buffer) 5941 { 5942 return c_api->Array_GetRegion_Short(this, array, offset, length, native_buffer); 5943 } Array_GetRegion_Int__ani_env5944 ani_status Array_GetRegion_Int(ani_array_int array, ani_size offset, ani_size length, ani_int *native_buffer) 5945 { 5946 return c_api->Array_GetRegion_Int(this, array, offset, length, native_buffer); 5947 } Array_GetRegion_Long__ani_env5948 ani_status Array_GetRegion_Long(ani_array_long array, ani_size offset, ani_size length, ani_long *native_buffer) 5949 { 5950 return c_api->Array_GetRegion_Long(this, array, offset, length, native_buffer); 5951 } Array_GetRegion_Float__ani_env5952 ani_status Array_GetRegion_Float(ani_array_float array, ani_size offset, ani_size length, ani_float *native_buffer) 5953 { 5954 return c_api->Array_GetRegion_Float(this, array, offset, length, native_buffer); 5955 } Array_GetRegion_Double__ani_env5956 ani_status Array_GetRegion_Double(ani_array_double array, ani_size offset, ani_size length, 5957 ani_double *native_buffer) 5958 { 5959 return c_api->Array_GetRegion_Double(this, array, offset, length, native_buffer); 5960 } Array_SetRegion_Boolean__ani_env5961 ani_status Array_SetRegion_Boolean(ani_array_boolean array, ani_size offset, ani_size length, 5962 const ani_boolean *native_buffer) 5963 { 5964 return c_api->Array_SetRegion_Boolean(this, array, offset, length, native_buffer); 5965 } Array_SetRegion_Char__ani_env5966 ani_status Array_SetRegion_Char(ani_array_char array, ani_size offset, ani_size length, 5967 const ani_char *native_buffer) 5968 { 5969 return c_api->Array_SetRegion_Char(this, array, offset, length, native_buffer); 5970 } Array_SetRegion_Byte__ani_env5971 ani_status Array_SetRegion_Byte(ani_array_byte array, ani_size offset, ani_size length, 5972 const ani_byte *native_buffer) 5973 { 5974 return c_api->Array_SetRegion_Byte(this, array, offset, length, native_buffer); 5975 } Array_SetRegion_Short__ani_env5976 ani_status Array_SetRegion_Short(ani_array_short array, ani_size offset, ani_size length, 5977 const ani_short *native_buffer) 5978 { 5979 return c_api->Array_SetRegion_Short(this, array, offset, length, native_buffer); 5980 } Array_SetRegion_Int__ani_env5981 ani_status Array_SetRegion_Int(ani_array_int array, ani_size offset, ani_size length, const ani_int *native_buffer) 5982 { 5983 return c_api->Array_SetRegion_Int(this, array, offset, length, native_buffer); 5984 } Array_SetRegion_Long__ani_env5985 ani_status Array_SetRegion_Long(ani_array_long array, ani_size offset, ani_size length, 5986 const ani_long *native_buffer) 5987 { 5988 return c_api->Array_SetRegion_Long(this, array, offset, length, native_buffer); 5989 } Array_SetRegion_Float__ani_env5990 ani_status Array_SetRegion_Float(ani_array_float array, ani_size offset, ani_size length, 5991 const ani_float *native_buffer) 5992 { 5993 return c_api->Array_SetRegion_Float(this, array, offset, length, native_buffer); 5994 } Array_SetRegion_Double__ani_env5995 ani_status Array_SetRegion_Double(ani_array_double array, ani_size offset, ani_size length, 5996 const ani_double *native_buffer) 5997 { 5998 return c_api->Array_SetRegion_Double(this, array, offset, length, native_buffer); 5999 } Array_New_Ref__ani_env6000 ani_status Array_New_Ref(ani_type type, ani_size length, ani_ref initial_element, ani_array_ref *result) 6001 { 6002 return c_api->Array_New_Ref(this, type, length, initial_element, result); 6003 } Array_Set_Ref__ani_env6004 ani_status Array_Set_Ref(ani_array_ref array, ani_size index, ani_ref ref) 6005 { 6006 return c_api->Array_Set_Ref(this, array, index, ref); 6007 } Array_Get_Ref__ani_env6008 ani_status Array_Get_Ref(ani_array_ref array, ani_size index, ani_ref *result) 6009 { 6010 return c_api->Array_Get_Ref(this, array, index, result); 6011 } Enum_GetEnumItemByName__ani_env6012 ani_status Enum_GetEnumItemByName(ani_enum enm, const char *name, ani_enum_item *result) 6013 { 6014 return c_api->Enum_GetEnumItemByName(this, enm, name, result); 6015 } Enum_GetEnumItemByIndex__ani_env6016 ani_status Enum_GetEnumItemByIndex(ani_enum enm, ani_size index, ani_enum_item *result) 6017 { 6018 return c_api->Enum_GetEnumItemByIndex(this, enm, index, result); 6019 } EnumItem_GetEnum__ani_env6020 ani_status EnumItem_GetEnum(ani_enum_item enum_item, ani_enum *result) 6021 { 6022 return c_api->EnumItem_GetEnum(this, enum_item, result); 6023 } EnumItem_GetValue_Int__ani_env6024 ani_status EnumItem_GetValue_Int(ani_enum_item enum_item, ani_int *result) 6025 { 6026 return c_api->EnumItem_GetValue_Int(this, enum_item, result); 6027 } EnumItem_GetValue_String__ani_env6028 ani_status EnumItem_GetValue_String(ani_enum_item enum_item, ani_string *result) 6029 { 6030 return c_api->EnumItem_GetValue_String(this, enum_item, result); 6031 } EnumItem_GetName__ani_env6032 ani_status EnumItem_GetName(ani_enum_item enum_item, ani_string *result) 6033 { 6034 return c_api->EnumItem_GetName(this, enum_item, result); 6035 } EnumItem_GetIndex__ani_env6036 ani_status EnumItem_GetIndex(ani_enum_item enum_item, ani_size *result) 6037 { 6038 return c_api->EnumItem_GetIndex(this, enum_item, result); 6039 } FunctionalObject_Call__ani_env6040 ani_status FunctionalObject_Call(ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result) 6041 { 6042 return c_api->FunctionalObject_Call(this, fn, argc, argv, result); 6043 } Variable_SetValue_Boolean__ani_env6044 ani_status Variable_SetValue_Boolean(ani_variable variable, ani_boolean value) 6045 { 6046 return c_api->Variable_SetValue_Boolean(this, variable, value); 6047 } Variable_SetValue_Char__ani_env6048 ani_status Variable_SetValue_Char(ani_variable variable, ani_char value) 6049 { 6050 return c_api->Variable_SetValue_Char(this, variable, value); 6051 } Variable_SetValue_Byte__ani_env6052 ani_status Variable_SetValue_Byte(ani_variable variable, ani_byte value) 6053 { 6054 return c_api->Variable_SetValue_Byte(this, variable, value); 6055 } Variable_SetValue_Short__ani_env6056 ani_status Variable_SetValue_Short(ani_variable variable, ani_short value) 6057 { 6058 return c_api->Variable_SetValue_Short(this, variable, value); 6059 } Variable_SetValue_Int__ani_env6060 ani_status Variable_SetValue_Int(ani_variable variable, ani_int value) 6061 { 6062 return c_api->Variable_SetValue_Int(this, variable, value); 6063 } Variable_SetValue_Long__ani_env6064 ani_status Variable_SetValue_Long(ani_variable variable, ani_long value) 6065 { 6066 return c_api->Variable_SetValue_Long(this, variable, value); 6067 } Variable_SetValue_Float__ani_env6068 ani_status Variable_SetValue_Float(ani_variable variable, ani_float value) 6069 { 6070 return c_api->Variable_SetValue_Float(this, variable, value); 6071 } Variable_SetValue_Double__ani_env6072 ani_status Variable_SetValue_Double(ani_variable variable, ani_double value) 6073 { 6074 return c_api->Variable_SetValue_Double(this, variable, value); 6075 } Variable_SetValue_Ref__ani_env6076 ani_status Variable_SetValue_Ref(ani_variable variable, ani_ref value) 6077 { 6078 return c_api->Variable_SetValue_Ref(this, variable, value); 6079 } Variable_GetValue_Boolean__ani_env6080 ani_status Variable_GetValue_Boolean(ani_variable variable, ani_boolean *result) 6081 { 6082 return c_api->Variable_GetValue_Boolean(this, variable, result); 6083 } Variable_GetValue_Char__ani_env6084 ani_status Variable_GetValue_Char(ani_variable variable, ani_char *result) 6085 { 6086 return c_api->Variable_GetValue_Char(this, variable, result); 6087 } Variable_GetValue_Byte__ani_env6088 ani_status Variable_GetValue_Byte(ani_variable variable, ani_byte *result) 6089 { 6090 return c_api->Variable_GetValue_Byte(this, variable, result); 6091 } Variable_GetValue_Short__ani_env6092 ani_status Variable_GetValue_Short(ani_variable variable, ani_short *result) 6093 { 6094 return c_api->Variable_GetValue_Short(this, variable, result); 6095 } Variable_GetValue_Int__ani_env6096 ani_status Variable_GetValue_Int(ani_variable variable, ani_int *result) 6097 { 6098 return c_api->Variable_GetValue_Int(this, variable, result); 6099 } Variable_GetValue_Long__ani_env6100 ani_status Variable_GetValue_Long(ani_variable variable, ani_long *result) 6101 { 6102 return c_api->Variable_GetValue_Long(this, variable, result); 6103 } Variable_GetValue_Float__ani_env6104 ani_status Variable_GetValue_Float(ani_variable variable, ani_float *result) 6105 { 6106 return c_api->Variable_GetValue_Float(this, variable, result); 6107 } Variable_GetValue_Double__ani_env6108 ani_status Variable_GetValue_Double(ani_variable variable, ani_double *result) 6109 { 6110 return c_api->Variable_GetValue_Double(this, variable, result); 6111 } Variable_GetValue_Ref__ani_env6112 ani_status Variable_GetValue_Ref(ani_variable variable, ani_ref *result) 6113 { 6114 return c_api->Variable_GetValue_Ref(this, variable, result); 6115 } Function_Call_Boolean__ani_env6116 ani_status Function_Call_Boolean(ani_function fn, ani_boolean *result, ...) 6117 { 6118 va_list args; 6119 va_start(args, result); 6120 ani_status status = c_api->Function_Call_Boolean_V(this, fn, result, args); 6121 va_end(args); 6122 return status; 6123 } Function_Call_Boolean_A__ani_env6124 ani_status Function_Call_Boolean_A(ani_function fn, ani_boolean *result, const ani_value *args) 6125 { 6126 return c_api->Function_Call_Boolean_A(this, fn, result, args); 6127 } Function_Call_Boolean_V__ani_env6128 ani_status Function_Call_Boolean_V(ani_function fn, ani_boolean *result, va_list args) 6129 { 6130 return c_api->Function_Call_Boolean_V(this, fn, result, args); 6131 } Function_Call_Char__ani_env6132 ani_status Function_Call_Char(ani_function fn, ani_char *result, ...) 6133 { 6134 va_list args; 6135 va_start(args, result); 6136 ani_status status = c_api->Function_Call_Char_V(this, fn, result, args); 6137 va_end(args); 6138 return status; 6139 } Function_Call_Char_A__ani_env6140 ani_status Function_Call_Char_A(ani_function fn, ani_char *result, const ani_value *args) 6141 { 6142 return c_api->Function_Call_Char_A(this, fn, result, args); 6143 } Function_Call_Char_V__ani_env6144 ani_status Function_Call_Char_V(ani_function fn, ani_char *result, va_list args) 6145 { 6146 return c_api->Function_Call_Char_V(this, fn, result, args); 6147 } Function_Call_Byte__ani_env6148 ani_status Function_Call_Byte(ani_function fn, ani_byte *result, ...) 6149 { 6150 va_list args; 6151 va_start(args, result); 6152 ani_status status = c_api->Function_Call_Byte_V(this, fn, result, args); 6153 va_end(args); 6154 return status; 6155 } Function_Call_Byte_A__ani_env6156 ani_status Function_Call_Byte_A(ani_function fn, ani_byte *result, const ani_value *args) 6157 { 6158 return c_api->Function_Call_Byte_A(this, fn, result, args); 6159 } Function_Call_Byte_V__ani_env6160 ani_status Function_Call_Byte_V(ani_function fn, ani_byte *result, va_list args) 6161 { 6162 return c_api->Function_Call_Byte_V(this, fn, result, args); 6163 } Function_Call_Short__ani_env6164 ani_status Function_Call_Short(ani_function fn, ani_short *result, ...) 6165 { 6166 va_list args; 6167 va_start(args, result); 6168 ani_status status = c_api->Function_Call_Short_V(this, fn, result, args); 6169 va_end(args); 6170 return status; 6171 } Function_Call_Short_A__ani_env6172 ani_status Function_Call_Short_A(ani_function fn, ani_short *result, const ani_value *args) 6173 { 6174 return c_api->Function_Call_Short_A(this, fn, result, args); 6175 } Function_Call_Short_V__ani_env6176 ani_status Function_Call_Short_V(ani_function fn, ani_short *result, va_list args) 6177 { 6178 return c_api->Function_Call_Short_V(this, fn, result, args); 6179 } Function_Call_Int__ani_env6180 ani_status Function_Call_Int(ani_function fn, ani_int *result, ...) 6181 { 6182 va_list args; 6183 va_start(args, result); 6184 ani_status status = c_api->Function_Call_Int_V(this, fn, result, args); 6185 va_end(args); 6186 return status; 6187 } Function_Call_Int_A__ani_env6188 ani_status Function_Call_Int_A(ani_function fn, ani_int *result, const ani_value *args) 6189 { 6190 return c_api->Function_Call_Int_A(this, fn, result, args); 6191 } Function_Call_Int_V__ani_env6192 ani_status Function_Call_Int_V(ani_function fn, ani_int *result, va_list args) 6193 { 6194 return c_api->Function_Call_Int_V(this, fn, result, args); 6195 } Function_Call_Long__ani_env6196 ani_status Function_Call_Long(ani_function fn, ani_long *result, ...) 6197 { 6198 va_list args; 6199 va_start(args, result); 6200 ani_status status = c_api->Function_Call_Long_V(this, fn, result, args); 6201 va_end(args); 6202 return status; 6203 } Function_Call_Long_A__ani_env6204 ani_status Function_Call_Long_A(ani_function fn, ani_long *result, const ani_value *args) 6205 { 6206 return c_api->Function_Call_Long_A(this, fn, result, args); 6207 } Function_Call_Long_V__ani_env6208 ani_status Function_Call_Long_V(ani_function fn, ani_long *result, va_list args) 6209 { 6210 return c_api->Function_Call_Long_V(this, fn, result, args); 6211 } Function_Call_Float__ani_env6212 ani_status Function_Call_Float(ani_function fn, ani_float *result, ...) 6213 { 6214 va_list args; 6215 va_start(args, result); 6216 ani_status status = c_api->Function_Call_Float_V(this, fn, result, args); 6217 va_end(args); 6218 return status; 6219 } Function_Call_Float_A__ani_env6220 ani_status Function_Call_Float_A(ani_function fn, ani_float *result, const ani_value *args) 6221 { 6222 return c_api->Function_Call_Float_A(this, fn, result, args); 6223 } Function_Call_Float_V__ani_env6224 ani_status Function_Call_Float_V(ani_function fn, ani_float *result, va_list args) 6225 { 6226 return c_api->Function_Call_Float_V(this, fn, result, args); 6227 } Function_Call_Double__ani_env6228 ani_status Function_Call_Double(ani_function fn, ani_double *result, ...) 6229 { 6230 va_list args; 6231 va_start(args, result); 6232 ani_status status = c_api->Function_Call_Double_V(this, fn, result, args); 6233 va_end(args); 6234 return status; 6235 } Function_Call_Double_A__ani_env6236 ani_status Function_Call_Double_A(ani_function fn, ani_double *result, const ani_value *args) 6237 { 6238 return c_api->Function_Call_Double_A(this, fn, result, args); 6239 } Function_Call_Double_V__ani_env6240 ani_status Function_Call_Double_V(ani_function fn, ani_double *result, va_list args) 6241 { 6242 return c_api->Function_Call_Double_V(this, fn, result, args); 6243 } Function_Call_Ref__ani_env6244 ani_status Function_Call_Ref(ani_function fn, ani_ref *result, ...) 6245 { 6246 va_list args; 6247 va_start(args, result); 6248 ani_status status = c_api->Function_Call_Ref_V(this, fn, result, args); 6249 va_end(args); 6250 return status; 6251 } Function_Call_Ref_A__ani_env6252 ani_status Function_Call_Ref_A(ani_function fn, ani_ref *result, const ani_value *args) 6253 { 6254 return c_api->Function_Call_Ref_A(this, fn, result, args); 6255 } Function_Call_Ref_V__ani_env6256 ani_status Function_Call_Ref_V(ani_function fn, ani_ref *result, va_list args) 6257 { 6258 return c_api->Function_Call_Ref_V(this, fn, result, args); 6259 } Function_Call_Void__ani_env6260 ani_status Function_Call_Void(ani_function fn, ...) 6261 { 6262 va_list args; 6263 va_start(args, fn); 6264 ani_status status = c_api->Function_Call_Void_V(this, fn, args); 6265 va_end(args); 6266 return status; 6267 } Function_Call_Void_A__ani_env6268 ani_status Function_Call_Void_A(ani_function fn, const ani_value *args) 6269 { 6270 return c_api->Function_Call_Void_A(this, fn, args); 6271 } Function_Call_Void_V__ani_env6272 ani_status Function_Call_Void_V(ani_function fn, va_list args) 6273 { 6274 return c_api->Function_Call_Void_V(this, fn, args); 6275 } Class_FindField__ani_env6276 ani_status Class_FindField(ani_class cls, const char *name, ani_field *result) 6277 { 6278 return c_api->Class_FindField(this, cls, name, result); 6279 } Class_FindStaticField__ani_env6280 ani_status Class_FindStaticField(ani_class cls, const char *name, ani_static_field *result) 6281 { 6282 return c_api->Class_FindStaticField(this, cls, name, result); 6283 } Class_FindMethod__ani_env6284 ani_status Class_FindMethod(ani_class cls, const char *name, const char *signature, ani_method *result) 6285 { 6286 return c_api->Class_FindMethod(this, cls, name, signature, result); 6287 } Class_FindStaticMethod__ani_env6288 ani_status Class_FindStaticMethod(ani_class cls, const char *name, const char *signature, ani_static_method *result) 6289 { 6290 return c_api->Class_FindStaticMethod(this, cls, name, signature, result); 6291 } Class_FindSetter__ani_env6292 ani_status Class_FindSetter(ani_class cls, const char *name, ani_method *result) 6293 { 6294 return c_api->Class_FindSetter(this, cls, name, result); 6295 } Class_FindGetter__ani_env6296 ani_status Class_FindGetter(ani_class cls, const char *name, ani_method *result) 6297 { 6298 return c_api->Class_FindGetter(this, cls, name, result); 6299 } Class_FindIndexableGetter__ani_env6300 ani_status Class_FindIndexableGetter(ani_class cls, const char *signature, ani_method *result) 6301 { 6302 return c_api->Class_FindIndexableGetter(this, cls, signature, result); 6303 } Class_FindIndexableSetter__ani_env6304 ani_status Class_FindIndexableSetter(ani_class cls, const char *signature, ani_method *result) 6305 { 6306 return c_api->Class_FindIndexableSetter(this, cls, signature, result); 6307 } Class_FindIterator__ani_env6308 ani_status Class_FindIterator(ani_class cls, ani_method *result) 6309 { 6310 return c_api->Class_FindIterator(this, cls, result); 6311 } Class_GetStaticField_Boolean__ani_env6312 ani_status Class_GetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean *result) 6313 { 6314 return c_api->Class_GetStaticField_Boolean(this, cls, field, result); 6315 } Class_GetStaticField_Char__ani_env6316 ani_status Class_GetStaticField_Char(ani_class cls, ani_static_field field, ani_char *result) 6317 { 6318 return c_api->Class_GetStaticField_Char(this, cls, field, result); 6319 } Class_GetStaticField_Byte__ani_env6320 ani_status Class_GetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte *result) 6321 { 6322 return c_api->Class_GetStaticField_Byte(this, cls, field, result); 6323 } Class_GetStaticField_Short__ani_env6324 ani_status Class_GetStaticField_Short(ani_class cls, ani_static_field field, ani_short *result) 6325 { 6326 return c_api->Class_GetStaticField_Short(this, cls, field, result); 6327 } Class_GetStaticField_Int__ani_env6328 ani_status Class_GetStaticField_Int(ani_class cls, ani_static_field field, ani_int *result) 6329 { 6330 return c_api->Class_GetStaticField_Int(this, cls, field, result); 6331 } Class_GetStaticField_Long__ani_env6332 ani_status Class_GetStaticField_Long(ani_class cls, ani_static_field field, ani_long *result) 6333 { 6334 return c_api->Class_GetStaticField_Long(this, cls, field, result); 6335 } Class_GetStaticField_Float__ani_env6336 ani_status Class_GetStaticField_Float(ani_class cls, ani_static_field field, ani_float *result) 6337 { 6338 return c_api->Class_GetStaticField_Float(this, cls, field, result); 6339 } Class_GetStaticField_Double__ani_env6340 ani_status Class_GetStaticField_Double(ani_class cls, ani_static_field field, ani_double *result) 6341 { 6342 return c_api->Class_GetStaticField_Double(this, cls, field, result); 6343 } Class_GetStaticField_Ref__ani_env6344 ani_status Class_GetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref *result) 6345 { 6346 return c_api->Class_GetStaticField_Ref(this, cls, field, result); 6347 } Class_SetStaticField_Boolean__ani_env6348 ani_status Class_SetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean value) 6349 { 6350 return c_api->Class_SetStaticField_Boolean(this, cls, field, value); 6351 } Class_SetStaticField_Char__ani_env6352 ani_status Class_SetStaticField_Char(ani_class cls, ani_static_field field, ani_char value) 6353 { 6354 return c_api->Class_SetStaticField_Char(this, cls, field, value); 6355 } Class_SetStaticField_Byte__ani_env6356 ani_status Class_SetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte value) 6357 { 6358 return c_api->Class_SetStaticField_Byte(this, cls, field, value); 6359 } Class_SetStaticField_Short__ani_env6360 ani_status Class_SetStaticField_Short(ani_class cls, ani_static_field field, ani_short value) 6361 { 6362 return c_api->Class_SetStaticField_Short(this, cls, field, value); 6363 } Class_SetStaticField_Int__ani_env6364 ani_status Class_SetStaticField_Int(ani_class cls, ani_static_field field, ani_int value) 6365 { 6366 return c_api->Class_SetStaticField_Int(this, cls, field, value); 6367 } Class_SetStaticField_Long__ani_env6368 ani_status Class_SetStaticField_Long(ani_class cls, ani_static_field field, ani_long value) 6369 { 6370 return c_api->Class_SetStaticField_Long(this, cls, field, value); 6371 } Class_SetStaticField_Float__ani_env6372 ani_status Class_SetStaticField_Float(ani_class cls, ani_static_field field, ani_float value) 6373 { 6374 return c_api->Class_SetStaticField_Float(this, cls, field, value); 6375 } Class_SetStaticField_Double__ani_env6376 ani_status Class_SetStaticField_Double(ani_class cls, ani_static_field field, ani_double value) 6377 { 6378 return c_api->Class_SetStaticField_Double(this, cls, field, value); 6379 } Class_SetStaticField_Ref__ani_env6380 ani_status Class_SetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref value) 6381 { 6382 return c_api->Class_SetStaticField_Ref(this, cls, field, value); 6383 } Class_GetStaticFieldByName_Boolean__ani_env6384 ani_status Class_GetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean *result) 6385 { 6386 return c_api->Class_GetStaticFieldByName_Boolean(this, cls, name, result); 6387 } Class_GetStaticFieldByName_Char__ani_env6388 ani_status Class_GetStaticFieldByName_Char(ani_class cls, const char *name, ani_char *result) 6389 { 6390 return c_api->Class_GetStaticFieldByName_Char(this, cls, name, result); 6391 } Class_GetStaticFieldByName_Byte__ani_env6392 ani_status Class_GetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte *result) 6393 { 6394 return c_api->Class_GetStaticFieldByName_Byte(this, cls, name, result); 6395 } Class_GetStaticFieldByName_Short__ani_env6396 ani_status Class_GetStaticFieldByName_Short(ani_class cls, const char *name, ani_short *result) 6397 { 6398 return c_api->Class_GetStaticFieldByName_Short(this, cls, name, result); 6399 } Class_GetStaticFieldByName_Int__ani_env6400 ani_status Class_GetStaticFieldByName_Int(ani_class cls, const char *name, ani_int *result) 6401 { 6402 return c_api->Class_GetStaticFieldByName_Int(this, cls, name, result); 6403 } Class_GetStaticFieldByName_Long__ani_env6404 ani_status Class_GetStaticFieldByName_Long(ani_class cls, const char *name, ani_long *result) 6405 { 6406 return c_api->Class_GetStaticFieldByName_Long(this, cls, name, result); 6407 } Class_GetStaticFieldByName_Float__ani_env6408 ani_status Class_GetStaticFieldByName_Float(ani_class cls, const char *name, ani_float *result) 6409 { 6410 return c_api->Class_GetStaticFieldByName_Float(this, cls, name, result); 6411 } Class_GetStaticFieldByName_Double__ani_env6412 ani_status Class_GetStaticFieldByName_Double(ani_class cls, const char *name, ani_double *result) 6413 { 6414 return c_api->Class_GetStaticFieldByName_Double(this, cls, name, result); 6415 } Class_GetStaticFieldByName_Ref__ani_env6416 ani_status Class_GetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref *result) 6417 { 6418 return c_api->Class_GetStaticFieldByName_Ref(this, cls, name, result); 6419 } Class_SetStaticFieldByName_Boolean__ani_env6420 ani_status Class_SetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean value) 6421 { 6422 return c_api->Class_SetStaticFieldByName_Boolean(this, cls, name, value); 6423 } Class_SetStaticFieldByName_Char__ani_env6424 ani_status Class_SetStaticFieldByName_Char(ani_class cls, const char *name, ani_char value) 6425 { 6426 return c_api->Class_SetStaticFieldByName_Char(this, cls, name, value); 6427 } Class_SetStaticFieldByName_Byte__ani_env6428 ani_status Class_SetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte value) 6429 { 6430 return c_api->Class_SetStaticFieldByName_Byte(this, cls, name, value); 6431 } Class_SetStaticFieldByName_Short__ani_env6432 ani_status Class_SetStaticFieldByName_Short(ani_class cls, const char *name, ani_short value) 6433 { 6434 return c_api->Class_SetStaticFieldByName_Short(this, cls, name, value); 6435 } Class_SetStaticFieldByName_Int__ani_env6436 ani_status Class_SetStaticFieldByName_Int(ani_class cls, const char *name, ani_int value) 6437 { 6438 return c_api->Class_SetStaticFieldByName_Int(this, cls, name, value); 6439 } Class_SetStaticFieldByName_Long__ani_env6440 ani_status Class_SetStaticFieldByName_Long(ani_class cls, const char *name, ani_long value) 6441 { 6442 return c_api->Class_SetStaticFieldByName_Long(this, cls, name, value); 6443 } Class_SetStaticFieldByName_Float__ani_env6444 ani_status Class_SetStaticFieldByName_Float(ani_class cls, const char *name, ani_float value) 6445 { 6446 return c_api->Class_SetStaticFieldByName_Float(this, cls, name, value); 6447 } Class_SetStaticFieldByName_Double__ani_env6448 ani_status Class_SetStaticFieldByName_Double(ani_class cls, const char *name, ani_double value) 6449 { 6450 return c_api->Class_SetStaticFieldByName_Double(this, cls, name, value); 6451 } Class_SetStaticFieldByName_Ref__ani_env6452 ani_status Class_SetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref value) 6453 { 6454 return c_api->Class_SetStaticFieldByName_Ref(this, cls, name, value); 6455 } Class_CallStaticMethod_Boolean__ani_env6456 ani_status Class_CallStaticMethod_Boolean(ani_class cls, ani_static_method method, ani_boolean *result, ...) 6457 { 6458 va_list args; 6459 va_start(args, result); 6460 ani_status status = c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args); 6461 va_end(args); 6462 return status; 6463 } Class_CallStaticMethod_Boolean_A__ani_env6464 ani_status Class_CallStaticMethod_Boolean_A(ani_class cls, ani_static_method method, ani_boolean *result, 6465 const ani_value *args) 6466 { 6467 return c_api->Class_CallStaticMethod_Boolean_A(this, cls, method, result, args); 6468 } Class_CallStaticMethod_Boolean_V__ani_env6469 ani_status Class_CallStaticMethod_Boolean_V(ani_class cls, ani_static_method method, ani_boolean *result, 6470 va_list args) 6471 { 6472 return c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args); 6473 } Class_CallStaticMethod_Char__ani_env6474 ani_status Class_CallStaticMethod_Char(ani_class cls, ani_static_method method, ani_char *result, ...) 6475 { 6476 va_list args; 6477 va_start(args, result); 6478 ani_status status = c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args); 6479 va_end(args); 6480 return status; 6481 } Class_CallStaticMethod_Char_A__ani_env6482 ani_status Class_CallStaticMethod_Char_A(ani_class cls, ani_static_method method, ani_char *result, 6483 const ani_value *args) 6484 { 6485 return c_api->Class_CallStaticMethod_Char_A(this, cls, method, result, args); 6486 } Class_CallStaticMethod_Char_V__ani_env6487 ani_status Class_CallStaticMethod_Char_V(ani_class cls, ani_static_method method, ani_char *result, va_list args) 6488 { 6489 return c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args); 6490 } Class_CallStaticMethod_Byte__ani_env6491 ani_status Class_CallStaticMethod_Byte(ani_class cls, ani_static_method method, ani_byte *result, ...) 6492 { 6493 va_list args; 6494 va_start(args, result); 6495 ani_status status = c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args); 6496 va_end(args); 6497 return status; 6498 } Class_CallStaticMethod_Byte_A__ani_env6499 ani_status Class_CallStaticMethod_Byte_A(ani_class cls, ani_static_method method, ani_byte *result, 6500 const ani_value *args) 6501 { 6502 return c_api->Class_CallStaticMethod_Byte_A(this, cls, method, result, args); 6503 } Class_CallStaticMethod_Byte_V__ani_env6504 ani_status Class_CallStaticMethod_Byte_V(ani_class cls, ani_static_method method, ani_byte *result, va_list args) 6505 { 6506 return c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args); 6507 } Class_CallStaticMethod_Short__ani_env6508 ani_status Class_CallStaticMethod_Short(ani_class cls, ani_static_method method, ani_short *result, ...) 6509 { 6510 va_list args; 6511 va_start(args, result); 6512 ani_status status = c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args); 6513 va_end(args); 6514 return status; 6515 } Class_CallStaticMethod_Short_A__ani_env6516 ani_status Class_CallStaticMethod_Short_A(ani_class cls, ani_static_method method, ani_short *result, 6517 const ani_value *args) 6518 { 6519 return c_api->Class_CallStaticMethod_Short_A(this, cls, method, result, args); 6520 } Class_CallStaticMethod_Short_V__ani_env6521 ani_status Class_CallStaticMethod_Short_V(ani_class cls, ani_static_method method, ani_short *result, va_list args) 6522 { 6523 return c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args); 6524 } Class_CallStaticMethod_Int__ani_env6525 ani_status Class_CallStaticMethod_Int(ani_class cls, ani_static_method method, ani_int *result, ...) 6526 { 6527 va_list args; 6528 va_start(args, result); 6529 ani_status status = c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args); 6530 va_end(args); 6531 return status; 6532 } Class_CallStaticMethod_Int_A__ani_env6533 ani_status Class_CallStaticMethod_Int_A(ani_class cls, ani_static_method method, ani_int *result, 6534 const ani_value *args) 6535 { 6536 return c_api->Class_CallStaticMethod_Int_A(this, cls, method, result, args); 6537 } Class_CallStaticMethod_Int_V__ani_env6538 ani_status Class_CallStaticMethod_Int_V(ani_class cls, ani_static_method method, ani_int *result, va_list args) 6539 { 6540 return c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args); 6541 } Class_CallStaticMethod_Long__ani_env6542 ani_status Class_CallStaticMethod_Long(ani_class cls, ani_static_method method, ani_long *result, ...) 6543 { 6544 va_list args; 6545 va_start(args, result); 6546 ani_status status = c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args); 6547 va_end(args); 6548 return status; 6549 } Class_CallStaticMethod_Long_A__ani_env6550 ani_status Class_CallStaticMethod_Long_A(ani_class cls, ani_static_method method, ani_long *result, 6551 const ani_value *args) 6552 { 6553 return c_api->Class_CallStaticMethod_Long_A(this, cls, method, result, args); 6554 } Class_CallStaticMethod_Long_V__ani_env6555 ani_status Class_CallStaticMethod_Long_V(ani_class cls, ani_static_method method, ani_long *result, va_list args) 6556 { 6557 return c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args); 6558 } Class_CallStaticMethod_Float__ani_env6559 ani_status Class_CallStaticMethod_Float(ani_class cls, ani_static_method method, ani_float *result, ...) 6560 { 6561 va_list args; 6562 va_start(args, result); 6563 ani_status status = c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args); 6564 va_end(args); 6565 return status; 6566 } Class_CallStaticMethod_Float_A__ani_env6567 ani_status Class_CallStaticMethod_Float_A(ani_class cls, ani_static_method method, ani_float *result, 6568 const ani_value *args) 6569 { 6570 return c_api->Class_CallStaticMethod_Float_A(this, cls, method, result, args); 6571 } Class_CallStaticMethod_Float_V__ani_env6572 ani_status Class_CallStaticMethod_Float_V(ani_class cls, ani_static_method method, ani_float *result, va_list args) 6573 { 6574 return c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args); 6575 } Class_CallStaticMethod_Double__ani_env6576 ani_status Class_CallStaticMethod_Double(ani_class cls, ani_static_method method, ani_double *result, ...) 6577 { 6578 va_list args; 6579 va_start(args, result); 6580 ani_status status = c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args); 6581 va_end(args); 6582 return status; 6583 } Class_CallStaticMethod_Double_A__ani_env6584 ani_status Class_CallStaticMethod_Double_A(ani_class cls, ani_static_method method, ani_double *result, 6585 const ani_value *args) 6586 { 6587 return c_api->Class_CallStaticMethod_Double_A(this, cls, method, result, args); 6588 } Class_CallStaticMethod_Double_V__ani_env6589 ani_status Class_CallStaticMethod_Double_V(ani_class cls, ani_static_method method, ani_double *result, 6590 va_list args) 6591 { 6592 return c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args); 6593 } Class_CallStaticMethod_Ref__ani_env6594 ani_status Class_CallStaticMethod_Ref(ani_class cls, ani_static_method method, ani_ref *result, ...) 6595 { 6596 va_list args; 6597 va_start(args, result); 6598 ani_status status = c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args); 6599 va_end(args); 6600 return status; 6601 } Class_CallStaticMethod_Ref_A__ani_env6602 ani_status Class_CallStaticMethod_Ref_A(ani_class cls, ani_static_method method, ani_ref *result, 6603 const ani_value *args) 6604 { 6605 return c_api->Class_CallStaticMethod_Ref_A(this, cls, method, result, args); 6606 } Class_CallStaticMethod_Ref_V__ani_env6607 ani_status Class_CallStaticMethod_Ref_V(ani_class cls, ani_static_method method, ani_ref *result, va_list args) 6608 { 6609 return c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args); 6610 } Class_CallStaticMethod_Void__ani_env6611 ani_status Class_CallStaticMethod_Void(ani_class cls, ani_static_method method, ...) 6612 { 6613 va_list args; 6614 va_start(args, method); 6615 ani_status status = c_api->Class_CallStaticMethod_Void_V(this, cls, method, args); 6616 va_end(args); 6617 return status; 6618 } Class_CallStaticMethod_Void_A__ani_env6619 ani_status Class_CallStaticMethod_Void_A(ani_class cls, ani_static_method method, const ani_value *args) 6620 { 6621 return c_api->Class_CallStaticMethod_Void_A(this, cls, method, args); 6622 } Class_CallStaticMethod_Void_V__ani_env6623 ani_status Class_CallStaticMethod_Void_V(ani_class cls, ani_static_method method, va_list args) 6624 { 6625 return c_api->Class_CallStaticMethod_Void_V(this, cls, method, args); 6626 } Class_CallStaticMethodByName_Boolean__ani_env6627 ani_status Class_CallStaticMethodByName_Boolean(ani_class cls, const char *name, const char *signature, 6628 ani_boolean *result, ...) 6629 { 6630 va_list args; 6631 va_start(args, result); 6632 ani_status status = c_api->Class_CallStaticMethodByName_Boolean_V(this, cls, name, signature, result, args); 6633 va_end(args); 6634 return status; 6635 } Class_CallStaticMethodByName_Boolean_A__ani_env6636 ani_status Class_CallStaticMethodByName_Boolean_A(ani_class cls, const char *name, const char *signature, 6637 ani_boolean *result, const ani_value *args) 6638 { 6639 return c_api->Class_CallStaticMethodByName_Boolean_A(this, cls, name, signature, result, args); 6640 } Class_CallStaticMethodByName_Boolean_V__ani_env6641 ani_status Class_CallStaticMethodByName_Boolean_V(ani_class cls, const char *name, const char *signature, 6642 ani_boolean *result, va_list args) 6643 { 6644 return c_api->Class_CallStaticMethodByName_Boolean_V(this, cls, name, signature, result, args); 6645 } Class_CallStaticMethodByName_Char__ani_env6646 ani_status Class_CallStaticMethodByName_Char(ani_class cls, const char *name, const char *signature, 6647 ani_char *result, ...) 6648 { 6649 va_list args; 6650 va_start(args, result); 6651 ani_status status = c_api->Class_CallStaticMethodByName_Char_V(this, cls, name, signature, result, args); 6652 va_end(args); 6653 return status; 6654 } Class_CallStaticMethodByName_Char_A__ani_env6655 ani_status Class_CallStaticMethodByName_Char_A(ani_class cls, const char *name, const char *signature, 6656 ani_char *result, const ani_value *args) 6657 { 6658 return c_api->Class_CallStaticMethodByName_Char_A(this, cls, name, signature, result, args); 6659 } Class_CallStaticMethodByName_Char_V__ani_env6660 ani_status Class_CallStaticMethodByName_Char_V(ani_class cls, const char *name, const char *signature, 6661 ani_char *result, va_list args) 6662 { 6663 return c_api->Class_CallStaticMethodByName_Char_V(this, cls, name, signature, result, args); 6664 } Class_CallStaticMethodByName_Byte__ani_env6665 ani_status Class_CallStaticMethodByName_Byte(ani_class cls, const char *name, const char *signature, 6666 ani_byte *result, ...) 6667 { 6668 va_list args; 6669 va_start(args, result); 6670 ani_status status = c_api->Class_CallStaticMethodByName_Byte_V(this, cls, name, signature, result, args); 6671 va_end(args); 6672 return status; 6673 } Class_CallStaticMethodByName_Byte_A__ani_env6674 ani_status Class_CallStaticMethodByName_Byte_A(ani_class cls, const char *name, const char *signature, 6675 ani_byte *result, const ani_value *args) 6676 { 6677 return c_api->Class_CallStaticMethodByName_Byte_A(this, cls, name, signature, result, args); 6678 } Class_CallStaticMethodByName_Byte_V__ani_env6679 ani_status Class_CallStaticMethodByName_Byte_V(ani_class cls, const char *name, const char *signature, 6680 ani_byte *result, va_list args) 6681 { 6682 return c_api->Class_CallStaticMethodByName_Byte_V(this, cls, name, signature, result, args); 6683 } Class_CallStaticMethodByName_Short__ani_env6684 ani_status Class_CallStaticMethodByName_Short(ani_class cls, const char *name, const char *signature, 6685 ani_short *result, ...) 6686 { 6687 va_list args; 6688 va_start(args, result); 6689 ani_status status = c_api->Class_CallStaticMethodByName_Short_V(this, cls, name, signature, result, args); 6690 va_end(args); 6691 return status; 6692 } Class_CallStaticMethodByName_Short_A__ani_env6693 ani_status Class_CallStaticMethodByName_Short_A(ani_class cls, const char *name, const char *signature, 6694 ani_short *result, const ani_value *args) 6695 { 6696 return c_api->Class_CallStaticMethodByName_Short_A(this, cls, name, signature, result, args); 6697 } Class_CallStaticMethodByName_Short_V__ani_env6698 ani_status Class_CallStaticMethodByName_Short_V(ani_class cls, const char *name, const char *signature, 6699 ani_short *result, va_list args) 6700 { 6701 return c_api->Class_CallStaticMethodByName_Short_V(this, cls, name, signature, result, args); 6702 } Class_CallStaticMethodByName_Int__ani_env6703 ani_status Class_CallStaticMethodByName_Int(ani_class cls, const char *name, const char *signature, ani_int *result, 6704 ...) 6705 { 6706 va_list args; 6707 va_start(args, result); 6708 ani_status status = c_api->Class_CallStaticMethodByName_Int_V(this, cls, name, signature, result, args); 6709 va_end(args); 6710 return status; 6711 } Class_CallStaticMethodByName_Int_A__ani_env6712 ani_status Class_CallStaticMethodByName_Int_A(ani_class cls, const char *name, const char *signature, 6713 ani_int *result, const ani_value *args) 6714 { 6715 return c_api->Class_CallStaticMethodByName_Int_A(this, cls, name, signature, result, args); 6716 } Class_CallStaticMethodByName_Int_V__ani_env6717 ani_status Class_CallStaticMethodByName_Int_V(ani_class cls, const char *name, const char *signature, 6718 ani_int *result, va_list args) 6719 { 6720 return c_api->Class_CallStaticMethodByName_Int_V(this, cls, name, signature, result, args); 6721 } Class_CallStaticMethodByName_Long__ani_env6722 ani_status Class_CallStaticMethodByName_Long(ani_class cls, const char *name, const char *signature, 6723 ani_long *result, ...) 6724 { 6725 va_list args; 6726 va_start(args, result); 6727 ani_status status = c_api->Class_CallStaticMethodByName_Long_V(this, cls, name, signature, result, args); 6728 va_end(args); 6729 return status; 6730 } Class_CallStaticMethodByName_Long_A__ani_env6731 ani_status Class_CallStaticMethodByName_Long_A(ani_class cls, const char *name, const char *signature, 6732 ani_long *result, const ani_value *args) 6733 { 6734 return c_api->Class_CallStaticMethodByName_Long_A(this, cls, name, signature, result, args); 6735 } Class_CallStaticMethodByName_Long_V__ani_env6736 ani_status Class_CallStaticMethodByName_Long_V(ani_class cls, const char *name, const char *signature, 6737 ani_long *result, va_list args) 6738 { 6739 return c_api->Class_CallStaticMethodByName_Long_V(this, cls, name, signature, result, args); 6740 } Class_CallStaticMethodByName_Float__ani_env6741 ani_status Class_CallStaticMethodByName_Float(ani_class cls, const char *name, const char *signature, 6742 ani_float *result, ...) 6743 { 6744 va_list args; 6745 va_start(args, result); 6746 ani_status status = c_api->Class_CallStaticMethodByName_Float_V(this, cls, name, signature, result, args); 6747 va_end(args); 6748 return status; 6749 } Class_CallStaticMethodByName_Float_A__ani_env6750 ani_status Class_CallStaticMethodByName_Float_A(ani_class cls, const char *name, const char *signature, 6751 ani_float *result, const ani_value *args) 6752 { 6753 return c_api->Class_CallStaticMethodByName_Float_A(this, cls, name, signature, result, args); 6754 } Class_CallStaticMethodByName_Float_V__ani_env6755 ani_status Class_CallStaticMethodByName_Float_V(ani_class cls, const char *name, const char *signature, 6756 ani_float *result, va_list args) 6757 { 6758 return c_api->Class_CallStaticMethodByName_Float_V(this, cls, name, signature, result, args); 6759 } Class_CallStaticMethodByName_Double__ani_env6760 ani_status Class_CallStaticMethodByName_Double(ani_class cls, const char *name, const char *signature, 6761 ani_double *result, ...) 6762 { 6763 va_list args; 6764 va_start(args, result); 6765 ani_status status = c_api->Class_CallStaticMethodByName_Double_V(this, cls, name, signature, result, args); 6766 va_end(args); 6767 return status; 6768 } Class_CallStaticMethodByName_Double_A__ani_env6769 ani_status Class_CallStaticMethodByName_Double_A(ani_class cls, const char *name, const char *signature, 6770 ani_double *result, const ani_value *args) 6771 { 6772 return c_api->Class_CallStaticMethodByName_Double_A(this, cls, name, signature, result, args); 6773 } Class_CallStaticMethodByName_Double_V__ani_env6774 ani_status Class_CallStaticMethodByName_Double_V(ani_class cls, const char *name, const char *signature, 6775 ani_double *result, va_list args) 6776 { 6777 return c_api->Class_CallStaticMethodByName_Double_V(this, cls, name, signature, result, args); 6778 } Class_CallStaticMethodByName_Ref__ani_env6779 ani_status Class_CallStaticMethodByName_Ref(ani_class cls, const char *name, const char *signature, ani_ref *result, 6780 ...) 6781 { 6782 va_list args; 6783 va_start(args, result); 6784 ani_status status = c_api->Class_CallStaticMethodByName_Ref_V(this, cls, name, signature, result, args); 6785 va_end(args); 6786 return status; 6787 } Class_CallStaticMethodByName_Ref_A__ani_env6788 ani_status Class_CallStaticMethodByName_Ref_A(ani_class cls, const char *name, const char *signature, 6789 ani_ref *result, const ani_value *args) 6790 { 6791 return c_api->Class_CallStaticMethodByName_Ref_A(this, cls, name, signature, result, args); 6792 } Class_CallStaticMethodByName_Ref_V__ani_env6793 ani_status Class_CallStaticMethodByName_Ref_V(ani_class cls, const char *name, const char *signature, 6794 ani_ref *result, va_list args) 6795 { 6796 return c_api->Class_CallStaticMethodByName_Ref_V(this, cls, name, signature, result, args); 6797 } Class_CallStaticMethodByName_Void__ani_env6798 ani_status Class_CallStaticMethodByName_Void(ani_class cls, const char *name, const char *signature, ...) 6799 { 6800 va_list args; 6801 va_start(args, signature); 6802 ani_status status = c_api->Class_CallStaticMethodByName_Void_V(this, cls, name, signature, args); 6803 va_end(args); 6804 return status; 6805 } Class_CallStaticMethodByName_Void_A__ani_env6806 ani_status Class_CallStaticMethodByName_Void_A(ani_class cls, const char *name, const char *signature, 6807 const ani_value *args) 6808 { 6809 return c_api->Class_CallStaticMethodByName_Void_A(this, cls, name, signature, args); 6810 } Class_CallStaticMethodByName_Void_V__ani_env6811 ani_status Class_CallStaticMethodByName_Void_V(ani_class cls, const char *name, const char *signature, va_list args) 6812 { 6813 return c_api->Class_CallStaticMethodByName_Void_V(this, cls, name, signature, args); 6814 } Object_GetField_Boolean__ani_env6815 ani_status Object_GetField_Boolean(ani_object object, ani_field field, ani_boolean *result) 6816 { 6817 return c_api->Object_GetField_Boolean(this, object, field, result); 6818 } Object_GetField_Char__ani_env6819 ani_status Object_GetField_Char(ani_object object, ani_field field, ani_char *result) 6820 { 6821 return c_api->Object_GetField_Char(this, object, field, result); 6822 } Object_GetField_Byte__ani_env6823 ani_status Object_GetField_Byte(ani_object object, ani_field field, ani_byte *result) 6824 { 6825 return c_api->Object_GetField_Byte(this, object, field, result); 6826 } Object_GetField_Short__ani_env6827 ani_status Object_GetField_Short(ani_object object, ani_field field, ani_short *result) 6828 { 6829 return c_api->Object_GetField_Short(this, object, field, result); 6830 } Object_GetField_Int__ani_env6831