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. Must be non null. 1413 * @return Returns a status code of type `ani_status` indicating success or failure. 1414 */ 1415 ani_status (*FunctionalObject_Call)(ani_env *env, ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result); 1416 1417 /** 1418 * @brief Sets a boolean value to a variable. 1419 * 1420 * This function assigns a boolean value to the specified variable. 1421 * 1422 * @param[in] env A pointer to the environment structure. 1423 * @param[in] variable The variable to modify. 1424 * @param[in] value The boolean value to assign to the variable. 1425 * @return Returns a status code of type `ani_status` indicating success or failure. 1426 */ 1427 ani_status (*Variable_SetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean value); 1428 1429 /** 1430 * @brief Sets a character value to a variable. 1431 * 1432 * This function assigns a character value to the specified variable. 1433 * 1434 * @param[in] env A pointer to the environment structure. 1435 * @param[in] variable The variable to modify. 1436 * @param[in] value The character value to assign to the variable. 1437 * @return Returns a status code of type `ani_status` indicating success or failure. 1438 */ 1439 ani_status (*Variable_SetValue_Char)(ani_env *env, ani_variable variable, ani_char value); 1440 1441 /** 1442 * @brief Sets a byte value to a variable. 1443 * 1444 * This function assigns a byte value to the specified variable. 1445 * 1446 * @param[in] env A pointer to the environment structure. 1447 * @param[in] variable The variable to modify. 1448 * @param[in] value The byte value to assign to the variable. 1449 * @return Returns a status code of type `ani_status` indicating success or failure. 1450 */ 1451 ani_status (*Variable_SetValue_Byte)(ani_env *env, ani_variable variable, ani_byte value); 1452 1453 /** 1454 * @brief Sets a short value to a variable. 1455 * 1456 * This function assigns a short integer value to the specified variable. 1457 * 1458 * @param[in] env A pointer to the environment structure. 1459 * @param[in] variable The variable to modify. 1460 * @param[in] value The short integer value to assign to the variable. 1461 * @return Returns a status code of type `ani_status` indicating success or failure. 1462 */ 1463 ani_status (*Variable_SetValue_Short)(ani_env *env, ani_variable variable, ani_short value); 1464 1465 /** 1466 * @brief Sets an integer value to a variable. 1467 * 1468 * This function assigns an integer value to the specified variable. 1469 * 1470 * @param[in] env A pointer to the environment structure. 1471 * @param[in] variable The variable to modify. 1472 * @param[in] value The integer value to assign to the variable. 1473 * @return Returns a status code of type `ani_status` indicating success or failure. 1474 */ 1475 ani_status (*Variable_SetValue_Int)(ani_env *env, ani_variable variable, ani_int value); 1476 1477 /** 1478 * @brief Sets a long value to a variable. 1479 * 1480 * This function assigns a long integer value to the specified variable. 1481 * 1482 * @param[in] env A pointer to the environment structure. 1483 * @param[in] variable The variable to modify. 1484 * @param[in] value The long integer value to assign to the variable. 1485 * @return Returns a status code of type `ani_status` indicating success or failure. 1486 */ 1487 ani_status (*Variable_SetValue_Long)(ani_env *env, ani_variable variable, ani_long value); 1488 1489 /** 1490 * @brief Sets a float value to a variable. 1491 * 1492 * This function assigns a float value to the specified variable. 1493 * 1494 * @param[in] env A pointer to the environment structure. 1495 * @param[in] variable The variable to modify. 1496 * @param[in] value The float value to assign to the variable. 1497 * @return Returns a status code of type `ani_status` indicating success or failure. 1498 */ 1499 ani_status (*Variable_SetValue_Float)(ani_env *env, ani_variable variable, ani_float value); 1500 1501 /** 1502 * @brief Sets a double value to a variable. 1503 * 1504 * This function assigns a double value to the specified variable. 1505 * 1506 * @param[in] env A pointer to the environment structure. 1507 * @param[in] variable The variable to modify. 1508 * @param[in] value The double value to assign to the variable. 1509 * @return Returns a status code of type `ani_status` indicating success or failure. 1510 */ 1511 ani_status (*Variable_SetValue_Double)(ani_env *env, ani_variable variable, ani_double value); 1512 1513 /** 1514 * @brief Sets a reference value to a variable. 1515 * 1516 * This function assigns a reference value to the specified variable. 1517 * 1518 * @param[in] env A pointer to the environment structure. 1519 * @param[in] variable The variable to modify. 1520 * @param[in] value The reference value to assign to the variable. 1521 * @return Returns a status code of type `ani_status` indicating success or failure. 1522 */ 1523 ani_status (*Variable_SetValue_Ref)(ani_env *env, ani_variable variable, ani_ref value); 1524 1525 /** 1526 * @brief Retrieves a boolean value from a variable. 1527 * 1528 * This function fetches a boolean value from the specified variable. 1529 * 1530 * @param[in] env A pointer to the environment structure. 1531 * @param[in] variable The variable to query. 1532 * @param[out] result A pointer to store the retrieved boolean value. 1533 * @return Returns a status code of type `ani_status` indicating success or failure. 1534 */ 1535 ani_status (*Variable_GetValue_Boolean)(ani_env *env, ani_variable variable, ani_boolean *result); 1536 1537 /** 1538 * @brief Retrieves a character value from a variable. 1539 * 1540 * This function fetches a character value from the specified variable. 1541 * 1542 * @param[in] env A pointer to the environment structure. 1543 * @param[in] variable The variable to query. 1544 * @param[out] result A pointer to store the retrieved character value. 1545 * @return Returns a status code of type `ani_status` indicating success or failure. 1546 */ 1547 ani_status (*Variable_GetValue_Char)(ani_env *env, ani_variable variable, ani_char *result); 1548 1549 /** 1550 * @brief Retrieves a byte value from a variable. 1551 * 1552 * This function fetches a byte value from the specified variable. 1553 * 1554 * @param[in] env A pointer to the environment structure. 1555 * @param[in] variable The variable to query. 1556 * @param[out] result A pointer to store the retrieved byte value. 1557 * @return Returns a status code of type `ani_status` indicating success or failure. 1558 */ 1559 ani_status (*Variable_GetValue_Byte)(ani_env *env, ani_variable variable, ani_byte *result); 1560 1561 /** 1562 * @brief Retrieves a short value from a variable. 1563 * 1564 * This function fetches a short integer value from the specified variable. 1565 * 1566 * @param[in] env A pointer to the environment structure. 1567 * @param[in] variable The variable to query. 1568 * @param[out] result A pointer to store the retrieved short integer value. 1569 * @return Returns a status code of type `ani_status` indicating success or failure. 1570 */ 1571 ani_status (*Variable_GetValue_Short)(ani_env *env, ani_variable variable, ani_short *result); 1572 1573 /** 1574 * @brief Retrieves an integer value from a variable. 1575 * 1576 * This function fetches an integer value from the specified variable. 1577 * 1578 * @param[in] env A pointer to the environment structure. 1579 * @param[in] variable The variable to query. 1580 * @param[out] result A pointer to store the retrieved integer value. 1581 * @return Returns a status code of type `ani_status` indicating success or failure. 1582 */ 1583 ani_status (*Variable_GetValue_Int)(ani_env *env, ani_variable variable, ani_int *result); 1584 1585 /** 1586 * @brief Retrieves a long value from a variable. 1587 * 1588 * This function fetches a long integer value from the specified variable. 1589 * 1590 * @param[in] env A pointer to the environment structure. 1591 * @param[in] variable The variable to query. 1592 * @param[out] result A pointer to store the retrieved long integer value. 1593 * @return Returns a status code of type `ani_status` indicating success or failure. 1594 */ 1595 ani_status (*Variable_GetValue_Long)(ani_env *env, ani_variable variable, ani_long *result); 1596 1597 /** 1598 * @brief Retrieves a float value from a variable. 1599 * 1600 * This function fetches a float value from the specified variable. 1601 * 1602 * @param[in] env A pointer to the environment structure. 1603 * @param[in] variable The variable to query. 1604 * @param[out] result A pointer to store the retrieved float value. 1605 * @return Returns a status code of type `ani_status` indicating success or failure. 1606 */ 1607 ani_status (*Variable_GetValue_Float)(ani_env *env, ani_variable variable, ani_float *result); 1608 1609 /** 1610 * @brief Retrieves a double value from a variable. 1611 * 1612 * This function fetches a double value from the specified variable. 1613 * 1614 * @param[in] env A pointer to the environment structure. 1615 * @param[in] variable The variable to query. 1616 * @param[out] result A pointer to store the retrieved double value. 1617 * @return Returns a status code of type `ani_status` indicating success or failure. 1618 */ 1619 ani_status (*Variable_GetValue_Double)(ani_env *env, ani_variable variable, ani_double *result); 1620 1621 /** 1622 * @brief Retrieves a reference value from a variable. 1623 * 1624 * This function fetches a reference value from the specified variable. 1625 * 1626 * @param[in] env A pointer to the environment structure. 1627 * @param[in] variable The variable to query. 1628 * @param[out] result A pointer to store the retrieved reference value. 1629 * @return Returns a status code of type `ani_status` indicating success or failure. 1630 */ 1631 ani_status (*Variable_GetValue_Ref)(ani_env *env, ani_variable variable, ani_ref *result); 1632 1633 /** 1634 * @brief Calls a function and retrieves a boolean result. 1635 * 1636 * This function calls the specified function with variadic arguments and retrieves a boolean result. 1637 * 1638 * @param[in] env A pointer to the environment structure. 1639 * @param[in] fn The function to call. 1640 * @param[out] result A pointer to store the boolean result. 1641 * @param[in] ... Variadic arguments to pass to the function. 1642 * @return Returns a status code of type `ani_status` indicating success or failure. 1643 */ 1644 ani_status (*Function_Call_Boolean)(ani_env *env, ani_function fn, ani_boolean *result, ...); 1645 1646 /** 1647 * @brief Calls a function and retrieves a boolean result (array-based). 1648 * 1649 * This function calls the specified function with arguments provided in an array and retrieves a boolean result. 1650 * 1651 * @param[in] env A pointer to the environment structure. 1652 * @param[in] fn The function to call. 1653 * @param[out] result A pointer to store the boolean result. 1654 * @param[in] args A pointer to an array of arguments to pass to the function. 1655 * @return Returns a status code of type `ani_status` indicating success or failure. 1656 */ 1657 ani_status (*Function_Call_Boolean_A)(ani_env *env, ani_function fn, ani_boolean *result, const ani_value *args); 1658 1659 /** 1660 * @brief Calls a function and retrieves a boolean result (variadic arguments). 1661 * 1662 * This function calls the specified function with arguments provided in a `va_list` and retrieves a boolean result. 1663 * 1664 * @param[in] env A pointer to the environment structure. 1665 * @param[in] fn The function to call. 1666 * @param[out] result A pointer to store the boolean result. 1667 * @param[in] args A `va_list` containing the arguments to pass to the function. 1668 * @return Returns a status code of type `ani_status` indicating success or failure. 1669 */ 1670 ani_status (*Function_Call_Boolean_V)(ani_env *env, ani_function fn, ani_boolean *result, va_list args); 1671 1672 /** 1673 * @brief Calls a function and retrieves a character result. 1674 * 1675 * This function calls the specified function with variadic arguments and retrieves a character result. 1676 * 1677 * @param[in] env A pointer to the environment structure. 1678 * @param[in] fn The function to call. 1679 * @param[out] result A pointer to store the character result. 1680 * @param[in] ... Variadic arguments to pass to the function. 1681 * @return Returns a status code of type `ani_status` indicating success or failure. 1682 */ 1683 ani_status (*Function_Call_Char)(ani_env *env, ani_function fn, ani_char *result, ...); 1684 1685 /** 1686 * @brief Calls a function and retrieves a character result (array-based). 1687 * 1688 * This function calls the specified function with arguments provided in an array and retrieves a character result. 1689 * 1690 * @param[in] env A pointer to the environment structure. 1691 * @param[in] fn The function to call. 1692 * @param[out] result A pointer to store the character result. 1693 * @param[in] args A pointer to an array of arguments to pass to the function. 1694 * @return Returns a status code of type `ani_status` indicating success or failure. 1695 */ 1696 ani_status (*Function_Call_Char_A)(ani_env *env, ani_function fn, ani_char *result, const ani_value *args); 1697 1698 /** 1699 * @brief Calls a function and retrieves a character result (variadic arguments). 1700 * 1701 * This function calls the specified function with arguments provided in a `va_list` and retrieves a character 1702 * result. 1703 * 1704 * @param[in] env A pointer to the environment structure. 1705 * @param[in] fn The function to call. 1706 * @param[out] result A pointer to store the character result. 1707 * @param[in] args A `va_list` containing the arguments to pass to the function. 1708 * @return Returns a status code of type `ani_status` indicating success or failure. 1709 */ 1710 ani_status (*Function_Call_Char_V)(ani_env *env, ani_function fn, ani_char *result, va_list args); 1711 1712 /** 1713 * @brief Calls a function and retrieves a byte result. 1714 * 1715 * This function calls the specified function with variadic arguments and retrieves a byte result. 1716 * 1717 * @param[in] env A pointer to the environment structure. 1718 * @param[in] fn The function to call. 1719 * @param[out] result A pointer to store the byte result. 1720 * @param[in] ... Variadic arguments to pass to the function. 1721 * @return Returns a status code of type `ani_status` indicating success or failure. 1722 */ 1723 ani_status (*Function_Call_Byte)(ani_env *env, ani_function fn, ani_byte *result, ...); 1724 1725 /** 1726 * @brief Calls a function and retrieves a byte result (array-based). 1727 * 1728 * This function calls the specified function with arguments provided in an array and retrieves a byte result. 1729 * 1730 * @param[in] env A pointer to the environment structure. 1731 * @param[in] fn The function to call. 1732 * @param[out] result A pointer to store the byte result. 1733 * @param[in] args A pointer to an array of arguments to pass to the function. 1734 * @return Returns a status code of type `ani_status` indicating success or failure. 1735 */ 1736 ani_status (*Function_Call_Byte_A)(ani_env *env, ani_function fn, ani_byte *result, const ani_value *args); 1737 1738 /** 1739 * @brief Calls a function and retrieves a byte result (variadic arguments). 1740 * 1741 * This function calls the specified function with arguments provided in a `va_list` and retrieves a byte result. 1742 * 1743 * @param[in] env A pointer to the environment structure. 1744 * @param[in] fn The function to call. 1745 * @param[out] result A pointer to store the byte result. 1746 * @param[in] args A `va_list` containing the arguments to pass to the function. 1747 * @return Returns a status code of type `ani_status` indicating success or failure. 1748 */ 1749 ani_status (*Function_Call_Byte_V)(ani_env *env, ani_function fn, ani_byte *result, va_list args); 1750 1751 /** 1752 * @brief Calls a function and retrieves a short result. 1753 * 1754 * This function calls the specified function with variadic arguments and retrieves a short result. 1755 * 1756 * @param[in] env A pointer to the environment structure. 1757 * @param[in] fn The function to call. 1758 * @param[out] result A pointer to store the short result. 1759 * @param[in] ... Variadic arguments to pass to the function. 1760 * @return Returns a status code of type `ani_status` indicating success or failure. 1761 */ 1762 ani_status (*Function_Call_Short)(ani_env *env, ani_function fn, ani_short *result, ...); 1763 1764 /** 1765 * @brief Calls a function and retrieves a short result (array-based). 1766 * 1767 * This function calls the specified function with arguments provided in an array and retrieves a short result. 1768 * 1769 * @param[in] env A pointer to the environment structure. 1770 * @param[in] fn The function to call. 1771 * @param[out] result A pointer to store the short result. 1772 * @param[in] args A pointer to an array of arguments to pass to the function. 1773 * @return Returns a status code of type `ani_status` indicating success or failure. 1774 */ 1775 ani_status (*Function_Call_Short_A)(ani_env *env, ani_function fn, ani_short *result, const ani_value *args); 1776 1777 /** 1778 * @brief Calls a function and retrieves a short result (variadic arguments). 1779 * 1780 * This function calls the specified function with arguments provided in a `va_list` and retrieves a short result. 1781 * 1782 * @param[in] env A pointer to the environment structure. 1783 * @param[in] fn The function to call. 1784 * @param[out] result A pointer to store the short result. 1785 * @param[in] args A `va_list` containing the arguments to pass to the function. 1786 * @return Returns a status code of type `ani_status` indicating success or failure. 1787 */ 1788 ani_status (*Function_Call_Short_V)(ani_env *env, ani_function fn, ani_short *result, va_list args); 1789 1790 /** 1791 * @brief Calls a function and retrieves an integer result. 1792 * 1793 * This function calls the specified function with variadic arguments and retrieves an integer result. 1794 * 1795 * @param[in] env A pointer to the environment structure. 1796 * @param[in] fn The function to call. 1797 * @param[out] result A pointer to store the integer result. 1798 * @param[in] ... Variadic arguments to pass to the function. 1799 * @return Returns a status code of type `ani_status` indicating success or failure. 1800 */ 1801 ani_status (*Function_Call_Int)(ani_env *env, ani_function fn, ani_int *result, ...); 1802 1803 /** 1804 * @brief Calls a function and retrieves an integer result (array-based). 1805 * 1806 * This function calls the specified function with arguments provided in an array and retrieves an integer result. 1807 * 1808 * @param[in] env A pointer to the environment structure. 1809 * @param[in] fn The function to call. 1810 * @param[out] result A pointer to store the integer result. 1811 * @param[in] args A pointer to an array of arguments to pass to the function. 1812 * @return Returns a status code of type `ani_status` indicating success or failure. 1813 */ 1814 ani_status (*Function_Call_Int_A)(ani_env *env, ani_function fn, ani_int *result, const ani_value *args); 1815 1816 /** 1817 * @brief Calls a function and retrieves an integer result (variadic arguments). 1818 * 1819 * This function calls the specified function with arguments provided in a `va_list` and retrieves an integer 1820 * result. 1821 * 1822 * @param[in] env A pointer to the environment structure. 1823 * @param[in] fn The function to call. 1824 * @param[out] result A pointer to store the integer result. 1825 * @param[in] args A `va_list` containing the arguments to pass to the function. 1826 * @return Returns a status code of type `ani_status` indicating success or failure. 1827 */ 1828 ani_status (*Function_Call_Int_V)(ani_env *env, ani_function fn, ani_int *result, va_list args); 1829 1830 /** 1831 * @brief Calls a function and retrieves a long result. 1832 * 1833 * This function calls the specified function with variadic arguments and retrieves a long result. 1834 * 1835 * @param[in] env A pointer to the environment structure. 1836 * @param[in] fn The function to call. 1837 * @param[out] result A pointer to store the long result. 1838 * @param[in] ... Variadic arguments to pass to the function. 1839 * @return Returns a status code of type `ani_status` indicating success or failure. 1840 */ 1841 ani_status (*Function_Call_Long)(ani_env *env, ani_function fn, ani_long *result, ...); 1842 1843 /** 1844 * @brief Calls a function and retrieves a long result (array-based). 1845 * 1846 * This function calls the specified function with arguments provided in an array and retrieves a long result. 1847 * 1848 * @param[in] env A pointer to the environment structure. 1849 * @param[in] fn The function to call. 1850 * @param[out] result A pointer to store the long result. 1851 * @param[in] args A pointer to an array of arguments to pass to the function. 1852 * @return Returns a status code of type `ani_status` indicating success or failure. 1853 */ 1854 ani_status (*Function_Call_Long_A)(ani_env *env, ani_function fn, ani_long *result, const ani_value *args); 1855 1856 /** 1857 * @brief Calls a function and retrieves a long result (variadic arguments). 1858 * 1859 * This function calls the specified function with arguments provided in a `va_list` and retrieves a long result. 1860 * 1861 * @param[in] env A pointer to the environment structure. 1862 * @param[in] fn The function to call. 1863 * @param[out] result A pointer to store the long result. 1864 * @param[in] args A `va_list` containing the arguments to pass to the function. 1865 * @return Returns a status code of type `ani_status` indicating success or failure. 1866 */ 1867 ani_status (*Function_Call_Long_V)(ani_env *env, ani_function fn, ani_long *result, va_list args); 1868 1869 /** 1870 * @brief Calls a function and retrieves a float result. 1871 * 1872 * This function calls the specified function with variadic arguments and retrieves a float result. 1873 * 1874 * @param[in] env A pointer to the environment structure. 1875 * @param[in] fn The function to call. 1876 * @param[out] result A pointer to store the float result. 1877 * @param[in] ... Variadic arguments to pass to the function. 1878 * @return Returns a status code of type `ani_status` indicating success or failure. 1879 */ 1880 ani_status (*Function_Call_Float)(ani_env *env, ani_function fn, ani_float *result, ...); 1881 1882 /** 1883 * @brief Calls a function and retrieves a float result (array-based). 1884 * 1885 * This function calls the specified function with arguments provided in an array and retrieves a float result. 1886 * 1887 * @param[in] env A pointer to the environment structure. 1888 * @param[in] fn The function to call. 1889 * @param[out] result A pointer to store the float result. 1890 * @param[in] args A pointer to an array of arguments to pass to the function. 1891 * @return Returns a status code of type `ani_status` indicating success or failure. 1892 */ 1893 ani_status (*Function_Call_Float_A)(ani_env *env, ani_function fn, ani_float *result, const ani_value *args); 1894 1895 /** 1896 * @brief Calls a function and retrieves a float result (variadic arguments). 1897 * 1898 * This function calls the specified function with arguments provided in a `va_list` and retrieves a float result. 1899 * 1900 * @param[in] env A pointer to the environment structure. 1901 * @param[in] fn The function to call. 1902 * @param[out] result A pointer to store the float result. 1903 * @param[in] args A `va_list` containing the arguments to pass to the function. 1904 * @return Returns a status code of type `ani_status` indicating success or failure. 1905 */ 1906 ani_status (*Function_Call_Float_V)(ani_env *env, ani_function fn, ani_float *result, va_list args); 1907 1908 /** 1909 * @brief Calls a function and retrieves a double result. 1910 * 1911 * This function calls the specified function with variadic arguments and retrieves a double result. 1912 * 1913 * @param[in] env A pointer to the environment structure. 1914 * @param[in] fn The function to call. 1915 * @param[out] result A pointer to store the double result. 1916 * @param[in] ... Variadic arguments to pass to the function. 1917 * @return Returns a status code of type `ani_status` indicating success or failure. 1918 */ 1919 ani_status (*Function_Call_Double)(ani_env *env, ani_function fn, ani_double *result, ...); 1920 1921 /** 1922 * @brief Calls a function and retrieves a double result (array-based). 1923 * 1924 * This function calls the specified function with arguments provided in an array and retrieves a double result. 1925 * 1926 * @param[in] env A pointer to the environment structure. 1927 * @param[in] fn The function to call. 1928 * @param[out] result A pointer to store the double result. 1929 * @param[in] args A pointer to an array of arguments to pass to the function. 1930 * @return Returns a status code of type `ani_status` indicating success or failure. 1931 */ 1932 ani_status (*Function_Call_Double_A)(ani_env *env, ani_function fn, ani_double *result, const ani_value *args); 1933 1934 /** 1935 * @brief Calls a function and retrieves a double result (variadic arguments). 1936 * 1937 * This function calls the specified function with arguments provided in a `va_list` and retrieves a double result. 1938 * 1939 * @param[in] env A pointer to the environment structure. 1940 * @param[in] fn The function to call. 1941 * @param[out] result A pointer to store the double result. 1942 * @param[in] args A `va_list` containing the arguments to pass to the function. 1943 * @return Returns a status code of type `ani_status` indicating success or failure. 1944 */ 1945 ani_status (*Function_Call_Double_V)(ani_env *env, ani_function fn, ani_double *result, va_list args); 1946 1947 /** 1948 * @brief Calls a function and retrieves a reference result. 1949 * 1950 * This function calls the specified function with variadic arguments and retrieves a reference result. 1951 * 1952 * @param[in] env A pointer to the environment structure. 1953 * @param[in] fn The function to call. 1954 * @param[out] result A pointer to store the reference result. 1955 * @param[in] ... Variadic arguments to pass to the function. 1956 * @return Returns a status code of type `ani_status` indicating success or failure. 1957 */ 1958 ani_status (*Function_Call_Ref)(ani_env *env, ani_function fn, ani_ref *result, ...); 1959 1960 /** 1961 * @brief Calls a function and retrieves a reference result (array-based). 1962 * 1963 * This function calls the specified function with arguments provided in an array and retrieves a reference result. 1964 * 1965 * @param[in] env A pointer to the environment structure. 1966 * @param[in] fn The function to call. 1967 * @param[out] result A pointer to store the reference result. 1968 * @param[in] args A pointer to an array of arguments to pass to the function. 1969 * @return Returns a status code of type `ani_status` indicating success or failure. 1970 */ 1971 ani_status (*Function_Call_Ref_A)(ani_env *env, ani_function fn, ani_ref *result, const ani_value *args); 1972 1973 /** 1974 * @brief Calls a function and retrieves a reference result (variadic arguments). 1975 * 1976 * This function calls the specified function with arguments provided in a `va_list` and retrieves a reference 1977 * result. 1978 * 1979 * @param[in] env A pointer to the environment structure. 1980 * @param[in] fn The function to call. 1981 * @param[out] result A pointer to store the reference result. 1982 * @param[in] args A `va_list` containing the arguments to pass to the function. 1983 * @return Returns a status code of type `ani_status` indicating success or failure. 1984 */ 1985 ani_status (*Function_Call_Ref_V)(ani_env *env, ani_function fn, ani_ref *result, va_list args); 1986 1987 /** 1988 * @brief Calls a function without returning a result. 1989 * 1990 * This function calls the specified function with variadic arguments and does not return a result. 1991 * 1992 * @param[in] env A pointer to the environment structure. 1993 * @param[in] fn The function to call. 1994 * @param[in] ... Variadic arguments to pass to the function. 1995 * @return Returns a status code of type `ani_status` indicating success or failure. 1996 */ 1997 ani_status (*Function_Call_Void)(ani_env *env, ani_function fn, ...); 1998 1999 /** 2000 * @brief Calls a function without returning a result (array-based). 2001 * 2002 * This function calls the specified function with arguments provided in an array and does not return a result. 2003 * 2004 * @param[in] env A pointer to the environment structure. 2005 * @param[in] fn The function to call. 2006 * @param[in] args A pointer to an array of arguments to pass to the function. 2007 * @return Returns a status code of type `ani_status` indicating success or failure. 2008 */ 2009 ani_status (*Function_Call_Void_A)(ani_env *env, ani_function fn, const ani_value *args); 2010 2011 /** 2012 * @brief Calls a function without returning a result (variadic arguments). 2013 * 2014 * This function calls the specified function with arguments provided in a `va_list` and does not return a result. 2015 * 2016 * @param[in] env A pointer to the environment structure. 2017 * @param[in] fn The function to call. 2018 * @param[in] args A `va_list` containing the arguments to pass to the function. 2019 * @return Returns a status code of type `ani_status` indicating success or failure. 2020 */ 2021 ani_status (*Function_Call_Void_V)(ani_env *env, ani_function fn, va_list args); 2022 2023 /** 2024 * @brief Finds a field from by its name. 2025 * 2026 * This function locates a field based on its name and stores it in the result parameter. 2027 * 2028 * @param[in] env A pointer to the environment structure. 2029 * @param[in] cls The class to query. 2030 * @param[in] name The name of the field to find. 2031 * @param[out] result A pointer to the field to be populated. 2032 * @return Returns a status code of type `ani_status` indicating success or failure. 2033 */ 2034 ani_status (*Class_FindField)(ani_env *env, ani_class cls, const char *name, ani_field *result); 2035 2036 /** 2037 * @brief Finds a static field by its name. 2038 * 2039 * This function locates a static field based on its name and stores it in the result parameter. 2040 * 2041 * @param[in] env A pointer to the environment structure. 2042 * @param[in] cls The class to query. 2043 * @param[in] name The name of the static field to find. 2044 * @param[out] result A pointer to the static field to be populated. 2045 * @return Returns a status code of type `ani_status` indicating success or failure. 2046 */ 2047 ani_status (*Class_FindStaticField)(ani_env *env, ani_class cls, const char *name, ani_static_field *result); 2048 2049 /** 2050 * @brief Finds a method from by its name and signature. 2051 * 2052 * This function locates a method based on its name and signature and stores it in the result parameter. 2053 * 2054 * @param[in] env A pointer to the environment structure. 2055 * @param[in] cls The class to query. 2056 * @param[in] name The name of the method to find. 2057 * @param[in] signature The signature of the method to find. 2058 * @param[out] result A pointer to the method to be populated. 2059 * @return Returns a status code of type `ani_status` indicating success or failure. 2060 */ 2061 ani_status (*Class_FindMethod)(ani_env *env, ani_class cls, const char *name, const char *signature, 2062 ani_method *result); 2063 2064 /** 2065 * @brief Finds a static method from by its name and signature. 2066 * 2067 * This function locates a static method based on its name and signature and stores it in the result parameter. 2068 * 2069 * @param[in] env A pointer to the environment structure. 2070 * @param[in] cls The class to query. 2071 * @param[in] name The name of the static method to find. 2072 * @param[in] signature The signature of the static method to find. 2073 * @param[out] result A pointer to the static method to be populated. 2074 * @return Returns a status code of type `ani_status` indicating success or failure. 2075 */ 2076 ani_status (*Class_FindStaticMethod)(ani_env *env, ani_class cls, const char *name, const char *signature, 2077 ani_static_method *result); 2078 2079 /** 2080 * @brief Finds a setter method from by its name. 2081 * 2082 * This function locates a setter method based on its name and stores it in the result parameter. 2083 * 2084 * @param[in] env A pointer to the environment structure. 2085 * @param[in] cls The class to query. 2086 * @param[in] name The name of the property whose setter is to be found. 2087 * @param[out] result A pointer to the method to be populated. 2088 * @return Returns a status code of type `ani_status` indicating success or failure. 2089 */ 2090 ani_status (*Class_FindSetter)(ani_env *env, ani_class cls, const char *name, ani_method *result); 2091 2092 /** 2093 * @brief Finds a getter method from by its name. 2094 * 2095 * This function locates a getter method based on its name and stores it in the result parameter. 2096 * 2097 * @param[in] env A pointer to the environment structure. 2098 * @param[in] cls The class to query. 2099 * @param[in] name The name of the property whose getter is to be found. 2100 * @param[out] result A pointer to the method to be populated. 2101 * @return Returns a status code of type `ani_status` indicating success or failure. 2102 */ 2103 ani_status (*Class_FindGetter)(ani_env *env, ani_class cls, const char *name, ani_method *result); 2104 2105 /** 2106 * @brief Finds an indexable getter method from by its signature. 2107 * 2108 * This function locates an indexable getter method based on its signature and stores it in the result parameter. 2109 * 2110 * @param[in] env A pointer to the environment structure. 2111 * @param[in] cls The class to query. 2112 * @param[in] signature The signature of the indexable getter to find. 2113 * @param[out] result A pointer to the method to be populated. 2114 * @return Returns a status code of type `ani_status` indicating success or failure. 2115 */ 2116 ani_status (*Class_FindIndexableGetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result); 2117 2118 /** 2119 * @brief Finds an indexable setter method from by its signature. 2120 * 2121 * This function locates an indexable setter method based on its signature and stores it in the result parameter. 2122 * 2123 * @param[in] env A pointer to the environment structure. 2124 * @param[in] cls The class to query. 2125 * @param[in] signature The signature of the indexable setter to find. 2126 * @param[out] result A pointer to the method to be populated. 2127 * @return Returns a status code of type `ani_status` indicating success or failure. 2128 */ 2129 ani_status (*Class_FindIndexableSetter)(ani_env *env, ani_class cls, const char *signature, ani_method *result); 2130 2131 /** 2132 * @brief Finds an iterator method. 2133 * 2134 * This function locates an iterator method 2135 * 2136 * @param[in] env A pointer to the environment structure. 2137 * @param[in] cls The class to query. 2138 * @param[out] result A pointer to the method to be populated. 2139 * @return Returns a status code of type `ani_status` indicating success or failure. 2140 */ 2141 ani_status (*Class_FindIterator)(ani_env *env, ani_class cls, ani_method *result); 2142 2143 /** 2144 * @brief Retrieves a boolean value from a static field of a class. 2145 * 2146 * This function retrieves the boolean value of the specified static field from the given class. 2147 * 2148 * @param[in] env A pointer to the environment structure. 2149 * @param[in] cls The class containing the static field. 2150 * @param[in] field The static field to retrieve. 2151 * @param[out] result A pointer to store the retrieved boolean value. 2152 * @return Returns a status code of type `ani_status` indicating success or failure. 2153 */ 2154 ani_status (*Class_GetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field, 2155 ani_boolean *result); 2156 2157 /** 2158 * @brief Retrieves a character value from a static field of a class. 2159 * 2160 * This function retrieves the character value of the specified static field from the given class. 2161 * 2162 * @param[in] env A pointer to the environment structure. 2163 * @param[in] cls The class containing the static field. 2164 * @param[in] field The static field to retrieve. 2165 * @param[out] result A pointer to store the retrieved character value. 2166 * @return Returns a status code of type `ani_status` indicating success or failure. 2167 */ 2168 ani_status (*Class_GetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char *result); 2169 2170 /** 2171 * @brief Retrieves a byte value from a static field of a class. 2172 * 2173 * This function retrieves the byte value of the specified static field from the given class. 2174 * 2175 * @param[in] env A pointer to the environment structure. 2176 * @param[in] cls The class containing the static field. 2177 * @param[in] field The static field to retrieve. 2178 * @param[out] result A pointer to store the retrieved byte value. 2179 * @return Returns a status code of type `ani_status` indicating success or failure. 2180 */ 2181 ani_status (*Class_GetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte *result); 2182 2183 /** 2184 * @brief Retrieves a short value from a static field of a class. 2185 * 2186 * This function retrieves the short value of the specified static field from the given class. 2187 * 2188 * @param[in] env A pointer to the environment structure. 2189 * @param[in] cls The class containing the static field. 2190 * @param[in] field The static field to retrieve. 2191 * @param[out] result A pointer to store the retrieved short value. 2192 * @return Returns a status code of type `ani_status` indicating success or failure. 2193 */ 2194 ani_status (*Class_GetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short *result); 2195 2196 /** 2197 * @brief Retrieves an integer value from a static field of a class. 2198 * 2199 * This function retrieves the integer value of the specified static field from the given class. 2200 * 2201 * @param[in] env A pointer to the environment structure. 2202 * @param[in] cls The class containing the static field. 2203 * @param[in] field The static field to retrieve. 2204 * @param[out] result A pointer to store the retrieved integer value. 2205 * @return Returns a status code of type `ani_status` indicating success or failure. 2206 */ 2207 ani_status (*Class_GetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int *result); 2208 2209 /** 2210 * @brief Retrieves a long value from a static field of a class. 2211 * 2212 * This function retrieves the long value of the specified static field from the given class. 2213 * 2214 * @param[in] env A pointer to the environment structure. 2215 * @param[in] cls The class containing the static field. 2216 * @param[in] field The static field to retrieve. 2217 * @param[out] result A pointer to store the retrieved long value. 2218 * @return Returns a status code of type `ani_status` indicating success or failure. 2219 */ 2220 ani_status (*Class_GetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long *result); 2221 2222 /** 2223 * @brief Retrieves a float value from a static field of a class. 2224 * 2225 * This function retrieves the float value of the specified static field from the given class. 2226 * 2227 * @param[in] env A pointer to the environment structure. 2228 * @param[in] cls The class containing the static field. 2229 * @param[in] field The static field to retrieve. 2230 * @param[out] result A pointer to store the retrieved float value. 2231 * @return Returns a status code of type `ani_status` indicating success or failure. 2232 */ 2233 ani_status (*Class_GetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float *result); 2234 2235 /** 2236 * @brief Retrieves a double value from a static field of a class. 2237 * 2238 * This function retrieves the double value of the specified static field from the given class. 2239 * 2240 * @param[in] env A pointer to the environment structure. 2241 * @param[in] cls The class containing the static field. 2242 * @param[in] field The static field to retrieve. 2243 * @param[out] result A pointer to store the retrieved double value. 2244 * @return Returns a status code of type `ani_status` indicating success or failure. 2245 */ 2246 ani_status (*Class_GetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double *result); 2247 2248 /** 2249 * @brief Retrieves a reference value from a static field of a class. 2250 * 2251 * This function retrieves the reference value of the specified static field from the given class. 2252 * 2253 * @param[in] env A pointer to the environment structure. 2254 * @param[in] cls The class containing the static field. 2255 * @param[in] field The static field to retrieve. 2256 * @param[out] result A pointer to store the retrieved reference value. 2257 * @return Returns a status code of type `ani_status` indicating success or failure. 2258 */ 2259 ani_status (*Class_GetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref *result); 2260 2261 /** 2262 * @brief Sets a boolean value to a static field of a class. 2263 * 2264 * This function assigns a boolean value to the specified static field of the given class. 2265 * 2266 * @param[in] env A pointer to the environment structure. 2267 * @param[in] cls The class containing the static field. 2268 * @param[in] field The static field to modify. 2269 * @param[in] value The boolean value to assign. 2270 * @return Returns a status code of type `ani_status` indicating success or failure. 2271 */ 2272 ani_status (*Class_SetStaticField_Boolean)(ani_env *env, ani_class cls, ani_static_field field, ani_boolean value); 2273 2274 /** 2275 * @brief Sets a character value to a static field of a class. 2276 * 2277 * This function assigns a character value to the specified static field of the given class. 2278 * 2279 * @param[in] env A pointer to the environment structure. 2280 * @param[in] cls The class containing the static field. 2281 * @param[in] field The static field to modify. 2282 * @param[in] value The character value to assign. 2283 * @return Returns a status code of type `ani_status` indicating success or failure. 2284 */ 2285 ani_status (*Class_SetStaticField_Char)(ani_env *env, ani_class cls, ani_static_field field, ani_char value); 2286 2287 /** 2288 * @brief Sets a byte value to a static field of a class. 2289 * 2290 * This function assigns a byte value to the specified static field of the given class. 2291 * 2292 * @param[in] env A pointer to the environment structure. 2293 * @param[in] cls The class containing the static field. 2294 * @param[in] field The static field to modify. 2295 * @param[in] value The byte value to assign. 2296 * @return Returns a status code of type `ani_status` indicating success or failure. 2297 */ 2298 ani_status (*Class_SetStaticField_Byte)(ani_env *env, ani_class cls, ani_static_field field, ani_byte value); 2299 2300 /** 2301 * @brief Sets a short value to a static field of a class. 2302 * 2303 * This function assigns a short value to the specified static field of the given class. 2304 * 2305 * @param[in] env A pointer to the environment structure. 2306 * @param[in] cls The class containing the static field. 2307 * @param[in] field The static field to modify. 2308 * @param[in] value The short value to assign. 2309 * @return Returns a status code of type `ani_status` indicating success or failure. 2310 */ 2311 ani_status (*Class_SetStaticField_Short)(ani_env *env, ani_class cls, ani_static_field field, ani_short value); 2312 2313 /** 2314 * @brief Sets an integer value to a static field of a class. 2315 * 2316 * This function assigns an integer value to the specified static field of the given class. 2317 * 2318 * @param[in] env A pointer to the environment structure. 2319 * @param[in] cls The class containing the static field. 2320 * @param[in] field The static field to modify. 2321 * @param[in] value The integer value to assign. 2322 * @return Returns a status code of type `ani_status` indicating success or failure. 2323 */ 2324 ani_status (*Class_SetStaticField_Int)(ani_env *env, ani_class cls, ani_static_field field, ani_int value); 2325 2326 /** 2327 * @brief Sets a long value to a static field of a class. 2328 * 2329 * This function assigns a long value to the specified static field of the given class. 2330 * 2331 * @param[in] env A pointer to the environment structure. 2332 * @param[in] cls The class containing the static field. 2333 * @param[in] field The static field to modify. 2334 * @param[in] value The long value to assign. 2335 * @return Returns a status code of type `ani_status` indicating success or failure. 2336 */ 2337 ani_status (*Class_SetStaticField_Long)(ani_env *env, ani_class cls, ani_static_field field, ani_long value); 2338 2339 /** 2340 * @brief Sets a float value to a static field of a class. 2341 * 2342 * This function assigns a float value to the specified static field of the given class. 2343 * 2344 * @param[in] env A pointer to the environment structure. 2345 * @param[in] cls The class containing the static field. 2346 * @param[in] field The static field to modify. 2347 * @param[in] value The float value to assign. 2348 * @return Returns a status code of type `ani_status` indicating success or failure. 2349 */ 2350 ani_status (*Class_SetStaticField_Float)(ani_env *env, ani_class cls, ani_static_field field, ani_float value); 2351 2352 /** 2353 * @brief Sets a double value to a static field of a class. 2354 * 2355 * This function assigns a double value to the specified static field of the given class. 2356 * 2357 * @param[in] env A pointer to the environment structure. 2358 * @param[in] cls The class containing the static field. 2359 * @param[in] field The static field to modify. 2360 * @param[in] value The double value to assign. 2361 * @return Returns a status code of type `ani_status` indicating success or failure. 2362 */ 2363 ani_status (*Class_SetStaticField_Double)(ani_env *env, ani_class cls, ani_static_field field, ani_double value); 2364 2365 /** 2366 * @brief Sets a reference value to a static field of a class. 2367 * 2368 * This function assigns a reference value to the specified static field of the given class. 2369 * 2370 * @param[in] env A pointer to the environment structure. 2371 * @param[in] cls The class containing the static field. 2372 * @param[in] field The static field to modify. 2373 * @param[in] value The reference value to assign. 2374 * @return Returns a status code of type `ani_status` indicating success or failure. 2375 */ 2376 ani_status (*Class_SetStaticField_Ref)(ani_env *env, ani_class cls, ani_static_field field, ani_ref value); 2377 2378 /** 2379 * @brief Retrieves a boolean value from a static field of a class by its name. 2380 * 2381 * This function retrieves the boolean value of the specified static field from the given class by its name. 2382 * 2383 * @param[in] env A pointer to the environment structure. 2384 * @param[in] cls The class containing the static field. 2385 * @param[in] name The name of the static field to retrieve. 2386 * @param[out] result A pointer to store the retrieved boolean value. 2387 * @return Returns a status code of type `ani_status` indicating success or failure. 2388 */ 2389 ani_status (*Class_GetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name, 2390 ani_boolean *result); 2391 2392 /** 2393 * @brief Retrieves a character value from a static field of a class by its name. 2394 * 2395 * This function retrieves the character value of the specified static field from the given class by its name. 2396 * 2397 * @param[in] env A pointer to the environment structure. 2398 * @param[in] cls The class containing the static field. 2399 * @param[in] name The name of the static field to retrieve. 2400 * @param[out] result A pointer to store the retrieved character value. 2401 * @return Returns a status code of type `ani_status` indicating success or failure. 2402 */ 2403 ani_status (*Class_GetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char *result); 2404 2405 /** 2406 * @brief Retrieves a byte value from a static field of a class by its name. 2407 * 2408 * This function retrieves the byte value of the specified static field from the given class by its name. 2409 * 2410 * @param[in] env A pointer to the environment structure. 2411 * @param[in] cls The class containing the static field. 2412 * @param[in] name The name of the static field to retrieve. 2413 * @param[out] result A pointer to store the retrieved byte value. 2414 * @return Returns a status code of type `ani_status` indicating success or failure. 2415 */ 2416 ani_status (*Class_GetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte *result); 2417 2418 /** 2419 * @brief Retrieves a short value from a static field of a class by its name. 2420 * 2421 * This function retrieves the short value of the specified static field from the given class by its name. 2422 * 2423 * @param[in] env A pointer to the environment structure. 2424 * @param[in] cls The class containing the static field. 2425 * @param[in] name The name of the static field to retrieve. 2426 * @param[out] result A pointer to store the retrieved short value. 2427 * @return Returns a status code of type `ani_status` indicating success or failure. 2428 */ 2429 ani_status (*Class_GetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short *result); 2430 2431 /** 2432 * @brief Retrieves an integer value from a static field of a class by its name. 2433 * 2434 * This function retrieves the integer value of the specified static field from the given class by its name. 2435 * 2436 * @param[in] env A pointer to the environment structure. 2437 * @param[in] cls The class containing the static field. 2438 * @param[in] name The name of the static field to retrieve. 2439 * @param[out] result A pointer to store the retrieved integer value. 2440 * @return Returns a status code of type `ani_status` indicating success or failure. 2441 */ 2442 ani_status (*Class_GetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int *result); 2443 2444 /** 2445 * @brief Retrieves a long value from a static field of a class by its name. 2446 * 2447 * This function retrieves the long value of the specified static field from the given class by its name. 2448 * 2449 * @param[in] env A pointer to the environment structure. 2450 * @param[in] cls The class containing the static field. 2451 * @param[in] name The name of the static field to retrieve. 2452 * @param[out] result A pointer to store the retrieved long value. 2453 * @return Returns a status code of type `ani_status` indicating success or failure. 2454 */ 2455 ani_status (*Class_GetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long *result); 2456 2457 /** 2458 * @brief Retrieves a float value from a static field of a class by its name. 2459 * 2460 * This function retrieves the float value of the specified static field from the given class by its name. 2461 * 2462 * @param[in] env A pointer to the environment structure. 2463 * @param[in] cls The class containing the static field. 2464 * @param[in] name The name of the static field to retrieve. 2465 * @param[out] result A pointer to store the retrieved float value. 2466 * @return Returns a status code of type `ani_status` indicating success or failure. 2467 */ 2468 ani_status (*Class_GetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float *result); 2469 2470 /** 2471 * @brief Retrieves a double value from a static field of a class by its name. 2472 * 2473 * This function retrieves the double value of the specified static field from the given class by its name. 2474 * 2475 * @param[in] env A pointer to the environment structure. 2476 * @param[in] cls The class containing the static field. 2477 * @param[in] name The name of the static field to retrieve. 2478 * @param[out] result A pointer to store the retrieved double value. 2479 * @return Returns a status code of type `ani_status` indicating success or failure. 2480 */ 2481 ani_status (*Class_GetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double *result); 2482 2483 /** 2484 * @brief Retrieves a reference value from a static field of a class by its name. 2485 * 2486 * This function retrieves the reference value of the specified static field from the given class by its name. 2487 * 2488 * @param[in] env A pointer to the environment structure. 2489 * @param[in] cls The class containing the static field. 2490 * @param[in] name The name of the static field to retrieve. 2491 * @param[out] result A pointer to store the retrieved reference value. 2492 * @return Returns a status code of type `ani_status` indicating success or failure. 2493 */ 2494 ani_status (*Class_GetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref *result); 2495 2496 /** 2497 * @brief Sets a boolean value to a static field of a class by its name. 2498 * 2499 * This function assigns a boolean value to the specified static field of the given class by its name. 2500 * 2501 * @param[in] env A pointer to the environment structure. 2502 * @param[in] cls The class containing the static field. 2503 * @param[in] name The name of the static field to modify. 2504 * @param[in] value The boolean value to assign. 2505 * @return Returns a status code of type `ani_status` indicating success or failure. 2506 */ 2507 ani_status (*Class_SetStaticFieldByName_Boolean)(ani_env *env, ani_class cls, const char *name, ani_boolean value); 2508 2509 /** 2510 * @brief Sets a character value to a static field of a class by its name. 2511 * 2512 * This function assigns a character value to the specified static field of the given class by its name. 2513 * 2514 * @param[in] env A pointer to the environment structure. 2515 * @param[in] cls The class containing the static field. 2516 * @param[in] name The name of the static field to modify. 2517 * @param[in] value The character value to assign. 2518 * @return Returns a status code of type `ani_status` indicating success or failure. 2519 */ 2520 ani_status (*Class_SetStaticFieldByName_Char)(ani_env *env, ani_class cls, const char *name, ani_char value); 2521 2522 /** 2523 * @brief Sets a byte value to a static field of a class by its name. 2524 * 2525 * This function assigns a byte value to the specified static field of the given class by its name. 2526 * 2527 * @param[in] env A pointer to the environment structure. 2528 * @param[in] cls The class containing the static field. 2529 * @param[in] name The name of the static field to modify. 2530 * @param[in] value The byte value to assign. 2531 * @return Returns a status code of type `ani_status` indicating success or failure. 2532 */ 2533 ani_status (*Class_SetStaticFieldByName_Byte)(ani_env *env, ani_class cls, const char *name, ani_byte value); 2534 2535 /** 2536 * @brief Sets a short value to a static field of a class by its name. 2537 * 2538 * This function assigns a short value to the specified static field of the given class by its name. 2539 * 2540 * @param[in] env A pointer to the environment structure. 2541 * @param[in] cls The class containing the static field. 2542 * @param[in] name The name of the static field to modify. 2543 * @param[in] value The short value to assign. 2544 * @return Returns a status code of type `ani_status` indicating success or failure. 2545 */ 2546 ani_status (*Class_SetStaticFieldByName_Short)(ani_env *env, ani_class cls, const char *name, ani_short value); 2547 2548 /** 2549 * @brief Sets an integer value to a static field of a class by its name. 2550 * 2551 * This function assigns an integer value to the specified static field of the given class by its name. 2552 * 2553 * @param[in] env A pointer to the environment structure. 2554 * @param[in] cls The class containing the static field. 2555 * @param[in] name The name of the static field to modify. 2556 * @param[in] value The integer value to assign. 2557 * @return Returns a status code of type `ani_status` indicating success or failure. 2558 */ 2559 ani_status (*Class_SetStaticFieldByName_Int)(ani_env *env, ani_class cls, const char *name, ani_int value); 2560 2561 /** 2562 * @brief Sets a long value to a static field of a class by its name. 2563 * 2564 * This function assigns a long value to the specified static field of the given class by its name. 2565 * 2566 * @param[in] env A pointer to the environment structure. 2567 * @param[in] cls The class containing the static field. 2568 * @param[in] name The name of the static field to modify. 2569 * @param[in] value The long value to assign. 2570 * @return Returns a status code of type `ani_status` indicating success or failure. 2571 */ 2572 ani_status (*Class_SetStaticFieldByName_Long)(ani_env *env, ani_class cls, const char *name, ani_long value); 2573 2574 /** 2575 * @brief Sets a float value to a static field of a class by its name. 2576 * 2577 * This function assigns a float value to the specified static field of the given class by its name. 2578 * 2579 * @param[in] env A pointer to the environment structure. 2580 * @param[in] cls The class containing the static field. 2581 * @param[in] name The name of the static field to modify. 2582 * @param[in] value The float value to assign. 2583 * @return Returns a status code of type `ani_status` indicating success or failure. 2584 */ 2585 ani_status (*Class_SetStaticFieldByName_Float)(ani_env *env, ani_class cls, const char *name, ani_float value); 2586 2587 /** 2588 * @brief Sets a double value to a static field of a class by its name. 2589 * 2590 * This function assigns a double value to the specified static field of the given class by its name. 2591 * 2592 * @param[in] env A pointer to the environment structure. 2593 * @param[in] cls The class containing the static field. 2594 * @param[in] name The name of the static field to modify. 2595 * @param[in] value The double value to assign. 2596 * @return Returns a status code of type `ani_status` indicating success or failure. 2597 */ 2598 ani_status (*Class_SetStaticFieldByName_Double)(ani_env *env, ani_class cls, const char *name, ani_double value); 2599 2600 /** 2601 * @brief Sets a reference value to a static field of a class by its name. 2602 * 2603 * This function assigns a reference value to the specified static field of the given class by its name. 2604 * 2605 * @param[in] env A pointer to the environment structure. 2606 * @param[in] cls The class containing the static field. 2607 * @param[in] name The name of the static field to modify. 2608 * @param[in] value The reference value to assign. 2609 * @return Returns a status code of type `ani_status` indicating success or failure. 2610 */ 2611 ani_status (*Class_SetStaticFieldByName_Ref)(ani_env *env, ani_class cls, const char *name, ani_ref value); 2612 2613 /** 2614 * @brief Calls a static method with a boolean return type. 2615 * 2616 * This function calls the specified static method of a class and retrieves a boolean result using variadic 2617 * arguments. 2618 * 2619 * @param[in] env A pointer to the environment structure. 2620 * @param[in] cls The class containing the static method. 2621 * @param[in] method The static method to call. 2622 * @param[out] result A pointer to store the boolean result. 2623 * @param[in] ... Variadic arguments to pass to the method. 2624 * @return Returns a status code of type `ani_status` indicating success or failure. 2625 */ 2626 ani_status (*Class_CallStaticMethod_Boolean)(ani_env *env, ani_class cls, ani_static_method method, 2627 ani_boolean *result, ...); 2628 2629 /** 2630 * @brief Calls a static method with a boolean return type (array-based). 2631 * 2632 * This function calls the specified static method of a class and retrieves a boolean result using arguments from an 2633 * array. 2634 * 2635 * @param[in] env A pointer to the environment structure. 2636 * @param[in] cls The class containing the static method. 2637 * @param[in] method The static method to call. 2638 * @param[out] result A pointer to store the boolean result. 2639 * @param[in] args An array of arguments to pass to the method. 2640 * @return Returns a status code of type `ani_status` indicating success or failure. 2641 */ 2642 ani_status (*Class_CallStaticMethod_Boolean_A)(ani_env *env, ani_class cls, ani_static_method method, 2643 ani_boolean *result, const ani_value *args); 2644 2645 /** 2646 * @brief Calls a static method with a boolean return type (variadic arguments). 2647 * 2648 * This function calls the specified static method of a class and retrieves a boolean result using a `va_list`. 2649 * 2650 * @param[in] env A pointer to the environment structure. 2651 * @param[in] cls The class containing the static method. 2652 * @param[in] method The static method to call. 2653 * @param[out] result A pointer to store the boolean result. 2654 * @param[in] args A `va_list` of arguments to pass to the method. 2655 * @return Returns a status code of type `ani_status` indicating success or failure. 2656 */ 2657 ani_status (*Class_CallStaticMethod_Boolean_V)(ani_env *env, ani_class cls, ani_static_method method, 2658 ani_boolean *result, va_list args); 2659 2660 /** 2661 * @brief Calls a static method with a character return type. 2662 * 2663 * This function calls the specified static method of a class and retrieves a character result using variadic 2664 * arguments. 2665 * 2666 * @param[in] env A pointer to the environment structure. 2667 * @param[in] cls The class containing the static method. 2668 * @param[in] method The static method to call. 2669 * @param[out] result A pointer to store the character result. 2670 * @param[in] ... Variadic arguments to pass to the method. 2671 * @return Returns a status code of type `ani_status` indicating success or failure. 2672 */ 2673 ani_status (*Class_CallStaticMethod_Char)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result, 2674 ...); 2675 2676 /** 2677 * @brief Calls a static method with a character return type (array-based). 2678 * 2679 * This function calls the specified static method of a class and retrieves a character result using arguments from 2680 * an array. 2681 * 2682 * @param[in] env A pointer to the environment structure. 2683 * @param[in] cls The class containing the static method. 2684 * @param[in] method The static method to call. 2685 * @param[out] result A pointer to store the character result. 2686 * @param[in] args An array of arguments to pass to the method. 2687 * @return Returns a status code of type `ani_status` indicating success or failure. 2688 */ 2689 ani_status (*Class_CallStaticMethod_Char_A)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result, 2690 const ani_value *args); 2691 2692 /** 2693 * @brief Calls a static method with a character return type (variadic arguments). 2694 * 2695 * This function calls the specified static method of a class and retrieves a character result using a `va_list`. 2696 * 2697 * @param[in] env A pointer to the environment structure. 2698 * @param[in] cls The class containing the static method. 2699 * @param[in] method The static method to call. 2700 * @param[out] result A pointer to store the character result. 2701 * @param[in] args A `va_list` of arguments to pass to the method. 2702 * @return Returns a status code of type `ani_status` indicating success or failure. 2703 */ 2704 ani_status (*Class_CallStaticMethod_Char_V)(ani_env *env, ani_class cls, ani_static_method method, ani_char *result, 2705 va_list args); 2706 2707 /** 2708 * @brief Calls a static method with a byte return type. 2709 * 2710 * This function calls the specified static method of a class and retrieves a byte result using variadic arguments. 2711 * 2712 * @param[in] env A pointer to the environment structure. 2713 * @param[in] cls The class containing the static method. 2714 * @param[in] method The static method to call. 2715 * @param[out] result A pointer to store the byte result. 2716 * @param[in] ... Variadic arguments to pass to the method. 2717 * @return Returns a status code of type `ani_status` indicating success or failure. 2718 */ 2719 ani_status (*Class_CallStaticMethod_Byte)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result, 2720 ...); 2721 2722 /** 2723 * @brief Calls a static method with a byte return type (array-based). 2724 * 2725 * This function calls the specified static method of a class and retrieves a byte result using arguments from an 2726 * array. 2727 * 2728 * @param[in] env A pointer to the environment structure. 2729 * @param[in] cls The class containing the static method. 2730 * @param[in] method The static method to call. 2731 * @param[out] result A pointer to store the byte result. 2732 * @param[in] args An array of arguments to pass to the method. 2733 * @return Returns a status code of type `ani_status` indicating success or failure. 2734 */ 2735 ani_status (*Class_CallStaticMethod_Byte_A)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result, 2736 const ani_value *args); 2737 2738 /** 2739 * @brief Calls a static method with a byte return type (variadic arguments). 2740 * 2741 * This function calls the specified static method of a class and retrieves a byte result using a `va_list`. 2742 * 2743 * @param[in] env A pointer to the environment structure. 2744 * @param[in] cls The class containing the static method. 2745 * @param[in] method The static method to call. 2746 * @param[out] result A pointer to store the byte result. 2747 * @param[in] args A `va_list` of arguments to pass to the method. 2748 * @return Returns a status code of type `ani_status` indicating success or failure. 2749 */ 2750 ani_status (*Class_CallStaticMethod_Byte_V)(ani_env *env, ani_class cls, ani_static_method method, ani_byte *result, 2751 va_list args); 2752 2753 /** 2754 * @brief Calls a static method with a short return type. 2755 * 2756 * This function calls the specified static method of a class and retrieves a short result using variadic arguments. 2757 * 2758 * @param[in] env A pointer to the environment structure. 2759 * @param[in] cls The class containing the static method. 2760 * @param[in] method The static method to call. 2761 * @param[out] result A pointer to store the short result. 2762 * @param[in] ... Variadic arguments to pass to the method. 2763 * @return Returns a status code of type `ani_status` indicating success or failure. 2764 */ 2765 ani_status (*Class_CallStaticMethod_Short)(ani_env *env, ani_class cls, ani_static_method method, ani_short *result, 2766 ...); 2767 2768 /** 2769 * @brief Calls a static method with a short return type (array-based). 2770 * 2771 * This function calls the specified static method of a class and retrieves a short result using arguments from an 2772 * array. 2773 * 2774 * @param[in] env A pointer to the environment structure. 2775 * @param[in] cls The class containing the static method. 2776 * @param[in] method The static method to call. 2777 * @param[out] result A pointer to store the short result. 2778 * @param[in] args An array of arguments to pass to the method. 2779 * @return Returns a status code of type `ani_status` indicating success or failure. 2780 */ 2781 ani_status (*Class_CallStaticMethod_Short_A)(ani_env *env, ani_class cls, ani_static_method method, 2782 ani_short *result, const ani_value *args); 2783 2784 /** 2785 * @brief Calls a static method with a short return type (variadic arguments). 2786 * 2787 * This function calls the specified static method of a class and retrieves a short result using a `va_list`. 2788 * 2789 * @param[in] env A pointer to the environment structure. 2790 * @param[in] cls The class containing the static method. 2791 * @param[in] method The static method to call. 2792 * @param[out] result A pointer to store the short result. 2793 * @param[in] args A `va_list` of arguments to pass to the method. 2794 * @return Returns a status code of type `ani_status` indicating success or failure. 2795 */ 2796 ani_status (*Class_CallStaticMethod_Short_V)(ani_env *env, ani_class cls, ani_static_method method, 2797 ani_short *result, va_list args); 2798 2799 /** 2800 * @brief Calls a static method with an integer return type. 2801 * 2802 * This function calls the specified static method of a class and retrieves an integer result using variadic 2803 * arguments. 2804 * 2805 * @param[in] env A pointer to the environment structure. 2806 * @param[in] cls The class containing the static method. 2807 * @param[in] method The static method to call. 2808 * @param[out] result A pointer to store the integer result. 2809 * @param[in] ... Variadic arguments to pass to the method. 2810 * @return Returns a status code of type `ani_status` indicating success or failure. 2811 */ 2812 ani_status (*Class_CallStaticMethod_Int)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result, 2813 ...); 2814 2815 /** 2816 * @brief Calls a static method with an integer return type (array-based). 2817 * 2818 * This function calls the specified static method of a class and retrieves an integer result using arguments from 2819 * an array. 2820 * 2821 * @param[in] env A pointer to the environment structure. 2822 * @param[in] cls The class containing the static method. 2823 * @param[in] method The static method to call. 2824 * @param[out] result A pointer to store the integer result. 2825 * @param[in] args An array of arguments to pass to the method. 2826 * @return Returns a status code of type `ani_status` indicating success or failure. 2827 */ 2828 ani_status (*Class_CallStaticMethod_Int_A)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result, 2829 const ani_value *args); 2830 2831 /** 2832 * @brief Calls a static method with an integer return type (variadic arguments). 2833 * 2834 * This function calls the specified static method of a class and retrieves an integer result using a `va_list`. 2835 * 2836 * @param[in] env A pointer to the environment structure. 2837 * @param[in] cls The class containing the static method. 2838 * @param[in] method The static method to call. 2839 * @param[out] result A pointer to store the integer result. 2840 * @param[in] args A `va_list` of arguments to pass to the method. 2841 * @return Returns a status code of type `ani_status` indicating success or failure. 2842 */ 2843 ani_status (*Class_CallStaticMethod_Int_V)(ani_env *env, ani_class cls, ani_static_method method, ani_int *result, 2844 va_list args); 2845 2846 /** 2847 * @brief Calls a static method with a long return type. 2848 * 2849 * This function calls the specified static method of a class and retrieves a long result using variadic arguments. 2850 * 2851 * @param[in] env A pointer to the environment structure. 2852 * @param[in] cls The class containing the static method. 2853 * @param[in] method The static method to call. 2854 * @param[out] result A pointer to store the long result. 2855 * @param[in] ... Variadic arguments to pass to the method. 2856 * @return Returns a status code of type `ani_status` indicating success or failure. 2857 */ 2858 ani_status (*Class_CallStaticMethod_Long)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result, 2859 ...); 2860 2861 /** 2862 * @brief Calls a static method with a long return type (array-based). 2863 * 2864 * This function calls the specified static method of a class and retrieves a long result using arguments from an 2865 * array. 2866 * 2867 * @param[in] env A pointer to the environment structure. 2868 * @param[in] cls The class containing the static method. 2869 * @param[in] method The static method to call. 2870 * @param[out] result A pointer to store the long result. 2871 * @param[in] args An array of arguments to pass to the method. 2872 * @return Returns a status code of type `ani_status` indicating success or failure. 2873 */ 2874 ani_status (*Class_CallStaticMethod_Long_A)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result, 2875 const ani_value *args); 2876 2877 /** 2878 * @brief Calls a static method with a long return type (variadic arguments). 2879 * 2880 * This function calls the specified static method of a class and retrieves a long result using a `va_list`. 2881 * 2882 * @param[in] env A pointer to the environment structure. 2883 * @param[in] cls The class containing the static method. 2884 * @param[in] method The static method to call. 2885 * @param[out] result A pointer to store the long result. 2886 * @param[in] args A `va_list` of arguments to pass to the method. 2887 * @return Returns a status code of type `ani_status` indicating success or failure. 2888 */ 2889 ani_status (*Class_CallStaticMethod_Long_V)(ani_env *env, ani_class cls, ani_static_method method, ani_long *result, 2890 va_list args); 2891 2892 /** 2893 * @brief Calls a static method with a float return type. 2894 * 2895 * This function calls the specified static method of a class and retrieves a float result using variadic arguments. 2896 * 2897 * @param[in] env A pointer to the environment structure. 2898 * @param[in] cls The class containing the static method. 2899 * @param[in] method The static method to call. 2900 * @param[out] result A pointer to store the float result. 2901 * @param[in] ... Variadic arguments to pass to the method. 2902 * @return Returns a status code of type `ani_status` indicating success or failure. 2903 */ 2904 ani_status (*Class_CallStaticMethod_Float)(ani_env *env, ani_class cls, ani_static_method method, ani_float *result, 2905 ...); 2906 2907 /** 2908 * @brief Calls a static method with a float return type (array-based). 2909 * 2910 * This function calls the specified static method of a class and retrieves a float result using arguments from an 2911 * array. 2912 * 2913 * @param[in] env A pointer to the environment structure. 2914 * @param[in] cls The class containing the static method. 2915 * @param[in] method The static method to call. 2916 * @param[out] result A pointer to store the float result. 2917 * @param[in] args An array of arguments to pass to the method. 2918 * @return Returns a status code of type `ani_status` indicating success or failure. 2919 */ 2920 ani_status (*Class_CallStaticMethod_Float_A)(ani_env *env, ani_class cls, ani_static_method method, 2921 ani_float *result, const ani_value *args); 2922 2923 /** 2924 * @brief Calls a static method with a float return type (variadic arguments). 2925 * 2926 * This function calls the specified static method of a class and retrieves a float result using a `va_list`. 2927 * 2928 * @param[in] env A pointer to the environment structure. 2929 * @param[in] cls The class containing the static method. 2930 * @param[in] method The static method to call. 2931 * @param[out] result A pointer to store the float result. 2932 * @param[in] args A `va_list` of arguments to pass to the method. 2933 * @return Returns a status code of type `ani_status` indicating success or failure. 2934 */ 2935 ani_status (*Class_CallStaticMethod_Float_V)(ani_env *env, ani_class cls, ani_static_method method, 2936 ani_float *result, va_list args); 2937 2938 /** 2939 * @brief Calls a static method with a double return type. 2940 * 2941 * This function calls the specified static method of a class and retrieves a double result using variadic 2942 * arguments. 2943 * 2944 * @param[in] env A pointer to the environment structure. 2945 * @param[in] cls The class containing the static method. 2946 * @param[in] method The static method to call. 2947 * @param[out] result A pointer to store the double result. 2948 * @param[in] ... Variadic arguments to pass to the method. 2949 * @return Returns a status code of type `ani_status` indicating success or failure. 2950 */ 2951 ani_status (*Class_CallStaticMethod_Double)(ani_env *env, ani_class cls, ani_static_method method, 2952 ani_double *result, ...); 2953 2954 /** 2955 * @brief Calls a static method with a double return type (array-based). 2956 * 2957 * This function calls the specified static method of a class and retrieves a double result using arguments from an 2958 * array. 2959 * 2960 * @param[in] env A pointer to the environment structure. 2961 * @param[in] cls The class containing the static method. 2962 * @param[in] method The static method to call. 2963 * @param[out] result A pointer to store the double result. 2964 * @param[in] args An array of arguments to pass to the method. 2965 * @return Returns a status code of type `ani_status` indicating success or failure. 2966 */ 2967 ani_status (*Class_CallStaticMethod_Double_A)(ani_env *env, ani_class cls, ani_static_method method, 2968 ani_double *result, const ani_value *args); 2969 2970 /** 2971 * @brief Calls a static method with a double return type (variadic arguments). 2972 * 2973 * This function calls the specified static method of a class and retrieves a double result using a `va_list`. 2974 * 2975 * @param[in] env A pointer to the environment structure. 2976 * @param[in] cls The class containing the static method. 2977 * @param[in] method The static method to call. 2978 * @param[out] result A pointer to store the double result. 2979 * @param[in] args A `va_list` of arguments to pass to the method. 2980 * @return Returns a status code of type `ani_status` indicating success or failure. 2981 */ 2982 ani_status (*Class_CallStaticMethod_Double_V)(ani_env *env, ani_class cls, ani_static_method method, 2983 ani_double *result, va_list args); 2984 2985 /** 2986 * @brief Calls a static method with a reference return type. 2987 * 2988 * This function calls the specified static method of a class and retrieves a reference result using variadic 2989 * arguments. 2990 * 2991 * @param[in] env A pointer to the environment structure. 2992 * @param[in] cls The class containing the static method. 2993 * @param[in] method The static method to call. 2994 * @param[out] result A pointer to store the reference result. 2995 * @param[in] ... Variadic arguments to pass to the method. 2996 * @return Returns a status code of type `ani_status` indicating success or failure. 2997 */ 2998 ani_status (*Class_CallStaticMethod_Ref)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result, 2999 ...); 3000 3001 /** 3002 * @brief Calls a static method with a reference return type (array-based). 3003 * 3004 * This function calls the specified static method of a class and retrieves a reference result using arguments from 3005 * an array. 3006 * 3007 * @param[in] env A pointer to the environment structure. 3008 * @param[in] cls The class containing the static method. 3009 * @param[in] method The static method to call. 3010 * @param[out] result A pointer to store the reference result. 3011 * @param[in] args An array of arguments to pass to the method. 3012 * @return Returns a status code of type `ani_status` indicating success or failure. 3013 */ 3014 ani_status (*Class_CallStaticMethod_Ref_A)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result, 3015 const ani_value *args); 3016 3017 /** 3018 * @brief Calls a static method with a reference return type (variadic arguments). 3019 * 3020 * This function calls the specified static method of a class and retrieves a reference result using a `va_list`. 3021 * 3022 * @param[in] env A pointer to the environment structure. 3023 * @param[in] cls The class containing the static method. 3024 * @param[in] method The static method to call. 3025 * @param[out] result A pointer to store the reference result. 3026 * @param[in] args A `va_list` of arguments to pass to the method. 3027 * @return Returns a status code of type `ani_status` indicating success or failure. 3028 */ 3029 ani_status (*Class_CallStaticMethod_Ref_V)(ani_env *env, ani_class cls, ani_static_method method, ani_ref *result, 3030 va_list args); 3031 3032 /** 3033 * @brief Calls a static method with no return value. 3034 * 3035 * This function calls the specified static method of a class using variadic arguments. The method does not return a 3036 * value. 3037 * 3038 * @param[in] env A pointer to the environment structure. 3039 * @param[in] cls The class containing the static method. 3040 * @param[in] method The static method to call. 3041 * @param[in] ... Variadic arguments to pass to the method. 3042 * @return Returns a status code of type `ani_status` indicating success or failure. 3043 */ 3044 ani_status (*Class_CallStaticMethod_Void)(ani_env *env, ani_class cls, ani_static_method method, ...); 3045 3046 /** 3047 * @brief Calls a static method with no return value (array-based). 3048 * 3049 * This function calls the specified static method of a class using arguments from an array. The method does not 3050 * return a value. 3051 * 3052 * @param[in] env A pointer to the environment structure. 3053 * @param[in] cls The class containing the static method. 3054 * @param[in] method The static method to call. 3055 * @param[in] args An array of arguments to pass to the method. 3056 * @return Returns a status code of type `ani_status` indicating success or failure. 3057 */ 3058 ani_status (*Class_CallStaticMethod_Void_A)(ani_env *env, ani_class cls, ani_static_method method, 3059 const ani_value *args); 3060 3061 /** 3062 * @brief Calls a static method with no return value (variadic arguments). 3063 * 3064 * This function calls the specified static method of a class using a `va_list`. The method does not return a value. 3065 * 3066 * @param[in] env A pointer to the environment structure. 3067 * @param[in] cls The class containing the static method. 3068 * @param[in] method The static method to call. 3069 * @param[in] args A `va_list` of arguments to pass to the method. 3070 * @return Returns a status code of type `ani_status` indicating success or failure. 3071 */ 3072 ani_status (*Class_CallStaticMethod_Void_V)(ani_env *env, ani_class cls, ani_static_method method, va_list args); 3073 3074 /** 3075 * @brief Calls a static method by name with a boolean return type. 3076 * 3077 * This function calls the specified static method of a class by its name and retrieves a boolean result using 3078 * variadic arguments. 3079 * 3080 * @param[in] env A pointer to the environment structure. 3081 * @param[in] cls The class containing the static method. 3082 * @param[in] name The name of the static method to call. 3083 * @param[in] signature The signature of the static method to call. 3084 * @param[out] result A pointer to store the boolean result. 3085 * @param[in] ... Variadic arguments to pass to the method. 3086 * @return Returns a status code of type `ani_status` indicating success or failure. 3087 */ 3088 ani_status (*Class_CallStaticMethodByName_Boolean)(ani_env *env, ani_class cls, const char *name, 3089 const char *signature, ani_boolean *result, ...); 3090 3091 /** 3092 * @brief Calls a static method by name with a boolean return type (array-based). 3093 * 3094 * This function calls the specified static method of a class by its name and retrieves a boolean result using 3095 * arguments from an array. 3096 * 3097 * @param[in] env A pointer to the environment structure. 3098 * @param[in] cls The class containing the static method. 3099 * @param[in] name The name of the static method to call. 3100 * @param[in] signature The signature of the static method to call. 3101 * @param[out] result A pointer to store the boolean result. 3102 * @param[in] args An array of arguments to pass to the method. 3103 * @return Returns a status code of type `ani_status` indicating success or failure. 3104 */ 3105 ani_status (*Class_CallStaticMethodByName_Boolean_A)(ani_env *env, ani_class cls, const char *name, 3106 const char *signature, ani_boolean *result, 3107 const ani_value *args); 3108 3109 /** 3110 * @brief Calls a static method by name with a boolean return type (variadic arguments). 3111 * 3112 * This function calls the specified static method of a class by its name and retrieves a boolean result using a 3113 * `va_list`. 3114 * 3115 * @param[in] env A pointer to the environment structure. 3116 * @param[in] cls The class containing the static method. 3117 * @param[in] name The name of the static method to call. 3118 * @param[in] signature The signature of the static method to call. 3119 * @param[out] result A pointer to store the boolean result. 3120 * @param[in] args A `va_list` of arguments to pass to the method. 3121 * @return Returns a status code of type `ani_status` indicating success or failure. 3122 */ 3123 ani_status (*Class_CallStaticMethodByName_Boolean_V)(ani_env *env, ani_class cls, const char *name, 3124 const char *signature, ani_boolean *result, va_list args); 3125 3126 /** 3127 * @brief Calls a static method by name with a char return type. 3128 * 3129 * This function calls the specified static method of a class by its name and retrieves a char result using variadic 3130 * arguments. 3131 * 3132 * @param[in] env A pointer to the environment structure. 3133 * @param[in] cls The class containing the static method. 3134 * @param[in] name The name of the static method to call. 3135 * @param[in] signature The signature of the static method to call. 3136 * @param[out] result A pointer to store the char result. 3137 * @param[in] ... Variadic arguments to pass to the method. 3138 * @return Returns a status code of type `ani_status` indicating success or failure. 3139 */ 3140 ani_status (*Class_CallStaticMethodByName_Char)(ani_env *env, ani_class cls, const char *name, 3141 const char *signature, ani_char *result, ...); 3142 3143 /** 3144 * @brief Calls a static method by name with a char return type (array-based). 3145 * 3146 * This function calls the specified static method of a class by its name and retrieves a char result using 3147 * arguments from an array. 3148 * 3149 * @param[in] env A pointer to the environment structure. 3150 * @param[in] cls The class containing the static method. 3151 * @param[in] name The name of the static method to call. 3152 * @param[in] signature The signature of the static method to call. 3153 * @param[out] result A pointer to store the char result. 3154 * @param[in] args An array of arguments to pass to the method. 3155 * @return Returns a status code of type `ani_status` indicating success or failure. 3156 */ 3157 ani_status (*Class_CallStaticMethodByName_Char_A)(ani_env *env, ani_class cls, const char *name, 3158 const char *signature, ani_char *result, const ani_value *args); 3159 3160 /** 3161 * @brief Calls a static method by name with a char return type (variadic arguments). 3162 * 3163 * This function calls the specified static method of a class by its name and retrieves a char result using a 3164 * `va_list`. 3165 * 3166 * @param[in] env A pointer to the environment structure. 3167 * @param[in] cls The class containing the static method. 3168 * @param[in] name The name of the static method to call. 3169 * @param[in] signature The signature of the static method to call. 3170 * @param[out] result A pointer to store the char result. 3171 * @param[in] args A `va_list` of arguments to pass to the method. 3172 * @return Returns a status code of type `ani_status` indicating success or failure. 3173 */ 3174 ani_status (*Class_CallStaticMethodByName_Char_V)(ani_env *env, ani_class cls, const char *name, 3175 const char *signature, ani_char *result, va_list args); 3176 3177 /** 3178 * @brief Calls a static method by name with a byte return type. 3179 * 3180 * This function calls the specified static method of a class by its name and retrieves a byte result using variadic 3181 * arguments. 3182 * 3183 * @param[in] env A pointer to the environment structure. 3184 * @param[in] cls The class containing the static method. 3185 * @param[in] name The name of the static method to call. 3186 * @param[in] signature The signature of the static method to call. 3187 * @param[out] result A pointer to store the byte result. 3188 * @param[in] ... Variadic arguments to pass to the method. 3189 * @return Returns a status code of type `ani_status` indicating success or failure. 3190 */ 3191 ani_status (*Class_CallStaticMethodByName_Byte)(ani_env *env, ani_class cls, const char *name, 3192 const char *signature, ani_byte *result, ...); 3193 3194 /** 3195 * @brief Calls a static method by name with a byte return type (array-based). 3196 * 3197 * This function calls the specified static method of a class by its name and retrieves a byte result using 3198 * arguments from an array. 3199 * 3200 * @param[in] env A pointer to the environment structure. 3201 * @param[in] cls The class containing the static method. 3202 * @param[in] name The name of the static method to call. 3203 * @param[in] signature The signature of the static method to call. 3204 * @param[out] result A pointer to store the byte result. 3205 * @param[in] args An array of arguments to pass to the method. 3206 * @return Returns a status code of type `ani_status` indicating success or failure. 3207 */ 3208 ani_status (*Class_CallStaticMethodByName_Byte_A)(ani_env *env, ani_class cls, const char *name, 3209 const char *signature, ani_byte *result, const ani_value *args); 3210 3211 /** 3212 * @brief Calls a static method by name with a byte return type (variadic arguments). 3213 * 3214 * This function calls the specified static method of a class by its name and retrieves a byte result using a 3215 * `va_list`. 3216 * 3217 * @param[in] env A pointer to the environment structure. 3218 * @param[in] cls The class containing the static method. 3219 * @param[in] name The name of the static method to call. 3220 * @param[in] signature The signature of the static method to call. 3221 * @param[out] result A pointer to store the byte result. 3222 * @param[in] args A `va_list` of arguments to pass to the method. 3223 * @return Returns a status code of type `ani_status` indicating success or failure. 3224 */ 3225 ani_status (*Class_CallStaticMethodByName_Byte_V)(ani_env *env, ani_class cls, const char *name, 3226 const char *signature, ani_byte *result, va_list args); 3227 3228 /** 3229 * @brief Calls a static method by name with a short return type. 3230 * 3231 * This function calls the specified static method of a class by its name and retrieves a short result using 3232 * variadic arguments. 3233 * 3234 * @param[in] env A pointer to the environment structure. 3235 * @param[in] cls The class containing the static method. 3236 * @param[in] name The name of the static method to call. 3237 * @param[in] signature The signature of the static method to call. 3238 * @param[out] result A pointer to store the short result. 3239 * @param[in] ... Variadic arguments to pass to the method. 3240 * @return Returns a status code of type `ani_status` indicating success or failure. 3241 */ 3242 ani_status (*Class_CallStaticMethodByName_Short)(ani_env *env, ani_class cls, const char *name, 3243 const char *signature, ani_short *result, ...); 3244 3245 /** 3246 * @brief Calls a static method by name with a short return type (array-based). 3247 * 3248 * This function calls the specified static method of a class by its name and retrieves a short result using 3249 * arguments from an array. 3250 * 3251 * @param[in] env A pointer to the environment structure. 3252 * @param[in] cls The class containing the static method. 3253 * @param[in] name The name of the static method to call. 3254 * @param[in] signature The signature of the static method to call. 3255 * @param[out] result A pointer to store the short result. 3256 * @param[in] args An array of arguments to pass to the method. 3257 * @return Returns a status code of type `ani_status` indicating success or failure. 3258 */ 3259 ani_status (*Class_CallStaticMethodByName_Short_A)(ani_env *env, ani_class cls, const char *name, 3260 const char *signature, ani_short *result, const ani_value *args); 3261 3262 /** 3263 * @brief Calls a static method by name with a short return type (variadic arguments). 3264 * 3265 * This function calls the specified static method of a class by its name and retrieves a short result using a 3266 * `va_list`. 3267 * 3268 * @param[in] env A pointer to the environment structure. 3269 * @param[in] cls The class containing the static method. 3270 * @param[in] name The name of the static method to call. 3271 * @param[in] signature The signature of the static method to call. 3272 * @param[out] result A pointer to store the short result. 3273 * @param[in] args A `va_list` of arguments to pass to the method. 3274 * @return Returns a status code of type `ani_status` indicating success or failure. 3275 */ 3276 ani_status (*Class_CallStaticMethodByName_Short_V)(ani_env *env, ani_class cls, const char *name, 3277 const char *signature, ani_short *result, va_list args); 3278 3279 /** 3280 * @brief Calls a static method by name with a integer return type. 3281 * 3282 * This function calls the specified static method of a class by its name and retrieves a integer result using 3283 * variadic arguments. 3284 * 3285 * @param[in] env A pointer to the environment structure. 3286 * @param[in] cls The class containing the static method. 3287 * @param[in] name The name of the static method to call. 3288 * @param[in] signature The signature of the static method to call. 3289 * @param[out] result A pointer to store the integer result. 3290 * @param[in] ... Variadic arguments to pass to the method. 3291 * @return Returns a status code of type `ani_status` indicating success or failure. 3292 */ 3293 ani_status (*Class_CallStaticMethodByName_Int)(ani_env *env, ani_class cls, const char *name, const char *signature, 3294 ani_int *result, ...); 3295 3296 /** 3297 * @brief Calls a static method by name with a integer return type (array-based). 3298 * 3299 * This function calls the specified static method of a class by its name and retrieves a integer result using 3300 * arguments from an array. 3301 * 3302 * @param[in] env A pointer to the environment structure. 3303 * @param[in] cls The class containing the static method. 3304 * @param[in] name The name of the static method to call. 3305 * @param[in] signature The signature of the static method to call. 3306 * @param[out] result A pointer to store the integer result. 3307 * @param[in] args An array of arguments to pass to the method. 3308 * @return Returns a status code of type `ani_status` indicating success or failure. 3309 */ 3310 ani_status (*Class_CallStaticMethodByName_Int_A)(ani_env *env, ani_class cls, const char *name, 3311 const char *signature, ani_int *result, const ani_value *args); 3312 3313 /** 3314 * @brief Calls a static method by name with a integer return type (variadic arguments). 3315 * 3316 * This function calls the specified static method of a class by its name and retrieves a integer result using a 3317 * `va_list`. 3318 * 3319 * @param[in] env A pointer to the environment structure. 3320 * @param[in] cls The class containing the static method. 3321 * @param[in] name The name of the static method to call. 3322 * @param[in] signature The signature of the static method to call. 3323 * @param[out] result A pointer to store the integer result. 3324 * @param[in] args A `va_list` of arguments to pass to the method. 3325 * @return Returns a status code of type `ani_status` indicating success or failure. 3326 */ 3327 ani_status (*Class_CallStaticMethodByName_Int_V)(ani_env *env, ani_class cls, const char *name, 3328 const char *signature, ani_int *result, va_list args); 3329 3330 /** 3331 * @brief Calls a static method by name with a long return type. 3332 * 3333 * This function calls the specified static method of a class by its name and retrieves a long result using variadic 3334 * arguments. 3335 * 3336 * @param[in] env A pointer to the environment structure. 3337 * @param[in] cls The class containing the static method. 3338 * @param[in] name The name of the static method to call. 3339 * @param[in] signature The signature of the static method to call. 3340 * @param[out] result A pointer to store the long result. 3341 * @param[in] ... Variadic arguments to pass to the method. 3342 * @return Returns a status code of type `ani_status` indicating success or failure. 3343 */ 3344 ani_status (*Class_CallStaticMethodByName_Long)(ani_env *env, ani_class cls, const char *name, 3345 const char *signature, ani_long *result, ...); 3346 3347 /** 3348 * @brief Calls a static method by name with a long return type (array-based). 3349 * 3350 * This function calls the specified static method of a class by its name and retrieves a long result using 3351 * arguments from an array. 3352 * 3353 * @param[in] env A pointer to the environment structure. 3354 * @param[in] cls The class containing the static method. 3355 * @param[in] name The name of the static method to call. 3356 * @param[in] signature The signature of the static method to call. 3357 * @param[out] result A pointer to store the long result. 3358 * @param[in] args An array of arguments to pass to the method. 3359 * @return Returns a status code of type `ani_status` indicating success or failure. 3360 */ 3361 ani_status (*Class_CallStaticMethodByName_Long_A)(ani_env *env, ani_class cls, const char *name, 3362 const char *signature, ani_long *result, const ani_value *args); 3363 3364 /** 3365 * @brief Calls a static method by name with a long return type (variadic arguments). 3366 * 3367 * This function calls the specified static method of a class by its name and retrieves a long result using a 3368 * `va_list`. 3369 * 3370 * @param[in] env A pointer to the environment structure. 3371 * @param[in] cls The class containing the static method. 3372 * @param[in] name The name of the static method to call. 3373 * @param[in] signature The signature of the static method to call. 3374 * @param[out] result A pointer to store the long result. 3375 * @param[in] args A `va_list` of arguments to pass to the method. 3376 * @return Returns a status code of type `ani_status` indicating success or failure. 3377 */ 3378 ani_status (*Class_CallStaticMethodByName_Long_V)(ani_env *env, ani_class cls, const char *name, 3379 const char *signature, ani_long *result, va_list args); 3380 3381 /** 3382 * @brief Calls a static method by name with a float return type. 3383 * 3384 * This function calls the specified static method of a class by its name and retrieves a float result using 3385 * variadic arguments. 3386 * 3387 * @param[in] env A pointer to the environment structure. 3388 * @param[in] cls The class containing the static method. 3389 * @param[in] name The name of the static method to call. 3390 * @param[in] signature The signature of the static method to call. 3391 * @param[out] result A pointer to store the float result. 3392 * @param[in] ... Variadic arguments to pass to the method. 3393 * @return Returns a status code of type `ani_status` indicating success or failure. 3394 */ 3395 ani_status (*Class_CallStaticMethodByName_Float)(ani_env *env, ani_class cls, const char *name, 3396 const char *signature, ani_float *result, ...); 3397 3398 /** 3399 * @brief Calls a static method by name with a float return type (array-based). 3400 * 3401 * This function calls the specified static method of a class by its name and retrieves a float result using 3402 * arguments from an array. 3403 * 3404 * @param[in] env A pointer to the environment structure. 3405 * @param[in] cls The class containing the static method. 3406 * @param[in] name The name of the static method to call. 3407 * @param[in] signature The signature of the static method to call. 3408 * @param[out] result A pointer to store the float result. 3409 * @param[in] args An array of arguments to pass to the method. 3410 * @return Returns a status code of type `ani_status` indicating success or failure. 3411 */ 3412 ani_status (*Class_CallStaticMethodByName_Float_A)(ani_env *env, ani_class cls, const char *name, 3413 const char *signature, ani_float *result, const ani_value *args); 3414 3415 /** 3416 * @brief Calls a static method by name with a float return type (variadic arguments). 3417 * 3418 * This function calls the specified static method of a class by its name and retrieves a float result using a 3419 * `va_list`. 3420 * 3421 * @param[in] env A pointer to the environment structure. 3422 * @param[in] cls The class containing the static method. 3423 * @param[in] name The name of the static method to call. 3424 * @param[in] signature The signature of the static method to call. 3425 * @param[out] result A pointer to store the float result. 3426 * @param[in] args A `va_list` of arguments to pass to the method. 3427 * @return Returns a status code of type `ani_status` indicating success or failure. 3428 */ 3429 ani_status (*Class_CallStaticMethodByName_Float_V)(ani_env *env, ani_class cls, const char *name, 3430 const char *signature, ani_float *result, va_list args); 3431 3432 /** 3433 * @brief Calls a static method by name with a double return type. 3434 * 3435 * This function calls the specified static method of a class by its name and retrieves a double result using 3436 * variadic arguments. 3437 * 3438 * @param[in] env A pointer to the environment structure. 3439 * @param[in] cls The class containing the static method. 3440 * @param[in] name The name of the static method to call. 3441 * @param[in] signature The signature of the static method to call. 3442 * @param[out] result A pointer to store the double result. 3443 * @param[in] ... Variadic arguments to pass to the method. 3444 * @return Returns a status code of type `ani_status` indicating success or failure. 3445 */ 3446 ani_status (*Class_CallStaticMethodByName_Double)(ani_env *env, ani_class cls, const char *name, 3447 const char *signature, ani_double *result, ...); 3448 3449 /** 3450 * @brief Calls a static method by name with a double return type (array-based). 3451 * 3452 * This function calls the specified static method of a class by its name and retrieves a double result using 3453 * arguments from an array. 3454 * 3455 * @param[in] env A pointer to the environment structure. 3456 * @param[in] cls The class containing the static method. 3457 * @param[in] name The name of the static method to call. 3458 * @param[in] signature The signature of the static method to call. 3459 * @param[out] result A pointer to store the double result. 3460 * @param[in] args An array of arguments to pass to the method. 3461 * @return Returns a status code of type `ani_status` indicating success or failure. 3462 */ 3463 ani_status (*Class_CallStaticMethodByName_Double_A)(ani_env *env, ani_class cls, const char *name, 3464 const char *signature, ani_double *result, 3465 const ani_value *args); 3466 3467 /** 3468 * @brief Calls a static method by name with a double return type (variadic arguments). 3469 * 3470 * This function calls the specified static method of a class by its name and retrieves a double result using a 3471 * `va_list`. 3472 * 3473 * @param[in] env A pointer to the environment structure. 3474 * @param[in] cls The class containing the static method. 3475 * @param[in] name The name of the static method to call. 3476 * @param[in] signature The signature of the static method to call. 3477 * @param[out] result A pointer to store the double result. 3478 * @param[in] args A `va_list` of arguments to pass to the method. 3479 * @return Returns a status code of type `ani_status` indicating success or failure. 3480 */ 3481 ani_status (*Class_CallStaticMethodByName_Double_V)(ani_env *env, ani_class cls, const char *name, 3482 const char *signature, ani_double *result, va_list args); 3483 3484 /** 3485 * @brief Calls a static method by name with a reference return type. 3486 * 3487 * This function calls the specified static method of a class by its name and retrieves a reference result using 3488 * variadic arguments. 3489 * 3490 * @param[in] env A pointer to the environment structure. 3491 * @param[in] cls The class containing the static method. 3492 * @param[in] name The name of the static method to call. 3493 * @param[in] signature The signature of the static method to call. 3494 * @param[out] result A pointer to store the reference result. 3495 * @param[in] ... Variadic arguments to pass to the method. 3496 * @return Returns a status code of type `ani_status` indicating success or failure. 3497 */ 3498 ani_status (*Class_CallStaticMethodByName_Ref)(ani_env *env, ani_class cls, const char *name, const char *signature, 3499 ani_ref *result, ...); 3500 3501 /** 3502 * @brief Calls a static method by name with a reference return type (array-based). 3503 * 3504 * This function calls the specified static method of a class by its name and retrieves a reference result using 3505 * arguments from an array. 3506 * 3507 * @param[in] env A pointer to the environment structure. 3508 * @param[in] cls The class containing the static method. 3509 * @param[in] name The name of the static method to call. 3510 * @param[in] signature The signature of the static method to call. 3511 * @param[out] result A pointer to store the reference result. 3512 * @param[in] args An array of arguments to pass to the method. 3513 * @return Returns a status code of type `ani_status` indicating success or failure. 3514 */ 3515 ani_status (*Class_CallStaticMethodByName_Ref_A)(ani_env *env, ani_class cls, const char *name, 3516 const char *signature, ani_ref *result, const ani_value *args); 3517 3518 /** 3519 * @brief Calls a static method by name with a reference return type (variadic arguments). 3520 * 3521 * This function calls the specified static method of a class by its name and retrieves a reference result using a 3522 * `va_list`. 3523 * 3524 * @param[in] env A pointer to the environment structure. 3525 * @param[in] cls The class containing the static method. 3526 * @param[in] name The name of the static method to call. 3527 * @param[in] signature The signature of the static method to call. 3528 * @param[out] result A pointer to store the reference result. 3529 * @param[in] args A `va_list` of arguments to pass to the method. 3530 * @return Returns a status code of type `ani_status` indicating success or failure. 3531 */ 3532 ani_status (*Class_CallStaticMethodByName_Ref_V)(ani_env *env, ani_class cls, const char *name, 3533 const char *signature, ani_ref *result, va_list args); 3534 3535 /** 3536 * @brief Calls a static method by name with no return value. 3537 * 3538 * This function calls the specified static method of a class by its name using variadic arguments. The method does 3539 * not return a value. 3540 * 3541 * @param[in] env A pointer to the environment structure. 3542 * @param[in] cls The class containing the static method. 3543 * @param[in] name The name of the static method to call. 3544 * @param[in] signature The signature of the static method to call. 3545 * @param[in] ... Variadic arguments to pass to the method. 3546 * @return Returns a status code of type `ani_status` indicating success or failure. 3547 */ 3548 ani_status (*Class_CallStaticMethodByName_Void)(ani_env *env, ani_class cls, const char *name, 3549 const char *signature, ...); 3550 3551 /** 3552 * @brief Calls a static method by name with no return value (array-based). 3553 * 3554 * This function calls the specified static method of a class by its name using arguments from an array. The method 3555 * does not return a value. 3556 * 3557 * @param[in] env A pointer to the environment structure. 3558 * @param[in] cls The class containing the static method. 3559 * @param[in] name The name of the static method to call. 3560 * @param[in] signature The signature of the static method to call. 3561 * @param[in] args An array of arguments to pass to the method. 3562 * @return Returns a status code of type `ani_status` indicating success or failure. 3563 */ 3564 ani_status (*Class_CallStaticMethodByName_Void_A)(ani_env *env, ani_class cls, const char *name, 3565 const char *signature, const ani_value *args); 3566 3567 /** 3568 * @brief Calls a static method by name with no return value (variadic arguments). 3569 * 3570 * This function calls the specified static method of a class by its name using a `va_list`. The method does not 3571 * return a value. 3572 * 3573 * @param[in] env A pointer to the environment structure. 3574 * @param[in] cls The class containing the static method. 3575 * @param[in] name The name of the static method to call. 3576 * @param[in] signature The signature of the static method to call. 3577 * @param[in] args A `va_list` of arguments to pass to the method. 3578 * @return Returns a status code of type `ani_status` indicating success or failure. 3579 */ 3580 ani_status (*Class_CallStaticMethodByName_Void_V)(ani_env *env, ani_class cls, const char *name, 3581 const char *signature, va_list args); 3582 3583 /** 3584 * @brief Retrieves a boolean value from a field of an object. 3585 * 3586 * This function retrieves the boolean value of the specified field from the given object. 3587 * 3588 * @param[in] env A pointer to the environment structure. 3589 * @param[in] object The object containing the field. 3590 * @param[in] field The field to retrieve the boolean value from. 3591 * @param[out] result A pointer to store the retrieved boolean value. 3592 * @return Returns a status code of type `ani_status` indicating success or failure. 3593 */ 3594 ani_status (*Object_GetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean *result); 3595 3596 /** 3597 * @brief Retrieves a char value from a field of an object. 3598 * 3599 * This function retrieves the char value of the specified field from the given object. 3600 * 3601 * @param[in] env A pointer to the environment structure. 3602 * @param[in] object The object containing the field. 3603 * @param[in] field The field to retrieve the char value from. 3604 * @param[out] result A pointer to store the retrieved char value. 3605 * @return Returns a status code of type `ani_status` indicating success or failure. 3606 */ 3607 ani_status (*Object_GetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char *result); 3608 3609 /** 3610 * @brief Retrieves a byte value from a field of an object. 3611 * 3612 * This function retrieves the byte value of the specified field from the given object. 3613 * 3614 * @param[in] env A pointer to the environment structure. 3615 * @param[in] object The object containing the field. 3616 * @param[in] field The field to retrieve the byte value from. 3617 * @param[out] result A pointer to store the retrieved byte value. 3618 * @return Returns a status code of type `ani_status` indicating success or failure. 3619 */ 3620 ani_status (*Object_GetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte *result); 3621 3622 /** 3623 * @brief Retrieves a short value from a field of an object. 3624 * 3625 * This function retrieves the short value of the specified field from the given object. 3626 * 3627 * @param[in] env A pointer to the environment structure. 3628 * @param[in] object The object containing the field. 3629 * @param[in] field The field to retrieve the short value from. 3630 * @param[out] result A pointer to store the retrieved short value. 3631 * @return Returns a status code of type `ani_status` indicating success or failure. 3632 */ 3633 ani_status (*Object_GetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short *result); 3634 3635 /** 3636 * @brief Retrieves a integer value from a field of an object. 3637 * 3638 * This function retrieves the integer value of the specified field from the given object. 3639 * 3640 * @param[in] env A pointer to the environment structure. 3641 * @param[in] object The object containing the field. 3642 * @param[in] field The field to retrieve the integer value from. 3643 * @param[out] result A pointer to store the retrieved integer value. 3644 * @return Returns a status code of type `ani_status` indicating success or failure. 3645 */ 3646 ani_status (*Object_GetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int *result); 3647 3648 /** 3649 * @brief Retrieves a long value from a field of an object. 3650 * 3651 * This function retrieves the long value of the specified field from the given object. 3652 * 3653 * @param[in] env A pointer to the environment structure. 3654 * @param[in] object The object containing the field. 3655 * @param[in] field The field to retrieve the long value from. 3656 * @param[out] result A pointer to store the retrieved long value. 3657 * @return Returns a status code of type `ani_status` indicating success or failure. 3658 */ 3659 ani_status (*Object_GetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long *result); 3660 3661 /** 3662 * @brief Retrieves a float value from a field of an object. 3663 * 3664 * This function retrieves the float value of the specified field from the given object. 3665 * 3666 * @param[in] env A pointer to the environment structure. 3667 * @param[in] object The object containing the field. 3668 * @param[in] field The field to retrieve the float value from. 3669 * @param[out] result A pointer to store the retrieved float value. 3670 * @return Returns a status code of type `ani_status` indicating success or failure. 3671 */ 3672 ani_status (*Object_GetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float *result); 3673 3674 /** 3675 * @brief Retrieves a double value from a field of an object. 3676 * 3677 * This function retrieves the double value of the specified field from the given object. 3678 * 3679 * @param[in] env A pointer to the environment structure. 3680 * @param[in] object The object containing the field. 3681 * @param[in] field The field to retrieve the double value from. 3682 * @param[out] result A pointer to store the retrieved double value. 3683 * @return Returns a status code of type `ani_status` indicating success or failure. 3684 */ 3685 ani_status (*Object_GetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double *result); 3686 3687 /** 3688 * @brief Retrieves a reference value from a field of an object. 3689 * 3690 * This function retrieves the reference value of the specified field from the given object. 3691 * 3692 * @param[in] env A pointer to the environment structure. 3693 * @param[in] object The object containing the field. 3694 * @param[in] field The field to retrieve the reference value from. 3695 * @param[out] result A pointer to store the retrieved reference value. 3696 * @return Returns a status code of type `ani_status` indicating success or failure. 3697 */ 3698 ani_status (*Object_GetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref *result); 3699 3700 /** 3701 * @brief Sets a boolean value to a field of an object. 3702 * 3703 * This function assigns a boolean value to the specified field of the given object. 3704 * 3705 * @param[in] env A pointer to the environment structure. 3706 * @param[in] object The object containing the field. 3707 * @param[in] field The field to set the boolean value to. 3708 * @param[in] value The boolean value to assign to the field. 3709 * @return Returns a status code of type `ani_status` indicating success or failure. 3710 */ 3711 ani_status (*Object_SetField_Boolean)(ani_env *env, ani_object object, ani_field field, ani_boolean value); 3712 3713 /** 3714 * @brief Sets a char value to a field of an object. 3715 * 3716 * This function assigns a char value to the specified field of the given object. 3717 * 3718 * @param[in] env A pointer to the environment structure. 3719 * @param[in] object The object containing the field. 3720 * @param[in] field The field to set the char value to. 3721 * @param[in] value The char value to assign to the field. 3722 * @return Returns a status code of type `ani_status` indicating success or failure. 3723 */ 3724 ani_status (*Object_SetField_Char)(ani_env *env, ani_object object, ani_field field, ani_char value); 3725 3726 /** 3727 * @brief Sets a byte value to a field of an object. 3728 * 3729 * This function assigns a byte value to the specified field of the given object. 3730 * 3731 * @param[in] env A pointer to the environment structure. 3732 * @param[in] object The object containing the field. 3733 * @param[in] field The field to set the byte value to. 3734 * @param[in] value The byte value to assign to the field. 3735 * @return Returns a status code of type `ani_status` indicating success or failure. 3736 */ 3737 ani_status (*Object_SetField_Byte)(ani_env *env, ani_object object, ani_field field, ani_byte value); 3738 3739 /** 3740 * @brief Sets a short value to a field of an object. 3741 * 3742 * This function assigns a short value to the specified field of the given object. 3743 * 3744 * @param[in] env A pointer to the environment structure. 3745 * @param[in] object The object containing the field. 3746 * @param[in] field The field to set the short value to. 3747 * @param[in] value The short value to assign to the field. 3748 * @return Returns a status code of type `ani_status` indicating success or failure. 3749 */ 3750 ani_status (*Object_SetField_Short)(ani_env *env, ani_object object, ani_field field, ani_short value); 3751 3752 /** 3753 * @brief Sets a integer value to a field of an object. 3754 * 3755 * This function assigns a integer value to the specified field of the given object. 3756 * 3757 * @param[in] env A pointer to the environment structure. 3758 * @param[in] object The object containing the field. 3759 * @param[in] field The field to set the integer value to. 3760 * @param[in] value The integer value to assign to the field. 3761 * @return Returns a status code of type `ani_status` indicating success or failure. 3762 */ 3763 ani_status (*Object_SetField_Int)(ani_env *env, ani_object object, ani_field field, ani_int value); 3764 3765 /** 3766 * @brief Sets a long value to a field of an object. 3767 * 3768 * This function assigns a long value to the specified field of the given object. 3769 * 3770 * @param[in] env A pointer to the environment structure. 3771 * @param[in] object The object containing the field. 3772 * @param[in] field The field to set the long value to. 3773 * @param[in] value The long value to assign to the field. 3774 * @return Returns a status code of type `ani_status` indicating success or failure. 3775 */ 3776 ani_status (*Object_SetField_Long)(ani_env *env, ani_object object, ani_field field, ani_long value); 3777 3778 /** 3779 * @brief Sets a float value to a field of an object. 3780 * 3781 * This function assigns a float value to the specified field of the given object. 3782 * 3783 * @param[in] env A pointer to the environment structure. 3784 * @param[in] object The object containing the field. 3785 * @param[in] field The field to set the float value to. 3786 * @param[in] value The float value to assign to the field. 3787 * @return Returns a status code of type `ani_status` indicating success or failure. 3788 */ 3789 ani_status (*Object_SetField_Float)(ani_env *env, ani_object object, ani_field field, ani_float value); 3790 3791 /** 3792 * @brief Sets a double value to a field of an object. 3793 * 3794 * This function assigns a double value to the specified field of the given object. 3795 * 3796 * @param[in] env A pointer to the environment structure. 3797 * @param[in] object The object containing the field. 3798 * @param[in] field The field to set the double value to. 3799 * @param[in] value The double value to assign to the field. 3800 * @return Returns a status code of type `ani_status` indicating success or failure. 3801 */ 3802 ani_status (*Object_SetField_Double)(ani_env *env, ani_object object, ani_field field, ani_double value); 3803 3804 /** 3805 * @brief Sets a reference value to a field of an object. 3806 * 3807 * This function assigns a reference value to the specified field of the given object. 3808 * 3809 * @param[in] env A pointer to the environment structure. 3810 * @param[in] object The object containing the field. 3811 * @param[in] field The field to set the reference value to. 3812 * @param[in] value The reference value to assign to the field. 3813 * @return Returns a status code of type `ani_status` indicating success or failure. 3814 */ 3815 ani_status (*Object_SetField_Ref)(ani_env *env, ani_object object, ani_field field, ani_ref value); 3816 3817 /** 3818 * @brief Retrieves a boolean value from a field of an object by its name. 3819 * 3820 * This function retrieves the boolean value of the specified field from the given object by its name. 3821 * 3822 * @param[in] env A pointer to the environment structure. 3823 * @param[in] object The object containing the field. 3824 * @param[in] name The name of the field to retrieve the boolean value from. 3825 * @param[out] result A pointer to store the retrieved boolean value. 3826 * @return Returns a status code of type `ani_status` indicating success or failure. 3827 */ 3828 ani_status (*Object_GetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean *result); 3829 3830 /** 3831 * @brief Retrieves a char value from a field of an object by its name. 3832 * 3833 * This function retrieves the char value of the specified field from the given object by its name. 3834 * 3835 * @param[in] env A pointer to the environment structure. 3836 * @param[in] object The object containing the field. 3837 * @param[in] name The name of the field to retrieve the char value from. 3838 * @param[out] result A pointer to store the retrieved char value. 3839 * @return Returns a status code of type `ani_status` indicating success or failure. 3840 */ 3841 ani_status (*Object_GetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result); 3842 3843 /** 3844 * @brief Retrieves a byte value from a field of an object by its name. 3845 * 3846 * This function retrieves the byte value of the specified field from the given object by its name. 3847 * 3848 * @param[in] env A pointer to the environment structure. 3849 * @param[in] object The object containing the field. 3850 * @param[in] name The name of the field to retrieve the byte value from. 3851 * @param[out] result A pointer to store the retrieved byte value. 3852 * @return Returns a status code of type `ani_status` indicating success or failure. 3853 */ 3854 ani_status (*Object_GetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result); 3855 3856 /** 3857 * @brief Retrieves a short value from a field of an object by its name. 3858 * 3859 * This function retrieves the short value of the specified field from the given object by its name. 3860 * 3861 * @param[in] env A pointer to the environment structure. 3862 * @param[in] object The object containing the field. 3863 * @param[in] name The name of the field to retrieve the short value from. 3864 * @param[out] result A pointer to store the retrieved short value. 3865 * @return Returns a status code of type `ani_status` indicating success or failure. 3866 */ 3867 ani_status (*Object_GetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result); 3868 3869 /** 3870 * @brief Retrieves a integer value from a field of an object by its name. 3871 * 3872 * This function retrieves the integer value of the specified field from the given object by its name. 3873 * 3874 * @param[in] env A pointer to the environment structure. 3875 * @param[in] object The object containing the field. 3876 * @param[in] name The name of the field to retrieve the integer value from. 3877 * @param[out] result A pointer to store the retrieved integer value. 3878 * @return Returns a status code of type `ani_status` indicating success or failure. 3879 */ 3880 ani_status (*Object_GetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result); 3881 3882 /** 3883 * @brief Retrieves a long value from a field of an object by its name. 3884 * 3885 * This function retrieves the long value of the specified field from the given object by its name. 3886 * 3887 * @param[in] env A pointer to the environment structure. 3888 * @param[in] object The object containing the field. 3889 * @param[in] name The name of the field to retrieve the long value from. 3890 * @param[out] result A pointer to store the retrieved long value. 3891 * @return Returns a status code of type `ani_status` indicating success or failure. 3892 */ 3893 ani_status (*Object_GetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result); 3894 3895 /** 3896 * @brief Retrieves a float value from a field of an object by its name. 3897 * 3898 * This function retrieves the float value of the specified field from the given object by its name. 3899 * 3900 * @param[in] env A pointer to the environment structure. 3901 * @param[in] object The object containing the field. 3902 * @param[in] name The name of the field to retrieve the float value from. 3903 * @param[out] result A pointer to store the retrieved float value. 3904 * @return Returns a status code of type `ani_status` indicating success or failure. 3905 */ 3906 ani_status (*Object_GetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result); 3907 3908 /** 3909 * @brief Retrieves a double value from a field of an object by its name. 3910 * 3911 * This function retrieves the double value of the specified field from the given object by its name. 3912 * 3913 * @param[in] env A pointer to the environment structure. 3914 * @param[in] object The object containing the field. 3915 * @param[in] name The name of the field to retrieve the double value from. 3916 * @param[out] result A pointer to store the retrieved double value. 3917 * @return Returns a status code of type `ani_status` indicating success or failure. 3918 */ 3919 ani_status (*Object_GetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double *result); 3920 3921 /** 3922 * @brief Retrieves a reference value from a field of an object by its name. 3923 * 3924 * This function retrieves the reference value of the specified field from the given object by its name. 3925 * 3926 * @param[in] env A pointer to the environment structure. 3927 * @param[in] object The object containing the field. 3928 * @param[in] name The name of the field to retrieve the reference value from. 3929 * @param[out] result A pointer to store the retrieved reference value. 3930 * @return Returns a status code of type `ani_status` indicating success or failure. 3931 */ 3932 ani_status (*Object_GetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result); 3933 3934 /** 3935 * @brief Sets a boolean value to a field of an object by its name. 3936 * 3937 * This function assigns a boolean value to the specified field of the given object by its name. 3938 * 3939 * @param[in] env A pointer to the environment structure. 3940 * @param[in] object The object containing the field. 3941 * @param[in] name The name of the field to set the boolean value to. 3942 * @param[in] value The boolean value to assign to the field. 3943 * @return Returns a status code of type `ani_status` indicating success or failure. 3944 */ 3945 ani_status (*Object_SetFieldByName_Boolean)(ani_env *env, ani_object object, const char *name, ani_boolean value); 3946 3947 /** 3948 * @brief Sets a char value to a field of an object by its name. 3949 * 3950 * This function assigns a char value to the specified field of the given object by its name. 3951 * 3952 * @param[in] env A pointer to the environment structure. 3953 * @param[in] object The object containing the field. 3954 * @param[in] name The name of the field to set the char value to. 3955 * @param[in] value The char value to assign to the field. 3956 * @return Returns a status code of type `ani_status` indicating success or failure. 3957 */ 3958 ani_status (*Object_SetFieldByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value); 3959 3960 /** 3961 * @brief Sets a byte value to a field of an object by its name. 3962 * 3963 * This function assigns a byte value to the specified field of the given object by its name. 3964 * 3965 * @param[in] env A pointer to the environment structure. 3966 * @param[in] object The object containing the field. 3967 * @param[in] name The name of the field to set the byte value to. 3968 * @param[in] value The byte value to assign to the field. 3969 * @return Returns a status code of type `ani_status` indicating success or failure. 3970 */ 3971 ani_status (*Object_SetFieldByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value); 3972 3973 /** 3974 * @brief Sets a short value to a field of an object by its name. 3975 * 3976 * This function assigns a short value to the specified field of the given object by its name. 3977 * 3978 * @param[in] env A pointer to the environment structure. 3979 * @param[in] object The object containing the field. 3980 * @param[in] name The name of the field to set the short value to. 3981 * @param[in] value The short value to assign to the field. 3982 * @return Returns a status code of type `ani_status` indicating success or failure. 3983 */ 3984 ani_status (*Object_SetFieldByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value); 3985 3986 /** 3987 * @brief Sets a integer value to a field of an object by its name. 3988 * 3989 * This function assigns a integer value to the specified field of the given object by its name. 3990 * 3991 * @param[in] env A pointer to the environment structure. 3992 * @param[in] object The object containing the field. 3993 * @param[in] name The name of the field to set the integer value to. 3994 * @param[in] value The integer value to assign to the field. 3995 * @return Returns a status code of type `ani_status` indicating success or failure. 3996 */ 3997 ani_status (*Object_SetFieldByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value); 3998 3999 /** 4000 * @brief Sets a long value to a field of an object by its name. 4001 * 4002 * This function assigns a long value to the specified field of the given object by its name. 4003 * 4004 * @param[in] env A pointer to the environment structure. 4005 * @param[in] object The object containing the field. 4006 * @param[in] name The name of the field to set the long value to. 4007 * @param[in] value The long value to assign to the field. 4008 * @return Returns a status code of type `ani_status` indicating success or failure. 4009 */ 4010 ani_status (*Object_SetFieldByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value); 4011 4012 /** 4013 * @brief Sets a float value to a field of an object by its name. 4014 * 4015 * This function assigns a float value to the specified field of the given object by its name. 4016 * 4017 * @param[in] env A pointer to the environment structure. 4018 * @param[in] object The object containing the field. 4019 * @param[in] name The name of the field to set the float value to. 4020 * @param[in] value The float value to assign to the field. 4021 * @return Returns a status code of type `ani_status` indicating success or failure. 4022 */ 4023 ani_status (*Object_SetFieldByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value); 4024 4025 /** 4026 * @brief Sets a double value to a field of an object by its name. 4027 * 4028 * This function assigns a double value to the specified field of the given object by its name. 4029 * 4030 * @param[in] env A pointer to the environment structure. 4031 * @param[in] object The object containing the field. 4032 * @param[in] name The name of the field to set the double value to. 4033 * @param[in] value The double value to assign to the field. 4034 * @return Returns a status code of type `ani_status` indicating success or failure. 4035 */ 4036 ani_status (*Object_SetFieldByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value); 4037 4038 /** 4039 * @brief Sets a reference value to a field of an object by its name. 4040 * 4041 * This function assigns a reference value to the specified field of the given object by its name. 4042 * 4043 * @param[in] env A pointer to the environment structure. 4044 * @param[in] object The object containing the field. 4045 * @param[in] name The name of the field to set the reference value to. 4046 * @param[in] value The reference value to assign to the field. 4047 * @return Returns a status code of type `ani_status` indicating success or failure. 4048 */ 4049 ani_status (*Object_SetFieldByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value); 4050 4051 /** 4052 * @brief Retrieves a boolean value from a property of an object by its name. 4053 * 4054 * This function retrieves the boolean value of the specified property from the given object by its name. 4055 * 4056 * @param[in] env A pointer to the environment structure. 4057 * @param[in] object The object containing the property. 4058 * @param[in] name The name of the property to retrieve the boolean value from. 4059 * @param[out] result A pointer to store the retrieved boolean value. 4060 * @return Returns a status code of type `ani_status` indicating success or failure. 4061 */ 4062 ani_status (*Object_GetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name, 4063 ani_boolean *result); 4064 4065 /** 4066 * @brief Retrieves a char value from a property of an object by its name. 4067 * 4068 * This function retrieves the char value of the specified property from the given object by its name. 4069 * 4070 * @param[in] env A pointer to the environment structure. 4071 * @param[in] object The object containing the property. 4072 * @param[in] name The name of the property to retrieve the char value from. 4073 * @param[out] result A pointer to store the retrieved char value. 4074 * @return Returns a status code of type `ani_status` indicating success or failure. 4075 */ 4076 ani_status (*Object_GetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char *result); 4077 4078 /** 4079 * @brief Retrieves a byte value from a property of an object by its name. 4080 * 4081 * This function retrieves the byte value of the specified property from the given object by its name. 4082 * 4083 * @param[in] env A pointer to the environment structure. 4084 * @param[in] object The object containing the property. 4085 * @param[in] name The name of the property to retrieve the byte value from. 4086 * @param[out] result A pointer to store the retrieved byte value. 4087 * @return Returns a status code of type `ani_status` indicating success or failure. 4088 */ 4089 ani_status (*Object_GetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte *result); 4090 4091 /** 4092 * @brief Retrieves a short value from a property of an object by its name. 4093 * 4094 * This function retrieves the short value of the specified property from the given object by its name. 4095 * 4096 * @param[in] env A pointer to the environment structure. 4097 * @param[in] object The object containing the property. 4098 * @param[in] name The name of the property to retrieve the short value from. 4099 * @param[out] result A pointer to store the retrieved short value. 4100 * @return Returns a status code of type `ani_status` indicating success or failure. 4101 */ 4102 ani_status (*Object_GetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short *result); 4103 4104 /** 4105 * @brief Retrieves a integer value from a property of an object by its name. 4106 * 4107 * This function retrieves the integer value of the specified property from the given object by its name. 4108 * 4109 * @param[in] env A pointer to the environment structure. 4110 * @param[in] object The object containing the property. 4111 * @param[in] name The name of the property to retrieve the integer value from. 4112 * @param[out] result A pointer to store the retrieved integer value. 4113 * @return Returns a status code of type `ani_status` indicating success or failure. 4114 */ 4115 ani_status (*Object_GetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int *result); 4116 4117 /** 4118 * @brief Retrieves a long value from a property of an object by its name. 4119 * 4120 * This function retrieves the long value of the specified property from the given object by its name. 4121 * 4122 * @param[in] env A pointer to the environment structure. 4123 * @param[in] object The object containing the property. 4124 * @param[in] name The name of the property to retrieve the long value from. 4125 * @param[out] result A pointer to store the retrieved long value. 4126 * @return Returns a status code of type `ani_status` indicating success or failure. 4127 */ 4128 ani_status (*Object_GetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long *result); 4129 4130 /** 4131 * @brief Retrieves a float value from a property of an object by its name. 4132 * 4133 * This function retrieves the float value of the specified property from the given object by its name. 4134 * 4135 * @param[in] env A pointer to the environment structure. 4136 * @param[in] object The object containing the property. 4137 * @param[in] name The name of the property to retrieve the float value from. 4138 * @param[out] result A pointer to store the retrieved float value. 4139 * @return Returns a status code of type `ani_status` indicating success or failure. 4140 */ 4141 ani_status (*Object_GetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float *result); 4142 4143 /** 4144 * @brief Retrieves a double value from a property of an object by its name. 4145 * 4146 * This function retrieves the double value of the specified property from the given object by its name. 4147 * 4148 * @param[in] env A pointer to the environment structure. 4149 * @param[in] object The object containing the property. 4150 * @param[in] name The name of the property to retrieve the double value from. 4151 * @param[out] result A pointer to store the retrieved double value. 4152 * @return Returns a status code of type `ani_status` indicating success or failure. 4153 */ 4154 ani_status (*Object_GetPropertyByName_Double)(ani_env *env, ani_object object, const char *name, 4155 ani_double *result); 4156 4157 /** 4158 * @brief Retrieves a reference value from a property of an object by its name. 4159 * 4160 * This function retrieves the reference value of the specified property from the given object by its name. 4161 * 4162 * @param[in] env A pointer to the environment structure. 4163 * @param[in] object The object containing the property. 4164 * @param[in] name The name of the property to retrieve the reference value from. 4165 * @param[out] result A pointer to store the retrieved reference value. 4166 * @return Returns a status code of type `ani_status` indicating success or failure. 4167 */ 4168 ani_status (*Object_GetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref *result); 4169 4170 /** 4171 * @brief Sets a boolean value to a property of an object by its name. 4172 * 4173 * This function assigns a boolean value to the specified property of the given object by its name. 4174 * 4175 * @param[in] env A pointer to the environment structure. 4176 * @param[in] object The object containing the property. 4177 * @param[in] name The name of the property to set the boolean value to. 4178 * @param[in] value The boolean value to assign to the property. 4179 * @return Returns a status code of type `ani_status` indicating success or failure. 4180 */ 4181 ani_status (*Object_SetPropertyByName_Boolean)(ani_env *env, ani_object object, const char *name, 4182 ani_boolean value); 4183 4184 /** 4185 * @brief Sets a char value to a property of an object by its name. 4186 * 4187 * This function assigns a char value to the specified property of the given object by its name. 4188 * 4189 * @param[in] env A pointer to the environment structure. 4190 * @param[in] object The object containing the property. 4191 * @param[in] name The name of the property to set the char value to. 4192 * @param[in] value The char value to assign to the property. 4193 * @return Returns a status code of type `ani_status` indicating success or failure. 4194 */ 4195 ani_status (*Object_SetPropertyByName_Char)(ani_env *env, ani_object object, const char *name, ani_char value); 4196 4197 /** 4198 * @brief Sets a byte value to a property of an object by its name. 4199 * 4200 * This function assigns a byte value to the specified property of the given object by its name. 4201 * 4202 * @param[in] env A pointer to the environment structure. 4203 * @param[in] object The object containing the property. 4204 * @param[in] name The name of the property to set the byte value to. 4205 * @param[in] value The byte value to assign to the property. 4206 * @return Returns a status code of type `ani_status` indicating success or failure. 4207 */ 4208 ani_status (*Object_SetPropertyByName_Byte)(ani_env *env, ani_object object, const char *name, ani_byte value); 4209 4210 /** 4211 * @brief Sets a short value to a property of an object by its name. 4212 * 4213 * This function assigns a short value to the specified property of the given object by its name. 4214 * 4215 * @param[in] env A pointer to the environment structure. 4216 * @param[in] object The object containing the property. 4217 * @param[in] name The name of the property to set the short value to. 4218 * @param[in] value The short value to assign to the property. 4219 * @return Returns a status code of type `ani_status` indicating success or failure. 4220 */ 4221 ani_status (*Object_SetPropertyByName_Short)(ani_env *env, ani_object object, const char *name, ani_short value); 4222 4223 /** 4224 * @brief Sets a integer value to a property of an object by its name. 4225 * 4226 * This function assigns a integer value to the specified property of the given object by its name. 4227 * 4228 * @param[in] env A pointer to the environment structure. 4229 * @param[in] object The object containing the property. 4230 * @param[in] name The name of the property to set the integer value to. 4231 * @param[in] value The integer value to assign to the property. 4232 * @return Returns a status code of type `ani_status` indicating success or failure. 4233 */ 4234 ani_status (*Object_SetPropertyByName_Int)(ani_env *env, ani_object object, const char *name, ani_int value); 4235 4236 /** 4237 * @brief Sets a long value to a property of an object by its name. 4238 * 4239 * This function assigns a long value to the specified property of the given object by its name. 4240 * 4241 * @param[in] env A pointer to the environment structure. 4242 * @param[in] object The object containing the property. 4243 * @param[in] name The name of the property to set the long value to. 4244 * @param[in] value The long value to assign to the property. 4245 * @return Returns a status code of type `ani_status` indicating success or failure. 4246 */ 4247 ani_status (*Object_SetPropertyByName_Long)(ani_env *env, ani_object object, const char *name, ani_long value); 4248 4249 /** 4250 * @brief Sets a float value to a property of an object by its name. 4251 * 4252 * This function assigns a float value to the specified property of the given object by its name. 4253 * 4254 * @param[in] env A pointer to the environment structure. 4255 * @param[in] object The object containing the property. 4256 * @param[in] name The name of the property to set the float value to. 4257 * @param[in] value The float value to assign to the property. 4258 * @return Returns a status code of type `ani_status` indicating success or failure. 4259 */ 4260 ani_status (*Object_SetPropertyByName_Float)(ani_env *env, ani_object object, const char *name, ani_float value); 4261 4262 /** 4263 * @brief Sets a double value to a property of an object by its name. 4264 * 4265 * This function assigns a double value to the specified property of the given object by its name. 4266 * 4267 * @param[in] env A pointer to the environment structure. 4268 * @param[in] object The object containing the property. 4269 * @param[in] name The name of the property to set the double value to. 4270 * @param[in] value The double value to assign to the property. 4271 * @return Returns a status code of type `ani_status` indicating success or failure. 4272 */ 4273 ani_status (*Object_SetPropertyByName_Double)(ani_env *env, ani_object object, const char *name, ani_double value); 4274 4275 /** 4276 * @brief Sets a reference value to a property of an object by its name. 4277 * 4278 * This function assigns a reference value to the specified property of the given object by its name. 4279 * 4280 * @param[in] env A pointer to the environment structure. 4281 * @param[in] object The object containing the property. 4282 * @param[in] name The name of the property to set the reference value to. 4283 * @param[in] value The reference value to assign to the property. 4284 * @return Returns a status code of type `ani_status` indicating success or failure. 4285 */ 4286 ani_status (*Object_SetPropertyByName_Ref)(ani_env *env, ani_object object, const char *name, ani_ref value); 4287 4288 /** 4289 * @brief Calls a method on an object and retrieves a boolean return value. 4290 * 4291 * This function calls the specified method of an object using variadic arguments and retrieves a boolean result. 4292 * 4293 * @param[in] env A pointer to the environment structure. 4294 * @param[in] object The object on which the method is to be called. 4295 * @param[in] method The method to call. 4296 * @param[out] result A pointer to store the boolean return value. 4297 * @param[in] ... Variadic arguments to pass to the method. 4298 * @return Returns a status code of type `ani_status` indicating success or failure. 4299 */ 4300 ani_status (*Object_CallMethod_Boolean)(ani_env *env, ani_object object, ani_method method, ani_boolean *result, 4301 ...); 4302 4303 /** 4304 * @brief Calls a method on an object and retrieves a boolean return value (array-based). 4305 * 4306 * This function calls the specified method of an object using arguments provided in an array and retrieves a 4307 * boolean result. 4308 * 4309 * @param[in] env A pointer to the environment structure. 4310 * @param[in] object The object on which the method is to be called. 4311 * @param[in] method The method to call. 4312 * @param[out] result A pointer to store the boolean return value. 4313 * @param[in] args An array of arguments to pass to the method. 4314 * @return Returns a status code of type `ani_status` indicating success or failure. 4315 */ 4316 ani_status (*Object_CallMethod_Boolean_A)(ani_env *env, ani_object object, ani_method method, ani_boolean *result, 4317 const ani_value *args); 4318 4319 /** 4320 * @brief Calls a method on an object and retrieves a boolean return value (variadic arguments). 4321 * 4322 * This function calls the specified method of an object using a `va_list` and retrieves a boolean result. 4323 * 4324 * @param[in] env A pointer to the environment structure. 4325 * @param[in] object The object on which the method is to be called. 4326 * @param[in] method The method to call. 4327 * @param[out] result A pointer to store the boolean return value. 4328 * @param[in] args A `va_list` of arguments to pass to the method. 4329 * @return Returns a status code of type `ani_status` indicating success or failure. 4330 */ 4331 ani_status (*Object_CallMethod_Boolean_V)(ani_env *env, ani_object object, ani_method method, ani_boolean *result, 4332 va_list args); 4333 4334 /** 4335 * @brief Calls a method on an object and retrieves a char return value. 4336 * 4337 * This function calls the specified method of an object using variadic arguments and retrieves a char result. 4338 * 4339 * @param[in] env A pointer to the environment structure. 4340 * @param[in] object The object on which the method is to be called. 4341 * @param[in] method The method to call. 4342 * @param[out] result A pointer to store the char return value. 4343 * @param[in] ... Variadic arguments to pass to the method. 4344 * @return Returns a status code of type `ani_status` indicating success or failure. 4345 */ 4346 ani_status (*Object_CallMethod_Char)(ani_env *env, ani_object object, ani_method method, ani_char *result, ...); 4347 4348 /** 4349 * @brief Calls a method on an object and retrieves a char return value (array-based). 4350 * 4351 * This function calls the specified method of an object using arguments provided in an array and retrieves a char 4352 * result. 4353 * 4354 * @param[in] env A pointer to the environment structure. 4355 * @param[in] object The object on which the method is to be called. 4356 * @param[in] method The method to call. 4357 * @param[out] result A pointer to store the char return value. 4358 * @param[in] args An array of arguments to pass to the method. 4359 * @return Returns a status code of type `ani_status` indicating success or failure. 4360 */ 4361 ani_status (*Object_CallMethod_Char_A)(ani_env *env, ani_object object, ani_method method, ani_char *result, 4362 const ani_value *args); 4363 4364 /** 4365 * @brief Calls a method on an object and retrieves a char return value (variadic arguments). 4366 * 4367 * This function calls the specified method of an object using a `va_list` and retrieves a char result. 4368 * 4369 * @param[in] env A pointer to the environment structure. 4370 * @param[in] object The object on which the method is to be called. 4371 * @param[in] method The method to call. 4372 * @param[out] result A pointer to store the char return value. 4373 * @param[in] args A `va_list` of arguments to pass to the method. 4374 * @return Returns a status code of type `ani_status` indicating success or failure. 4375 */ 4376 ani_status (*Object_CallMethod_Char_V)(ani_env *env, ani_object object, ani_method method, ani_char *result, 4377 va_list args); 4378 4379 /** 4380 * @brief Calls a method on an object and retrieves a byte return value. 4381 * 4382 * This function calls the specified method of an object using variadic arguments and retrieves a byte result. 4383 * 4384 * @param[in] env A pointer to the environment structure. 4385 * @param[in] object The object on which the method is to be called. 4386 * @param[in] method The method to call. 4387 * @param[out] result A pointer to store the byte return value. 4388 * @param[in] ... Variadic arguments to pass to the method. 4389 * @return Returns a status code of type `ani_status` indicating success or failure. 4390 */ 4391 ani_status (*Object_CallMethod_Byte)(ani_env *env, ani_object object, ani_method method, ani_byte *result, ...); 4392 4393 /** 4394 * @brief Calls a method on an object and retrieves a byte return value (array-based). 4395 * 4396 * This function calls the specified method of an object using arguments provided in an array and retrieves a byte 4397 * result. 4398 * 4399 * @param[in] env A pointer to the environment structure. 4400 * @param[in] object The object on which the method is to be called. 4401 * @param[in] method The method to call. 4402 * @param[out] result A pointer to store the byte return value. 4403 * @param[in] args An array of arguments to pass to the method. 4404 * @return Returns a status code of type `ani_status` indicating success or failure. 4405 */ 4406 ani_status (*Object_CallMethod_Byte_A)(ani_env *env, ani_object object, ani_method method, ani_byte *result, 4407 const ani_value *args); 4408 4409 /** 4410 * @brief Calls a method on an object and retrieves a byte return value (variadic arguments). 4411 * 4412 * This function calls the specified method of an object using a `va_list` and retrieves a byte result. 4413 * 4414 * @param[in] env A pointer to the environment structure. 4415 * @param[in] object The object on which the method is to be called. 4416 * @param[in] method The method to call. 4417 * @param[out] result A pointer to store the byte return value. 4418 * @param[in] args A `va_list` of arguments to pass to the method. 4419 * @return Returns a status code of type `ani_status` indicating success or failure. 4420 */ 4421 ani_status (*Object_CallMethod_Byte_V)(ani_env *env, ani_object object, ani_method method, ani_byte *result, 4422 va_list args); 4423 4424 /** 4425 * @brief Calls a method on an object and retrieves a short return value. 4426 * 4427 * This function calls the specified method of an object using variadic arguments and retrieves a short result. 4428 * 4429 * @param[in] env A pointer to the environment structure. 4430 * @param[in] object The object on which the method is to be called. 4431 * @param[in] method The method to call. 4432 * @param[out] result A pointer to store the short return value. 4433 * @param[in] ... Variadic arguments to pass to the method. 4434 * @return Returns a status code of type `ani_status` indicating success or failure. 4435 */ 4436 ani_status (*Object_CallMethod_Short)(ani_env *env, ani_object object, ani_method method, ani_short *result, ...); 4437 4438 /** 4439 * @brief Calls a method on an object and retrieves a short return value (array-based). 4440 * 4441 * This function calls the specified method of an object using arguments provided in an array and retrieves a short 4442 * result. 4443 * 4444 * @param[in] env A pointer to the environment structure. 4445 * @param[in] object The object on which the method is to be called. 4446 * @param[in] method The method to call. 4447 * @param[out] result A pointer to store the short return value. 4448 * @param[in] args An array of arguments to pass to the method. 4449 * @return Returns a status code of type `ani_status` indicating success or failure. 4450 */ 4451 ani_status (*Object_CallMethod_Short_A)(ani_env *env, ani_object object, ani_method method, ani_short *result, 4452 const ani_value *args); 4453 4454 /** 4455 * @brief Calls a method on an object and retrieves a short return value (variadic arguments). 4456 * 4457 * This function calls the specified method of an object using a `va_list` and retrieves a short result. 4458 * 4459 * @param[in] env A pointer to the environment structure. 4460 * @param[in] object The object on which the method is to be called. 4461 * @param[in] method The method to call. 4462 * @param[out] result A pointer to store the short return value. 4463 * @param[in] args A `va_list` of arguments to pass to the method. 4464 * @return Returns a status code of type `ani_status` indicating success or failure. 4465 */ 4466 ani_status (*Object_CallMethod_Short_V)(ani_env *env, ani_object object, ani_method method, ani_short *result, 4467 va_list args); 4468 4469 /** 4470 * @brief Calls a method on an object and retrieves a integer return value. 4471 * 4472 * This function calls the specified method of an object using variadic arguments and retrieves a integer result. 4473 * 4474 * @param[in] env A pointer to the environment structure. 4475 * @param[in] object The object on which the method is to be called. 4476 * @param[in] method The method to call. 4477 * @param[out] result A pointer to store the integer return value. 4478 * @param[in] ... Variadic arguments to pass to the method. 4479 * @return Returns a status code of type `ani_status` indicating success or failure. 4480 */ 4481 ani_status (*Object_CallMethod_Int)(ani_env *env, ani_object object, ani_method method, ani_int *result, ...); 4482 4483 /** 4484 * @brief Calls a method on an object and retrieves a integer return value (array-based). 4485 * 4486 * This function calls the specified method of an object using arguments provided in an array and retrieves a 4487 * integer result. 4488 * 4489 * @param[in] env A pointer to the environment structure. 4490 * @param[in] object The object on which the method is to be called. 4491 * @param[in] method The method to call. 4492 * @param[out] result A pointer to store the integer return value. 4493 * @param[in] args An array of arguments to pass to the method. 4494 * @return Returns a status code of type `ani_status` indicating success or failure. 4495 */ 4496 ani_status (*Object_CallMethod_Int_A)(ani_env *env, ani_object object, ani_method method, ani_int *result, 4497 const ani_value *args); 4498 4499 /** 4500 * @brief Calls a method on an object and retrieves a integer return value (variadic arguments). 4501 * 4502 * This function calls the specified method of an object using a `va_list` and retrieves a integer result. 4503 * 4504 * @param[in] env A pointer to the environment structure. 4505 * @param[in] object The object on which the method is to be called. 4506 * @param[in] method The method to call. 4507 * @param[out] result A pointer to store the integer return value. 4508 * @param[in] args A `va_list` of arguments to pass to the method. 4509 * @return Returns a status code of type `ani_status` indicating success or failure. 4510 */ 4511 ani_status (*Object_CallMethod_Int_V)(ani_env *env, ani_object object, ani_method method, ani_int *result, 4512 va_list args); 4513 4514 /** 4515 * @brief Calls a method on an object and retrieves a long return value. 4516 * 4517 * This function calls the specified method of an object using variadic arguments and retrieves a long result. 4518 * 4519 * @param[in] env A pointer to the environment structure. 4520 * @param[in] object The object on which the method is to be called. 4521 * @param[in] method The method to call. 4522 * @param[out] result A pointer to store the long return value. 4523 * @param[in] ... Variadic arguments to pass to the method. 4524 * @return Returns a status code of type `ani_status` indicating success or failure. 4525 */ 4526 ani_status (*Object_CallMethod_Long)(ani_env *env, ani_object object, ani_method method, ani_long *result, ...); 4527 4528 /** 4529 * @brief Calls a method on an object and retrieves a long return value (array-based). 4530 * 4531 * This function calls the specified method of an object using arguments provided in an array and retrieves a long 4532 * result. 4533 * 4534 * @param[in] env A pointer to the environment structure. 4535 * @param[in] object The object on which the method is to be called. 4536 * @param[in] method The method to call. 4537 * @param[out] result A pointer to store the long return value. 4538 * @param[in] args An array of arguments to pass to the method. 4539 * @return Returns a status code of type `ani_status` indicating success or failure. 4540 */ 4541 ani_status (*Object_CallMethod_Long_A)(ani_env *env, ani_object object, ani_method method, ani_long *result, 4542 const ani_value *args); 4543 4544 /** 4545 * @brief Calls a method on an object and retrieves a long return value (variadic arguments). 4546 * 4547 * This function calls the specified method of an object using a `va_list` and retrieves a long result. 4548 * 4549 * @param[in] env A pointer to the environment structure. 4550 * @param[in] object The object on which the method is to be called. 4551 * @param[in] method The method to call. 4552 * @param[out] result A pointer to store the long return value. 4553 * @param[in] args A `va_list` of arguments to pass to the method. 4554 * @return Returns a status code of type `ani_status` indicating success or failure. 4555 */ 4556 ani_status (*Object_CallMethod_Long_V)(ani_env *env, ani_object object, ani_method method, ani_long *result, 4557 va_list args); 4558 4559 /** 4560 * @brief Calls a method on an object and retrieves a float return value. 4561 * 4562 * This function calls the specified method of an object using variadic arguments and retrieves a float result. 4563 * 4564 * @param[in] env A pointer to the environment structure. 4565 * @param[in] object The object on which the method is to be called. 4566 * @param[in] method The method to call. 4567 * @param[out] result A pointer to store the float return value. 4568 * @param[in] ... Variadic arguments to pass to the method. 4569 * @return Returns a status code of type `ani_status` indicating success or failure. 4570 */ 4571 ani_status (*Object_CallMethod_Float)(ani_env *env, ani_object object, ani_method method, ani_float *result, ...); 4572 4573 /** 4574 * @brief Calls a method on an object and retrieves a float return value (array-based). 4575 * 4576 * This function calls the specified method of an object using arguments provided in an array and retrieves a float 4577 * result. 4578 * 4579 * @param[in] env A pointer to the environment structure. 4580 * @param[in] object The object on which the method is to be called. 4581 * @param[in] method The method to call. 4582 * @param[out] result A pointer to store the float return value. 4583 * @param[in] args An array of arguments to pass to the method. 4584 * @return Returns a status code of type `ani_status` indicating success or failure. 4585 */ 4586 ani_status (*Object_CallMethod_Float_A)(ani_env *env, ani_object object, ani_method method, ani_float *result, 4587 const ani_value *args); 4588 4589 /** 4590 * @brief Calls a method on an object and retrieves a float return value (variadic arguments). 4591 * 4592 * This function calls the specified method of an object using a `va_list` and retrieves a float result. 4593 * 4594 * @param[in] env A pointer to the environment structure. 4595 * @param[in] object The object on which the method is to be called. 4596 * @param[in] method The method to call. 4597 * @param[out] result A pointer to store the float return value. 4598 * @param[in] args A `va_list` of arguments to pass to the method. 4599 * @return Returns a status code of type `ani_status` indicating success or failure. 4600 */ 4601 ani_status (*Object_CallMethod_Float_V)(ani_env *env, ani_object object, ani_method method, ani_float *result, 4602 va_list args); 4603 4604 /** 4605 * @brief Calls a method on an object and retrieves a double return value. 4606 * 4607 * This function calls the specified method of an object using variadic arguments and retrieves a double result. 4608 * 4609 * @param[in] env A pointer to the environment structure. 4610 * @param[in] object The object on which the method is to be called. 4611 * @param[in] method The method to call. 4612 * @param[out] result A pointer to store the double return value. 4613 * @param[in] ... Variadic arguments to pass to the method. 4614 * @return Returns a status code of type `ani_status` indicating success or failure. 4615 */ 4616 ani_status (*Object_CallMethod_Double)(ani_env *env, ani_object object, ani_method method, ani_double *result, ...); 4617 4618 /** 4619 * @brief Calls a method on an object and retrieves a double return value (array-based). 4620 * 4621 * This function calls the specified method of an object using arguments provided in an array and retrieves a double 4622 * result. 4623 * 4624 * @param[in] env A pointer to the environment structure. 4625 * @param[in] object The object on which the method is to be called. 4626 * @param[in] method The method to call. 4627 * @param[out] result A pointer to store the double return value. 4628 * @param[in] args An array of arguments to pass to the method. 4629 * @return Returns a status code of type `ani_status` indicating success or failure. 4630 */ 4631 ani_status (*Object_CallMethod_Double_A)(ani_env *env, ani_object object, ani_method method, ani_double *result, 4632 const ani_value *args); 4633 4634 /** 4635 * @brief Calls a method on an object and retrieves a double return value (variadic arguments). 4636 * 4637 * This function calls the specified method of an object using a `va_list` and retrieves a double result. 4638 * 4639 * @param[in] env A pointer to the environment structure. 4640 * @param[in] object The object on which the method is to be called. 4641 * @param[in] method The method to call. 4642 * @param[out] result A pointer to store the double return value. 4643 * @param[in] args A `va_list` of arguments to pass to the method. 4644 * @return Returns a status code of type `ani_status` indicating success or failure. 4645 */ 4646 ani_status (*Object_CallMethod_Double_V)(ani_env *env, ani_object object, ani_method method, ani_double *result, 4647 va_list args); 4648 4649 /** 4650 * @brief Calls a method on an object and retrieves a reference return value. 4651 * 4652 * This function calls the specified method of an object using variadic arguments and retrieves a reference result. 4653 * 4654 * @param[in] env A pointer to the environment structure. 4655 * @param[in] object The object on which the method is to be called. 4656 * @param[in] method The method to call. 4657 * @param[out] result A pointer to store the reference return value. 4658 * @param[in] ... Variadic arguments to pass to the method. 4659 * @return Returns a status code of type `ani_status` indicating success or failure. 4660 */ 4661 ani_status (*Object_CallMethod_Ref)(ani_env *env, ani_object object, ani_method method, ani_ref *result, ...); 4662 4663 /** 4664 * @brief Calls a method on an object and retrieves a reference return value (array-based). 4665 * 4666 * This function calls the specified method of an object using arguments provided in an array and retrieves a 4667 * reference result. 4668 * 4669 * @param[in] env A pointer to the environment structure. 4670 * @param[in] object The object on which the method is to be called. 4671 * @param[in] method The method to call. 4672 * @param[out] result A pointer to store the reference return value. 4673 * @param[in] args An array of arguments to pass to the method. 4674 * @return Returns a status code of type `ani_status` indicating success or failure. 4675 */ 4676 ani_status (*Object_CallMethod_Ref_A)(ani_env *env, ani_object object, ani_method method, ani_ref *result, 4677 const ani_value *args); 4678 4679 /** 4680 * @brief Calls a method on an object and retrieves a reference return value (variadic arguments). 4681 * 4682 * This function calls the specified method of an object using a `va_list` and retrieves a reference result. 4683 * 4684 * @param[in] env A pointer to the environment structure. 4685 * @param[in] object The object on which the method is to be called. 4686 * @param[in] method The method to call. 4687 * @param[out] result A pointer to store the reference return value. 4688 * @param[in] args A `va_list` of arguments to pass to the method. 4689 * @return Returns a status code of type `ani_status` indicating success or failure. 4690 */ 4691 ani_status (*Object_CallMethod_Ref_V)(ani_env *env, ani_object object, ani_method method, ani_ref *result, 4692 va_list args); 4693 4694 /** 4695 * @brief Calls a method on an object with no return value. 4696 * 4697 * This function calls the specified method of an object using variadic arguments. The method does not return a 4698 * value. 4699 * 4700 * @param[in] env A pointer to the environment structure. 4701 * @param[in] object The object on which the method is to be called. 4702 * @param[in] method The method to call. 4703 * @param[in] ... Variadic arguments to pass to the method. 4704 * @return Returns a status code of type `ani_status` indicating success or failure. 4705 */ 4706 ani_status (*Object_CallMethod_Void)(ani_env *env, ani_object object, ani_method method, ...); 4707 4708 /** 4709 * @brief Calls a method on an object with no return value (array-based). 4710 * 4711 * This function calls the specified method of an object using arguments provided in an array. The method does not 4712 * return a value. 4713 * 4714 * @param[in] env A pointer to the environment structure. 4715 * @param[in] object The object on which the method is to be called. 4716 * @param[in] method The method to call. 4717 * @param[in] args An array of arguments to pass to the method. 4718 * @return Returns a status code of type `ani_status` indicating success or failure. 4719 */ 4720 ani_status (*Object_CallMethod_Void_A)(ani_env *env, ani_object object, ani_method method, const ani_value *args); 4721 4722 /** 4723 * @brief Calls a method on an object with no return value (variadic arguments). 4724 * 4725 * This function calls the specified method of an object using a `va_list`. The method does not return a value. 4726 * 4727 * @param[in] env A pointer to the environment structure. 4728 * @param[in] object The object on which the method is to be called. 4729 * @param[in] method The method to call. 4730 * @param[in] args A `va_list` of arguments to pass to the method. 4731 * @return Returns a status code of type `ani_status` indicating success or failure. 4732 */ 4733 ani_status (*Object_CallMethod_Void_V)(ani_env *env, ani_object object, ani_method method, va_list args); 4734 4735 /** 4736 * @brief Calls a method by name on an object and retrieves a boolean return value. 4737 * 4738 * This function calls the specified method by its name and signature on an object using variadic arguments and 4739 * retrieves a boolean result. 4740 * 4741 * @param[in] env A pointer to the environment structure. 4742 * @param[in] object The object on which the method is to be called. 4743 * @param[in] name The name of the method to call. 4744 * @param[in] signature The signature of the method to call. 4745 * @param[out] result A pointer to store the boolean return value. 4746 * @param[in] ... Variadic arguments to pass to the method. 4747 * @return Returns a status code of type `ani_status` indicating success or failure. 4748 */ 4749 ani_status (*Object_CallMethodByName_Boolean)(ani_env *env, ani_object object, const char *name, 4750 const char *signature, ani_boolean *result, ...); 4751 4752 /** 4753 * @brief Calls a method by name on an object and retrieves a boolean return value (array-based). 4754 * 4755 * This function calls the specified method by its name and signature on an object using arguments provided in an 4756 * array and retrieves a boolean result. 4757 * 4758 * @param[in] env A pointer to the environment structure. 4759 * @param[in] object The object on which the method is to be called. 4760 * @param[in] name The name of the method to call. 4761 * @param[in] signature The signature of the method to call. 4762 * @param[out] result A pointer to store the boolean return value. 4763 * @param[in] args An array of arguments to pass to the method. 4764 * @return Returns a status code of type `ani_status` indicating success or failure. 4765 */ 4766 ani_status (*Object_CallMethodByName_Boolean_A)(ani_env *env, ani_object object, const char *name, 4767 const char *signature, ani_boolean *result, const ani_value *args); 4768 4769 /** 4770 * @brief Calls a method by name on an object and retrieves a boolean return value (variadic arguments). 4771 * 4772 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 4773 * boolean result. 4774 * 4775 * @param[in] env A pointer to the environment structure. 4776 * @param[in] object The object on which the method is to be called. 4777 * @param[in] name The name of the method to call. 4778 * @param[in] signature The signature of the method to call. 4779 * @param[out] result A pointer to store the boolean return value. 4780 * @param[in] args A `va_list` of arguments to pass to the method. 4781 * @return Returns a status code of type `ani_status` indicating success or failure. 4782 */ 4783 ani_status (*Object_CallMethodByName_Boolean_V)(ani_env *env, ani_object object, const char *name, 4784 const char *signature, ani_boolean *result, va_list args); 4785 4786 /** 4787 * @brief Calls a method by name on an object and retrieves a char return value. 4788 * 4789 * This function calls the specified method by its name and signature on an object using variadic arguments and 4790 * retrieves a char result. 4791 * 4792 * @param[in] env A pointer to the environment structure. 4793 * @param[in] object The object on which the method is to be called. 4794 * @param[in] name The name of the method to call. 4795 * @param[in] signature The signature of the method to call. 4796 * @param[out] result A pointer to store the char return value. 4797 * @param[in] ... Variadic arguments to pass to the method. 4798 * @return Returns a status code of type `ani_status` indicating success or failure. 4799 */ 4800 ani_status (*Object_CallMethodByName_Char)(ani_env *env, ani_object object, const char *name, const char *signature, 4801 ani_char *result, ...); 4802 4803 /** 4804 * @brief Calls a method by name on an object and retrieves a char return value (array-based). 4805 * 4806 * This function calls the specified method by its name and signature on an object using arguments provided in an 4807 * array and retrieves a char result. 4808 * 4809 * @param[in] env A pointer to the environment structure. 4810 * @param[in] object The object on which the method is to be called. 4811 * @param[in] name The name of the method to call. 4812 * @param[in] signature The signature of the method to call. 4813 * @param[out] result A pointer to store the char return value. 4814 * @param[in] args An array of arguments to pass to the method. 4815 * @return Returns a status code of type `ani_status` indicating success or failure. 4816 */ 4817 ani_status (*Object_CallMethodByName_Char_A)(ani_env *env, ani_object object, const char *name, 4818 const char *signature, ani_char *result, const ani_value *args); 4819 4820 /** 4821 * @brief Calls a method by name on an object and retrieves a char return value (variadic arguments). 4822 * 4823 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 4824 * char result. 4825 * 4826 * @param[in] env A pointer to the environment structure. 4827 * @param[in] object The object on which the method is to be called. 4828 * @param[in] name The name of the method to call. 4829 * @param[in] signature The signature of the method to call. 4830 * @param[out] result A pointer to store the char return value. 4831 * @param[in] args A `va_list` of arguments to pass to the method. 4832 * @return Returns a status code of type `ani_status` indicating success or failure. 4833 */ 4834 ani_status (*Object_CallMethodByName_Char_V)(ani_env *env, ani_object object, const char *name, 4835 const char *signature, ani_char *result, va_list args); 4836 4837 /** 4838 * @brief Calls a method by name on an object and retrieves a byte return value. 4839 * 4840 * This function calls the specified method by its name and signature on an object using variadic arguments and 4841 * retrieves a byte result. 4842 * 4843 * @param[in] env A pointer to the environment structure. 4844 * @param[in] object The object on which the method is to be called. 4845 * @param[in] name The name of the method to call. 4846 * @param[in] signature The signature of the method to call. 4847 * @param[out] result A pointer to store the byte return value. 4848 * @param[in] ... Variadic arguments to pass to the method. 4849 * @return Returns a status code of type `ani_status` indicating success or failure. 4850 */ 4851 ani_status (*Object_CallMethodByName_Byte)(ani_env *env, ani_object object, const char *name, const char *signature, 4852 ani_byte *result, ...); 4853 4854 /** 4855 * @brief Calls a method by name on an object and retrieves a byte return value (array-based). 4856 * 4857 * This function calls the specified method by its name and signature on an object using arguments provided in an 4858 * array and retrieves a byte result. 4859 * 4860 * @param[in] env A pointer to the environment structure. 4861 * @param[in] object The object on which the method is to be called. 4862 * @param[in] name The name of the method to call. 4863 * @param[in] signature The signature of the method to call. 4864 * @param[out] result A pointer to store the byte return value. 4865 * @param[in] args An array of arguments to pass to the method. 4866 * @return Returns a status code of type `ani_status` indicating success or failure. 4867 */ 4868 ani_status (*Object_CallMethodByName_Byte_A)(ani_env *env, ani_object object, const char *name, 4869 const char *signature, ani_byte *result, const ani_value *args); 4870 4871 /** 4872 * @brief Calls a method by name on an object and retrieves a byte return value (variadic arguments). 4873 * 4874 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 4875 * byte result. 4876 * 4877 * @param[in] env A pointer to the environment structure. 4878 * @param[in] object The object on which the method is to be called. 4879 * @param[in] name The name of the method to call. 4880 * @param[in] signature The signature of the method to call. 4881 * @param[out] result A pointer to store the byte return value. 4882 * @param[in] args A `va_list` of arguments to pass to the method. 4883 * @return Returns a status code of type `ani_status` indicating success or failure. 4884 */ 4885 ani_status (*Object_CallMethodByName_Byte_V)(ani_env *env, ani_object object, const char *name, 4886 const char *signature, ani_byte *result, va_list args); 4887 4888 /** 4889 * @brief Calls a method by name on an object and retrieves a short return value. 4890 * 4891 * This function calls the specified method by its name and signature on an object using variadic arguments and 4892 * retrieves a short result. 4893 * 4894 * @param[in] env A pointer to the environment structure. 4895 * @param[in] object The object on which the method is to be called. 4896 * @param[in] name The name of the method to call. 4897 * @param[in] signature The signature of the method to call. 4898 * @param[out] result A pointer to store the short return value. 4899 * @param[in] ... Variadic arguments to pass to the method. 4900 * @return Returns a status code of type `ani_status` indicating success or failure. 4901 */ 4902 ani_status (*Object_CallMethodByName_Short)(ani_env *env, ani_object object, const char *name, 4903 const char *signature, ani_short *result, ...); 4904 4905 /** 4906 * @brief Calls a method by name on an object and retrieves a short return value (array-based). 4907 * 4908 * This function calls the specified method by its name and signature on an object using arguments provided in an 4909 * array and retrieves a short result. 4910 * 4911 * @param[in] env A pointer to the environment structure. 4912 * @param[in] object The object on which the method is to be called. 4913 * @param[in] name The name of the method to call. 4914 * @param[in] signature The signature of the method to call. 4915 * @param[out] result A pointer to store the short return value. 4916 * @param[in] args An array of arguments to pass to the method. 4917 * @return Returns a status code of type `ani_status` indicating success or failure. 4918 */ 4919 ani_status (*Object_CallMethodByName_Short_A)(ani_env *env, ani_object object, const char *name, 4920 const char *signature, ani_short *result, const ani_value *args); 4921 4922 /** 4923 * @brief Calls a method by name on an object and retrieves a short return value (variadic arguments). 4924 * 4925 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 4926 * short result. 4927 * 4928 * @param[in] env A pointer to the environment structure. 4929 * @param[in] object The object on which the method is to be called. 4930 * @param[in] name The name of the method to call. 4931 * @param[in] signature The signature of the method to call. 4932 * @param[out] result A pointer to store the short return value. 4933 * @param[in] args A `va_list` of arguments to pass to the method. 4934 * @return Returns a status code of type `ani_status` indicating success or failure. 4935 */ 4936 ani_status (*Object_CallMethodByName_Short_V)(ani_env *env, ani_object object, const char *name, 4937 const char *signature, ani_short *result, va_list args); 4938 4939 /** 4940 * @brief Calls a method by name on an object and retrieves a integer return value. 4941 * 4942 * This function calls the specified method by its name and signature on an object using variadic arguments and 4943 * retrieves a integer result. 4944 * 4945 * @param[in] env A pointer to the environment structure. 4946 * @param[in] object The object on which the method is to be called. 4947 * @param[in] name The name of the method to call. 4948 * @param[in] signature The signature of the method to call. 4949 * @param[out] result A pointer to store the integer return value. 4950 * @param[in] ... Variadic arguments to pass to the method. 4951 * @return Returns a status code of type `ani_status` indicating success or failure. 4952 */ 4953 ani_status (*Object_CallMethodByName_Int)(ani_env *env, ani_object object, const char *name, const char *signature, 4954 ani_int *result, ...); 4955 4956 /** 4957 * @brief Calls a method by name on an object and retrieves a integer return value (array-based). 4958 * 4959 * This function calls the specified method by its name and signature on an object using arguments provided in an 4960 * array and retrieves a integer result. 4961 * 4962 * @param[in] env A pointer to the environment structure. 4963 * @param[in] object The object on which the method is to be called. 4964 * @param[in] name The name of the method to call. 4965 * @param[in] signature The signature of the method to call. 4966 * @param[out] result A pointer to store the integer return value. 4967 * @param[in] args An array of arguments to pass to the method. 4968 * @return Returns a status code of type `ani_status` indicating success or failure. 4969 */ 4970 ani_status (*Object_CallMethodByName_Int_A)(ani_env *env, ani_object object, const char *name, 4971 const char *signature, ani_int *result, const ani_value *args); 4972 4973 /** 4974 * @brief Calls a method by name on an object and retrieves a integer return value (variadic arguments). 4975 * 4976 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 4977 * integer result. 4978 * 4979 * @param[in] env A pointer to the environment structure. 4980 * @param[in] object The object on which the method is to be called. 4981 * @param[in] name The name of the method to call. 4982 * @param[in] signature The signature of the method to call. 4983 * @param[out] result A pointer to store the integer return value. 4984 * @param[in] args A `va_list` of arguments to pass to the method. 4985 * @return Returns a status code of type `ani_status` indicating success or failure. 4986 */ 4987 ani_status (*Object_CallMethodByName_Int_V)(ani_env *env, ani_object object, const char *name, 4988 const char *signature, ani_int *result, va_list args); 4989 4990 /** 4991 * @brief Calls a method by name on an object and retrieves a long return value. 4992 * 4993 * This function calls the specified method by its name and signature on an object using variadic arguments and 4994 * retrieves a long result. 4995 * 4996 * @param[in] env A pointer to the environment structure. 4997 * @param[in] object The object on which the method is to be called. 4998 * @param[in] name The name of the method to call. 4999 * @param[in] signature The signature of the method to call. 5000 * @param[out] result A pointer to store the long return value. 5001 * @param[in] ... Variadic arguments to pass to the method. 5002 * @return Returns a status code of type `ani_status` indicating success or failure. 5003 */ 5004 ani_status (*Object_CallMethodByName_Long)(ani_env *env, ani_object object, const char *name, const char *signature, 5005 ani_long *result, ...); 5006 5007 /** 5008 * @brief Calls a method by name on an object and retrieves a long return value (array-based). 5009 * 5010 * This function calls the specified method by its name and signature on an object using arguments provided in an 5011 * array and retrieves a long result. 5012 * 5013 * @param[in] env A pointer to the environment structure. 5014 * @param[in] object The object on which the method is to be called. 5015 * @param[in] name The name of the method to call. 5016 * @param[in] signature The signature of the method to call. 5017 * @param[out] result A pointer to store the long return value. 5018 * @param[in] args An array of arguments to pass to the method. 5019 * @return Returns a status code of type `ani_status` indicating success or failure. 5020 */ 5021 ani_status (*Object_CallMethodByName_Long_A)(ani_env *env, ani_object object, const char *name, 5022 const char *signature, ani_long *result, const ani_value *args); 5023 5024 /** 5025 * @brief Calls a method by name on an object and retrieves a long return value (variadic arguments). 5026 * 5027 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5028 * long result. 5029 * 5030 * @param[in] env A pointer to the environment structure. 5031 * @param[in] object The object on which the method is to be called. 5032 * @param[in] name The name of the method to call. 5033 * @param[in] signature The signature of the method to call. 5034 * @param[out] result A pointer to store the long return value. 5035 * @param[in] args A `va_list` of arguments to pass to the method. 5036 * @return Returns a status code of type `ani_status` indicating success or failure. 5037 */ 5038 ani_status (*Object_CallMethodByName_Long_V)(ani_env *env, ani_object object, const char *name, 5039 const char *signature, ani_long *result, va_list args); 5040 5041 /** 5042 * @brief Calls a method by name on an object and retrieves a float return value. 5043 * 5044 * This function calls the specified method by its name and signature on an object using variadic arguments and 5045 * retrieves a float result. 5046 * 5047 * @param[in] env A pointer to the environment structure. 5048 * @param[in] object The object on which the method is to be called. 5049 * @param[in] name The name of the method to call. 5050 * @param[in] signature The signature of the method to call. 5051 * @param[out] result A pointer to store the float return value. 5052 * @param[in] ... Variadic arguments to pass to the method. 5053 * @return Returns a status code of type `ani_status` indicating success or failure. 5054 */ 5055 ani_status (*Object_CallMethodByName_Float)(ani_env *env, ani_object object, const char *name, 5056 const char *signature, ani_float *result, ...); 5057 5058 /** 5059 * @brief Calls a method by name on an object and retrieves a float return value (array-based). 5060 * 5061 * This function calls the specified method by its name and signature on an object using arguments provided in an 5062 * array and retrieves a float result. 5063 * 5064 * @param[in] env A pointer to the environment structure. 5065 * @param[in] object The object on which the method is to be called. 5066 * @param[in] name The name of the method to call. 5067 * @param[in] signature The signature of the method to call. 5068 * @param[out] result A pointer to store the float return value. 5069 * @param[in] args An array of arguments to pass to the method. 5070 * @return Returns a status code of type `ani_status` indicating success or failure. 5071 */ 5072 ani_status (*Object_CallMethodByName_Float_A)(ani_env *env, ani_object object, const char *name, 5073 const char *signature, ani_float *result, const ani_value *args); 5074 5075 /** 5076 * @brief Calls a method by name on an object and retrieves a float return value (variadic arguments). 5077 * 5078 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5079 * float result. 5080 * 5081 * @param[in] env A pointer to the environment structure. 5082 * @param[in] object The object on which the method is to be called. 5083 * @param[in] name The name of the method to call. 5084 * @param[in] signature The signature of the method to call. 5085 * @param[out] result A pointer to store the float return value. 5086 * @param[in] args A `va_list` of arguments to pass to the method. 5087 * @return Returns a status code of type `ani_status` indicating success or failure. 5088 */ 5089 ani_status (*Object_CallMethodByName_Float_V)(ani_env *env, ani_object object, const char *name, 5090 const char *signature, ani_float *result, va_list args); 5091 5092 /** 5093 * @brief Calls a method by name on an object and retrieves a double return value. 5094 * 5095 * This function calls the specified method by its name and signature on an object using variadic arguments and 5096 * retrieves a double result. 5097 * 5098 * @param[in] env A pointer to the environment structure. 5099 * @param[in] object The object on which the method is to be called. 5100 * @param[in] name The name of the method to call. 5101 * @param[in] signature The signature of the method to call. 5102 * @param[out] result A pointer to store the double return value. 5103 * @param[in] ... Variadic arguments to pass to the method. 5104 * @return Returns a status code of type `ani_status` indicating success or failure. 5105 */ 5106 ani_status (*Object_CallMethodByName_Double)(ani_env *env, ani_object object, const char *name, 5107 const char *signature, ani_double *result, ...); 5108 5109 /** 5110 * @brief Calls a method by name on an object and retrieves a double return value (array-based). 5111 * 5112 * This function calls the specified method by its name and signature on an object using arguments provided in an 5113 * array and retrieves a double result. 5114 * 5115 * @param[in] env A pointer to the environment structure. 5116 * @param[in] object The object on which the method is to be called. 5117 * @param[in] name The name of the method to call. 5118 * @param[in] signature The signature of the method to call. 5119 * @param[out] result A pointer to store the double return value. 5120 * @param[in] args An array of arguments to pass to the method. 5121 * @return Returns a status code of type `ani_status` indicating success or failure. 5122 */ 5123 ani_status (*Object_CallMethodByName_Double_A)(ani_env *env, ani_object object, const char *name, 5124 const char *signature, ani_double *result, const ani_value *args); 5125 5126 /** 5127 * @brief Calls a method by name on an object and retrieves a double return value (variadic arguments). 5128 * 5129 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5130 * double result. 5131 * 5132 * @param[in] env A pointer to the environment structure. 5133 * @param[in] object The object on which the method is to be called. 5134 * @param[in] name The name of the method to call. 5135 * @param[in] signature The signature of the method to call. 5136 * @param[out] result A pointer to store the double return value. 5137 * @param[in] args A `va_list` of arguments to pass to the method. 5138 * @return Returns a status code of type `ani_status` indicating success or failure. 5139 */ 5140 ani_status (*Object_CallMethodByName_Double_V)(ani_env *env, ani_object object, const char *name, 5141 const char *signature, ani_double *result, va_list args); 5142 5143 /** 5144 * @brief Calls a method by name on an object and retrieves a reference return value. 5145 * 5146 * This function calls the specified method by its name and signature on an object using variadic arguments and 5147 * retrieves a reference result. 5148 * 5149 * @param[in] env A pointer to the environment structure. 5150 * @param[in] object The object on which the method is to be called. 5151 * @param[in] name The name of the method to call. 5152 * @param[in] signature The signature of the method to call. 5153 * @param[out] result A pointer to store the reference return value. 5154 * @param[in] ... Variadic arguments to pass to the method. 5155 * @return Returns a status code of type `ani_status` indicating success or failure. 5156 */ 5157 ani_status (*Object_CallMethodByName_Ref)(ani_env *env, ani_object object, const char *name, const char *signature, 5158 ani_ref *result, ...); 5159 5160 /** 5161 * @brief Calls a method by name on an object and retrieves a reference return value (array-based). 5162 * 5163 * This function calls the specified method by its name and signature on an object using arguments provided in an 5164 * array and retrieves a reference result. 5165 * 5166 * @param[in] env A pointer to the environment structure. 5167 * @param[in] object The object on which the method is to be called. 5168 * @param[in] name The name of the method to call. 5169 * @param[in] signature The signature of the method to call. 5170 * @param[out] result A pointer to store the reference return value. 5171 * @param[in] args An array of arguments to pass to the method. 5172 * @return Returns a status code of type `ani_status` indicating success or failure. 5173 */ 5174 ani_status (*Object_CallMethodByName_Ref_A)(ani_env *env, ani_object object, const char *name, 5175 const char *signature, ani_ref *result, const ani_value *args); 5176 5177 /** 5178 * @brief Calls a method by name on an object and retrieves a reference return value (variadic arguments). 5179 * 5180 * This function calls the specified method by its name and signature on an object using a `va_list` and retrieves a 5181 * reference result. 5182 * 5183 * @param[in] env A pointer to the environment structure. 5184 * @param[in] object The object on which the method is to be called. 5185 * @param[in] name The name of the method to call. 5186 * @param[in] signature The signature of the method to call. 5187 * @param[out] result A pointer to store the reference return value. 5188 * @param[in] args A `va_list` of arguments to pass to the method. 5189 * @return Returns a status code of type `ani_status` indicating success or failure. 5190 */ 5191 ani_status (*Object_CallMethodByName_Ref_V)(ani_env *env, ani_object object, const char *name, 5192 const char *signature, ani_ref *result, va_list args); 5193 5194 /** 5195 * @brief Calls a method by name on an object with no return value. 5196 * 5197 * This function calls the specified method by its name and signature on an object using variadic arguments. The 5198 * method does not return a value. 5199 * 5200 * @param[in] env A pointer to the environment structure. 5201 * @param[in] object The object on which the method is to be called. 5202 * @param[in] name The name of the method to call. 5203 * @param[in] signature The signature of the method to call. 5204 * @param[in] ... Variadic arguments to pass to the method. 5205 * @return Returns a status code of type `ani_status` indicating success or failure. 5206 */ 5207 ani_status (*Object_CallMethodByName_Void)(ani_env *env, ani_object object, const char *name, const char *signature, 5208 ...); 5209 5210 /** 5211 * @brief Calls a method by name on an object with no return value (array-based). 5212 * 5213 * This function calls the specified method by its name and signature on an object using arguments provided in an 5214 * array. The method does not return a value. 5215 * 5216 * @param[in] env A pointer to the environment structure. 5217 * @param[in] object The object on which the method is to be called. 5218 * @param[in] name The name of the method to call. 5219 * @param[in] signature The signature of the method to call. 5220 * @param[in] args An array of arguments to pass to the method. 5221 * @return Returns a status code of type `ani_status` indicating success or failure. 5222 */ 5223 ani_status (*Object_CallMethodByName_Void_A)(ani_env *env, ani_object object, const char *name, 5224 const char *signature, const ani_value *args); 5225 5226 /** 5227 * @brief Calls a method by name on an object with no return value (variadic arguments). 5228 * 5229 * This function calls the specified method by its name and signature on an object using a `va_list`. The method 5230 * does not return a value. 5231 * 5232 * @param[in] env A pointer to the environment structure. 5233 * @param[in] object The object on which the method is to be called. 5234 * @param[in] name The name of the method to call. 5235 * @param[in] signature The signature of the method to call. 5236 * @param[in] args A `va_list` of arguments to pass to the method. 5237 * @return Returns a status code of type `ani_status` indicating success or failure. 5238 */ 5239 ani_status (*Object_CallMethodByName_Void_V)(ani_env *env, ani_object object, const char *name, 5240 const char *signature, va_list args); 5241 5242 /** 5243 * @brief Retrieves the number of items in a tuple value. 5244 * 5245 * This function retrieves the total number of items in the specified tuple value. 5246 * 5247 * @param[in] env A pointer to the environment structure. 5248 * @param[in] tuple_value The tuple value whose number of items is to be retrieved. 5249 * @param[out] result A pointer to store the number of items. 5250 * @return Returns a status code of type `ani_status` indicating success or failure. 5251 */ 5252 ani_status (*TupleValue_GetNumberOfItems)(ani_env *env, ani_tuple_value tuple_value, ani_size *result); 5253 5254 /** 5255 * @brief Retrieves a boolean item from a tuple value. 5256 * 5257 * This function retrieves the boolean value of the item at the specified index in the tuple value. 5258 * 5259 * @param[in] env A pointer to the environment structure. 5260 * @param[in] tuple_value The tuple value containing the item. 5261 * @param[in] index The index of the item. 5262 * @param[out] result A pointer to store the boolean value of the item. 5263 * @return Returns a status code of type `ani_status` indicating success or failure. 5264 */ 5265 ani_status (*TupleValue_GetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5266 ani_boolean *result); 5267 5268 /** 5269 * @brief Retrieves a char item from a tuple value. 5270 * 5271 * This function retrieves the char value of the item at the specified index in the tuple value. 5272 * 5273 * @param[in] env A pointer to the environment structure. 5274 * @param[in] tuple_value The tuple value containing the item. 5275 * @param[in] index The index of the item. 5276 * @param[out] result A pointer to store the char value of the item. 5277 * @return Returns a status code of type `ani_status` indicating success or failure. 5278 */ 5279 ani_status (*TupleValue_GetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char *result); 5280 5281 /** 5282 * @brief Retrieves a byte item from a tuple value. 5283 * 5284 * This function retrieves the byte value of the item at the specified index in the tuple value. 5285 * 5286 * @param[in] env A pointer to the environment structure. 5287 * @param[in] tuple_value The tuple value containing the item. 5288 * @param[in] index The index of the item. 5289 * @param[out] result A pointer to store the byte value of the item. 5290 * @return Returns a status code of type `ani_status` indicating success or failure. 5291 */ 5292 ani_status (*TupleValue_GetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte *result); 5293 5294 /** 5295 * @brief Retrieves a short item from a tuple value. 5296 * 5297 * This function retrieves the short value of the item at the specified index in the tuple value. 5298 * 5299 * @param[in] env A pointer to the environment structure. 5300 * @param[in] tuple_value The tuple value containing the item. 5301 * @param[in] index The index of the item. 5302 * @param[out] result A pointer to store the short value of the item. 5303 * @return Returns a status code of type `ani_status` indicating success or failure. 5304 */ 5305 ani_status (*TupleValue_GetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5306 ani_short *result); 5307 5308 /** 5309 * @brief Retrieves a integer item from a tuple value. 5310 * 5311 * This function retrieves the integer value of the item at the specified index in the tuple value. 5312 * 5313 * @param[in] env A pointer to the environment structure. 5314 * @param[in] tuple_value The tuple value containing the item. 5315 * @param[in] index The index of the item. 5316 * @param[out] result A pointer to store the integer value of the item. 5317 * @return Returns a status code of type `ani_status` indicating success or failure. 5318 */ 5319 ani_status (*TupleValue_GetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int *result); 5320 5321 /** 5322 * @brief Retrieves a long item from a tuple value. 5323 * 5324 * This function retrieves the long value of the item at the specified index in the tuple value. 5325 * 5326 * @param[in] env A pointer to the environment structure. 5327 * @param[in] tuple_value The tuple value containing the item. 5328 * @param[in] index The index of the item. 5329 * @param[out] result A pointer to store the long value of the item. 5330 * @return Returns a status code of type `ani_status` indicating success or failure. 5331 */ 5332 ani_status (*TupleValue_GetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long *result); 5333 5334 /** 5335 * @brief Retrieves a float item from a tuple value. 5336 * 5337 * This function retrieves the float value of the item at the specified index in the tuple value. 5338 * 5339 * @param[in] env A pointer to the environment structure. 5340 * @param[in] tuple_value The tuple value containing the item. 5341 * @param[in] index The index of the item. 5342 * @param[out] result A pointer to store the float value of the item. 5343 * @return Returns a status code of type `ani_status` indicating success or failure. 5344 */ 5345 ani_status (*TupleValue_GetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5346 ani_float *result); 5347 5348 /** 5349 * @brief Retrieves a double item from a tuple value. 5350 * 5351 * This function retrieves the double value of the item at the specified index in the tuple value. 5352 * 5353 * @param[in] env A pointer to the environment structure. 5354 * @param[in] tuple_value The tuple value containing the item. 5355 * @param[in] index The index of the item. 5356 * @param[out] result A pointer to store the double value of the item. 5357 * @return Returns a status code of type `ani_status` indicating success or failure. 5358 */ 5359 ani_status (*TupleValue_GetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5360 ani_double *result); 5361 5362 /** 5363 * @brief Retrieves a reference item from a tuple value. 5364 * 5365 * This function retrieves the reference value of the item at the specified index in the tuple value. 5366 * 5367 * @param[in] env A pointer to the environment structure. 5368 * @param[in] tuple_value The tuple value containing the item. 5369 * @param[in] index The index of the item. 5370 * @param[out] result A pointer to store the reference value of the item. 5371 * @return Returns a status code of type `ani_status` indicating success or failure. 5372 */ 5373 ani_status (*TupleValue_GetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref *result); 5374 5375 /** 5376 * @brief Sets a boolean value to an item in a tuple value. 5377 * 5378 * This function assigns a boolean value to the item at the specified index in the tuple value. 5379 * 5380 * @param[in] env A pointer to the environment structure. 5381 * @param[in] tuple_value The tuple value containing the item. 5382 * @param[in] index The index of the item. 5383 * @param[in] value The boolean value to assign to the item. 5384 * @return Returns a status code of type `ani_status` indicating success or failure. 5385 */ 5386 ani_status (*TupleValue_SetItem_Boolean)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5387 ani_boolean value); 5388 5389 /** 5390 * @brief Sets a char value to an item in a tuple value. 5391 * 5392 * This function assigns a char value to the item at the specified index in the tuple value. 5393 * 5394 * @param[in] env A pointer to the environment structure. 5395 * @param[in] tuple_value The tuple value containing the item. 5396 * @param[in] index The index of the item. 5397 * @param[in] value The char value to assign to the item. 5398 * @return Returns a status code of type `ani_status` indicating success or failure. 5399 */ 5400 ani_status (*TupleValue_SetItem_Char)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_char value); 5401 5402 /** 5403 * @brief Sets a byte value to an item in a tuple value. 5404 * 5405 * This function assigns a byte value to the item at the specified index in the tuple value. 5406 * 5407 * @param[in] env A pointer to the environment structure. 5408 * @param[in] tuple_value The tuple value containing the item. 5409 * @param[in] index The index of the item. 5410 * @param[in] value The byte value to assign to the item. 5411 * @return Returns a status code of type `ani_status` indicating success or failure. 5412 */ 5413 ani_status (*TupleValue_SetItem_Byte)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_byte value); 5414 5415 /** 5416 * @brief Sets a short value to an item in a tuple value. 5417 * 5418 * This function assigns a short value to the item at the specified index in the tuple value. 5419 * 5420 * @param[in] env A pointer to the environment structure. 5421 * @param[in] tuple_value The tuple value containing the item. 5422 * @param[in] index The index of the item. 5423 * @param[in] value The short value to assign to the item. 5424 * @return Returns a status code of type `ani_status` indicating success or failure. 5425 */ 5426 ani_status (*TupleValue_SetItem_Short)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_short value); 5427 5428 /** 5429 * @brief Sets a integer value to an item in a tuple value. 5430 * 5431 * This function assigns a integer value to the item at the specified index in the tuple value. 5432 * 5433 * @param[in] env A pointer to the environment structure. 5434 * @param[in] tuple_value The tuple value containing the item. 5435 * @param[in] index The index of the item. 5436 * @param[in] value The integer value to assign to the item. 5437 * @return Returns a status code of type `ani_status` indicating success or failure. 5438 */ 5439 ani_status (*TupleValue_SetItem_Int)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_int value); 5440 5441 /** 5442 * @brief Sets a long value to an item in a tuple value. 5443 * 5444 * This function assigns a long value to the item at the specified index in the tuple value. 5445 * 5446 * @param[in] env A pointer to the environment structure. 5447 * @param[in] tuple_value The tuple value containing the item. 5448 * @param[in] index The index of the item. 5449 * @param[in] value The long value to assign to the item. 5450 * @return Returns a status code of type `ani_status` indicating success or failure. 5451 */ 5452 ani_status (*TupleValue_SetItem_Long)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_long value); 5453 5454 /** 5455 * @brief Sets a float value to an item in a tuple value. 5456 * 5457 * This function assigns a float value to the item at the specified index in the tuple value. 5458 * 5459 * @param[in] env A pointer to the environment structure. 5460 * @param[in] tuple_value The tuple value containing the item. 5461 * @param[in] index The index of the item. 5462 * @param[in] value The float value to assign to the item. 5463 * @return Returns a status code of type `ani_status` indicating success or failure. 5464 */ 5465 ani_status (*TupleValue_SetItem_Float)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_float value); 5466 5467 /** 5468 * @brief Sets a double value to an item in a tuple value. 5469 * 5470 * This function assigns a double value to the item at the specified index in the tuple value. 5471 * 5472 * @param[in] env A pointer to the environment structure. 5473 * @param[in] tuple_value The tuple value containing the item. 5474 * @param[in] index The index of the item. 5475 * @param[in] value The double value to assign to the item. 5476 * @return Returns a status code of type `ani_status` indicating success or failure. 5477 */ 5478 ani_status (*TupleValue_SetItem_Double)(ani_env *env, ani_tuple_value tuple_value, ani_size index, 5479 ani_double value); 5480 5481 /** 5482 * @brief Sets a reference value to an item in a tuple value. 5483 * 5484 * This function assigns a reference value to the item at the specified index in the tuple value. 5485 * 5486 * @param[in] env A pointer to the environment structure. 5487 * @param[in] tuple_value The tuple value containing the item. 5488 * @param[in] index The index of the item. 5489 * @param[in] value The reference value to assign to the item. 5490 * @return Returns a status code of type `ani_status` indicating success or failure. 5491 */ 5492 ani_status (*TupleValue_SetItem_Ref)(ani_env *env, ani_tuple_value tuple_value, ani_size index, ani_ref value); 5493 5494 /** 5495 * @brief Creates a global reference. 5496 * 5497 * This function creates a global reference from a local reference. 5498 * 5499 * @param[in] env A pointer to the environment structure. 5500 * @param[in] ref The local reference to convert to a global reference. 5501 * @param[out] result A pointer to store the created global reference. 5502 * @return Returns a status code of type `ani_status` indicating success or failure. 5503 */ 5504 ani_status (*GlobalReference_Create)(ani_env *env, ani_ref ref, ani_ref *result); 5505 5506 /** 5507 * @brief Deletes a global reference. 5508 * 5509 * This function deletes the specified global reference, releasing all associated resources. 5510 * 5511 * @param[in] env A pointer to the environment structure. 5512 * @param[in] gref The global reference to delete. 5513 * @return Returns a status code of type `ani_status` indicating success or failure. 5514 */ 5515 ani_status (*GlobalReference_Delete)(ani_env *env, ani_ref gref); 5516 5517 /** 5518 * @brief Creates a weak reference. 5519 * 5520 * This function creates a weak reference from a local reference. 5521 * 5522 * @param[in] env A pointer to the environment structure. 5523 * @param[in] ref The local reference to convert to a weak reference. 5524 * @param[out] result A pointer to store the created weak reference. 5525 * @return Returns a status code of type `ani_status` indicating success or failure. 5526 */ 5527 ani_status (*WeakReference_Create)(ani_env *env, ani_ref ref, ani_wref *result); 5528 5529 /** 5530 * @brief Deletes a weak reference. 5531 * 5532 * This function deletes the specified weak reference, releasing all associated resources. 5533 * 5534 * @param[in] env A pointer to the environment structure. 5535 * @param[in] wref The weak reference to delete. 5536 * @return Returns a status code of type `ani_status` indicating success or failure. 5537 */ 5538 ani_status (*WeakReference_Delete)(ani_env *env, ani_wref wref); 5539 5540 /** 5541 * @brief Retrieves the local reference associated with a weak reference. 5542 * 5543 * This function retrieves the local reference that corresponds to the specified weak reference. 5544 * 5545 * @param[in] env A pointer to the environment structure. 5546 * @param[in] wref The weak reference to query. 5547 * @param[out] was_released_result A pointer to boolean flag which indicates that wref is GC collected. 5548 * @param[out] ref_result A pointer to store the retrieved local reference. 5549 * @return Returns a status code of type `ani_status` indicating success or failure. 5550 */ 5551 ani_status (*WeakReference_GetReference)(ani_env *env, ani_wref wref, ani_boolean *was_released_result, 5552 ani_ref *ref_result); 5553 5554 /** 5555 * @brief Creates a new array buffer. 5556 * 5557 * This function creates a new array buffer with the specified length and returns a pointer to the allocated data. 5558 * 5559 * @param[in] env A pointer to the environment structure. 5560 * @param[in] length The length of the array buffer in bytes. 5561 * @param[out] data_result A pointer to store the allocated data of the array buffer. 5562 * @param[out] arraybuffer_result A pointer to store the created array buffer object. 5563 * @return Returns a status code of type `ani_status` indicating success or failure. 5564 */ 5565 ani_status (*CreateArrayBuffer)(ani_env *env, size_t length, void **data_result, 5566 ani_arraybuffer *arraybuffer_result); 5567 5568 /** 5569 * @brief Creates a new array buffer using external data. 5570 * 5571 * This function creates an array buffer that uses external data. The provided finalizer will be called when the 5572 * array buffer is no longer needed. 5573 * 5574 * @param[in] env A pointer to the environment structure. 5575 * @param[in] external_data A pointer to the external data to be used by the array buffer. 5576 * @param[in] length The length of the external data in bytes. 5577 * @param[in] finalizer A callback function to be called when the array buffer is finalized. Can be nullptr. 5578 * @param[in] hint A user-defined hint to be passed to the finalizer. Can be nullptr. 5579 * @param[out] result A pointer to store the created array buffer object. 5580 * @return Returns a status code of type `ani_status` indicating success or failure. 5581 */ 5582 ani_status (*CreateArrayBufferExternal)(ani_env *env, void *external_data, size_t length, ani_finalizer finalizer, 5583 void *hint, ani_arraybuffer *result); 5584 5585 /** 5586 * @brief Retrieves information about an array buffer. 5587 * 5588 * This function retrieves the data pointer and length of the specified array buffer. 5589 * 5590 * @param[in] env A pointer to the environment structure. 5591 * @param[in] arraybuffer The array buffer to query. 5592 * @param[out] data_result A pointer to store the data of the array buffer. 5593 * @param[out] length_result A pointer to store the length of the array buffer in bytes. 5594 * @return Returns a status code of type `ani_status` indicating success or failure. 5595 */ 5596 ani_status (*ArrayBuffer_GetInfo)(ani_env *env, ani_arraybuffer arraybuffer, void **data_result, 5597 size_t *length_result); 5598 5599 /** 5600 * @brief Creates a new Promise. 5601 * 5602 * This function creates a new promise and a resolver to manage it. 5603 * 5604 * @param[in] env A pointer to the environment structure. 5605 * @param[out] result_resolver A pointer to store the created resolver. 5606 * @param[out] result_promise A pointer to store the created promise. 5607 * @return Returns a status code of type `ani_status` indicating success or failure. 5608 */ 5609 ani_status (*Promise_New)(ani_env *env, ani_resolver *result_resolver, ani_object *result_promise); 5610 5611 /** 5612 * @brief Resolves a promise. 5613 * 5614 * This function resolves a promise by way of the resolver with which it is associated 5615 * and queues promise `then` callbacks. 5616 * 5617 * @param[in] env A pointer to the environment structure. 5618 * @param[in] resolver A resolver whose associated promise to resolve. 5619 * @param[in] resolution A reference with which to resolve the promise. 5620 * @return Returns a status code of type `ani_status` indicating success or failure. 5621 * The `resolver` is freed upon successful completion. 5622 */ 5623 ani_status (*PromiseResolver_Resolve)(ani_env *env, ani_resolver resolver, ani_ref resolution); 5624 5625 /** 5626 * @brief Rejects a promise. 5627 * 5628 * This function rejects a promise by way of the resolver with which it is associated 5629 * and queues promise `catch` callbacks. 5630 * 5631 * @param[in] env A pointer to the environment structure. 5632 * @param[in] resolver A resolver whose associated promise to resolve. 5633 * @param[in] rejection An error with which to reject the promise. 5634 * @return Returns a status code of type `ani_status` indicating success or failure. 5635 * The `resolver` is freed upon successful completion. 5636 */ 5637 ani_status (*PromiseResolver_Reject)(ani_env *env, ani_resolver resolver, ani_error rejection); 5638 5639 /** 5640 * @brief Creates a new fixedarray of booleans. 5641 * 5642 * This function creates a new array of the specified length for boolean values. 5643 * 5644 * @param[in] env A pointer to the environment structure. 5645 * @param[in] length The length of the fixedarray to be created. 5646 * @param[out] result A pointer to store the created FixedArray. 5647 * @return Returns a status code of type `ani_status` indicating success or failure. 5648 */ 5649 ani_status (*FixedArray_New_Boolean)(ani_env *env, ani_size length, ani_array_boolean *result); 5650 5651 /** 5652 * @brief Creates a new FixedArray of characters. 5653 * 5654 * This function creates a new FixedArray of the specified length for character values. 5655 * 5656 * @param[in] env A pointer to the environment structure. 5657 * @param[in] length The length of the FixedArray to be created. 5658 * @param[out] result A pointer to store the created FixedArray. 5659 * @return Returns a status code of type `ani_status` indicating success or failure. 5660 */ 5661 ani_status (*FixedArray_New_Char)(ani_env *env, ani_size length, ani_array_char *result); 5662 5663 /** 5664 * @brief Creates a new FixedArray of bytes. 5665 * 5666 * This function creates a new FixedArray of the specified length for byte values. 5667 * 5668 * @param[in] env A pointer to the environment structure. 5669 * @param[in] length The length of the FixedArray to be created. 5670 * @param[out] result A pointer to store the created FixedArray. 5671 * @return Returns a status code of type `ani_status` indicating success or failure. 5672 */ 5673 ani_status (*FixedArray_New_Byte)(ani_env *env, ani_size length, ani_array_byte *result); 5674 5675 /** 5676 * @brief Creates a new FixedArray of shorts. 5677 * 5678 * This function creates a new FixedArray of the specified length for short integer values. 5679 * 5680 * @param[in] env A pointer to the environment structure. 5681 * @param[in] length The length of the FixedArray to be created. 5682 * @param[out] result A pointer to store the created FixedArray. 5683 * @return Returns a status code of type `ani_status` indicating success or failure. 5684 */ 5685 ani_status (*FixedArray_New_Short)(ani_env *env, ani_size length, ani_array_short *result); 5686 5687 /** 5688 * @brief Creates a new FixedArray of integers. 5689 * 5690 * This function creates a new FixedArray of the specified length for integer values. 5691 * 5692 * @param[in] env A pointer to the environment structure. 5693 * @param[in] length The length of the FixedArray to be created. 5694 * @param[out] result A pointer to store the created FixedArray. 5695 * @return Returns a status code of type `ani_status` indicating success or failure. 5696 */ 5697 ani_status (*FixedArray_New_Int)(ani_env *env, ani_size length, ani_array_int *result); 5698 5699 /** 5700 * @brief Creates a new FixedArray of long integers. 5701 * 5702 * This function creates a new FixedArray of the specified length for long integer values. 5703 * 5704 * @param[in] env A pointer to the environment structure. 5705 * @param[in] length The length of the FixedArray to be created. 5706 * @param[out] result A pointer to store the created FixedArray. 5707 * @return Returns a status code of type `ani_status` indicating success or failure. 5708 */ 5709 ani_status (*FixedArray_New_Long)(ani_env *env, ani_size length, ani_array_long *result); 5710 5711 /** 5712 * @brief Creates a new FixedArray of floats. 5713 * 5714 * This function creates a new FixedArray of the specified length for float values. 5715 * 5716 * @param[in] env A pointer to the environment structure. 5717 * @param[in] length The length of the FixedArray to be created. 5718 * @param[out] result A pointer to store the created FixedArray. 5719 * @return Returns a status code of type `ani_status` indicating success or failure. 5720 */ 5721 ani_status (*FixedArray_New_Float)(ani_env *env, ani_size length, ani_array_float *result); 5722 5723 /** 5724 * @brief Creates a new FixedArray of doubles. 5725 * 5726 * This function creates a new FixedArray of the specified length for double values. 5727 * 5728 * @param[in] env A pointer to the environment structure. 5729 * @param[in] length The length of the FixedArray to be created. 5730 * @param[out] result A pointer to store the created FixedArray. 5731 * @return Returns a status code of type `ani_status` indicating success or failure. 5732 */ 5733 ani_status (*FixedArray_New_Double)(ani_env *env, ani_size length, ani_array_double *result); 5734 5735 /** 5736 * @brief Creates a new FixedArray of references. 5737 * 5738 * This function creates a new FixedArray of references, optionally initializing it with an FixedArray of 5739 * references. 5740 * 5741 * @param[in] env A pointer to the environment structure. 5742 * @param[in] type The type of the elements of the FixedArray. 5743 * @param[in] length The length of the FixedArray to be created. 5744 * @param[in] initial_element An optional reference to initialize the FixedArray. Can be null. 5745 * @param[out] result A pointer to store the created FixedArray of references. 5746 * @return Returns a status code of type `ani_status` indicating success or failure. 5747 */ 5748 ani_status (*FixedArray_New_Ref)(ani_env *env, ani_type type, ani_size length, ani_ref initial_element, 5749 ani_array_ref *result); 5750 }; 5751 5752 // C++ API 5753 struct __ani_vm { 5754 const struct __ani_vm_api *c_api; 5755 5756 #ifdef __cplusplus DestroyVM__ani_vm5757 ani_status DestroyVM() 5758 { 5759 return c_api->DestroyVM(this); 5760 } GetEnv__ani_vm5761 ani_status GetEnv(uint32_t version, ani_env **result) 5762 { 5763 return c_api->GetEnv(this, version, result); 5764 } AttachCurrentThread__ani_vm5765 ani_status AttachCurrentThread(const ani_options *options, uint32_t version, ani_env **result) 5766 { 5767 return c_api->AttachCurrentThread(this, options, version, result); 5768 } DetachCurrentThread__ani_vm5769 ani_status DetachCurrentThread() 5770 { 5771 return c_api->DetachCurrentThread(this); 5772 } 5773 #endif // __cplusplus 5774 }; 5775 5776 struct __ani_env { 5777 const struct __ani_interaction_api *c_api; 5778 5779 #ifdef __cplusplus GetVersion__ani_env5780 ani_status GetVersion(uint32_t *result) 5781 { 5782 return c_api->GetVersion(this, result); 5783 } GetVM__ani_env5784 ani_status GetVM(ani_vm **result) 5785 { 5786 return c_api->GetVM(this, result); 5787 } Object_New__ani_env5788 ani_status Object_New(ani_class cls, ani_method method, ani_object *result, ...) 5789 { 5790 va_list args; 5791 va_start(args, result); 5792 ani_status status = c_api->Object_New_V(this, cls, method, result, args); 5793 va_end(args); 5794 return status; 5795 } Object_New_A__ani_env5796 ani_status Object_New_A(ani_class cls, ani_method method, ani_object *result, const ani_value *args) 5797 { 5798 return c_api->Object_New_A(this, cls, method, result, args); 5799 } Object_New_V__ani_env5800 ani_status Object_New_V(ani_class cls, ani_method method, ani_object *result, va_list args) 5801 { 5802 return c_api->Object_New_V(this, cls, method, result, args); 5803 } Object_GetType__ani_env5804 ani_status Object_GetType(ani_object object, ani_type *result) 5805 { 5806 return c_api->Object_GetType(this, object, result); 5807 } Object_InstanceOf__ani_env5808 ani_status Object_InstanceOf(ani_object object, ani_type type, ani_boolean *result) 5809 { 5810 return c_api->Object_InstanceOf(this, object, type, result); 5811 } Type_GetSuperClass__ani_env5812 ani_status Type_GetSuperClass(ani_type type, ani_class *result) 5813 { 5814 return c_api->Type_GetSuperClass(this, type, result); 5815 } Type_IsAssignableFrom__ani_env5816 ani_status Type_IsAssignableFrom(ani_type from_type, ani_type to_type, ani_boolean *result) 5817 { 5818 return c_api->Type_IsAssignableFrom(this, from_type, to_type, result); 5819 } FindModule__ani_env5820 ani_status FindModule(const char *module_descriptor, ani_module *result) 5821 { 5822 return c_api->FindModule(this, module_descriptor, result); 5823 } FindNamespace__ani_env5824 ani_status FindNamespace(const char *namespace_descriptor, ani_namespace *result) 5825 { 5826 return c_api->FindNamespace(this, namespace_descriptor, result); 5827 } FindClass__ani_env5828 ani_status FindClass(const char *class_descriptor, ani_class *result) 5829 { 5830 return c_api->FindClass(this, class_descriptor, result); 5831 } FindEnum__ani_env5832 ani_status FindEnum(const char *enum_descriptor, ani_enum *result) 5833 { 5834 return c_api->FindEnum(this, enum_descriptor, result); 5835 } Module_FindNamespace__ani_env5836 ani_status Module_FindNamespace(ani_module module, const char *namespace_descriptor, ani_namespace *result) 5837 { 5838 return c_api->Module_FindNamespace(this, module, namespace_descriptor, result); 5839 } Module_FindClass__ani_env5840 ani_status Module_FindClass(ani_module module, const char *class_descriptor, ani_class *result) 5841 { 5842 return c_api->Module_FindClass(this, module, class_descriptor, result); 5843 } Module_FindEnum__ani_env5844 ani_status Module_FindEnum(ani_module module, const char *enum_descriptor, ani_enum *result) 5845 { 5846 return c_api->Module_FindEnum(this, module, enum_descriptor, result); 5847 } Module_FindFunction__ani_env5848 ani_status Module_FindFunction(ani_module module, const char *name, const char *signature, ani_function *result) 5849 { 5850 return c_api->Module_FindFunction(this, module, name, signature, result); 5851 } Module_FindVariable__ani_env5852 ani_status Module_FindVariable(ani_module module, const char *name, ani_variable *result) 5853 { 5854 return c_api->Module_FindVariable(this, module, name, result); 5855 } Namespace_FindNamespace__ani_env5856 ani_status Namespace_FindNamespace(ani_namespace ns, const char *namespace_descriptor, ani_namespace *result) 5857 { 5858 return c_api->Namespace_FindNamespace(this, ns, namespace_descriptor, result); 5859 } Namespace_FindClass__ani_env5860 ani_status Namespace_FindClass(ani_namespace ns, const char *class_descriptor, ani_class *result) 5861 { 5862 return c_api->Namespace_FindClass(this, ns, class_descriptor, result); 5863 } Namespace_FindEnum__ani_env5864 ani_status Namespace_FindEnum(ani_namespace ns, const char *enum_descriptor, ani_enum *result) 5865 { 5866 return c_api->Namespace_FindEnum(this, ns, enum_descriptor, result); 5867 } Namespace_FindFunction__ani_env5868 ani_status Namespace_FindFunction(ani_namespace ns, const char *name, const char *signature, ani_function *result) 5869 { 5870 return c_api->Namespace_FindFunction(this, ns, name, signature, result); 5871 } Namespace_FindVariable__ani_env5872 ani_status Namespace_FindVariable(ani_namespace ns, const char *name, ani_variable *result) 5873 { 5874 return c_api->Namespace_FindVariable(this, ns, name, result); 5875 } Module_BindNativeFunctions__ani_env5876 ani_status Module_BindNativeFunctions(ani_module module, const ani_native_function *functions, 5877 ani_size nr_functions) 5878 { 5879 return c_api->Module_BindNativeFunctions(this, module, functions, nr_functions); 5880 } Namespace_BindNativeFunctions__ani_env5881 ani_status Namespace_BindNativeFunctions(ani_namespace ns, const ani_native_function *functions, 5882 ani_size nr_functions) 5883 { 5884 return c_api->Namespace_BindNativeFunctions(this, ns, functions, nr_functions); 5885 } Class_BindNativeMethods__ani_env5886 ani_status Class_BindNativeMethods(ani_class cls, const ani_native_function *methods, ani_size nr_methods) 5887 { 5888 return c_api->Class_BindNativeMethods(this, cls, methods, nr_methods); 5889 } Reference_Delete__ani_env5890 ani_status Reference_Delete(ani_ref ref) 5891 { 5892 return c_api->Reference_Delete(this, ref); 5893 } EnsureEnoughReferences__ani_env5894 ani_status EnsureEnoughReferences(ani_size nr_refs) 5895 { 5896 return c_api->EnsureEnoughReferences(this, nr_refs); 5897 } CreateLocalScope__ani_env5898 ani_status CreateLocalScope(ani_size nr_refs) 5899 { 5900 return c_api->CreateLocalScope(this, nr_refs); 5901 } DestroyLocalScope__ani_env5902 ani_status DestroyLocalScope() 5903 { 5904 return c_api->DestroyLocalScope(this); 5905 } CreateEscapeLocalScope__ani_env5906 ani_status CreateEscapeLocalScope(ani_size nr_refs) 5907 { 5908 return c_api->CreateEscapeLocalScope(this, nr_refs); 5909 } DestroyEscapeLocalScope__ani_env5910 ani_status DestroyEscapeLocalScope(ani_ref ref, ani_ref *result) 5911 { 5912 return c_api->DestroyEscapeLocalScope(this, ref, result); 5913 } ThrowError__ani_env5914 ani_status ThrowError(ani_error err) 5915 { 5916 return c_api->ThrowError(this, err); 5917 } ExistUnhandledError__ani_env5918 ani_status ExistUnhandledError(ani_boolean *result) 5919 { 5920 return c_api->ExistUnhandledError(this, result); 5921 } GetUnhandledError__ani_env5922 ani_status GetUnhandledError(ani_error *result) 5923 { 5924 return c_api->GetUnhandledError(this, result); 5925 } ResetError__ani_env5926 ani_status ResetError() 5927 { 5928 return c_api->ResetError(this); 5929 } DescribeError__ani_env5930 ani_status DescribeError() 5931 { 5932 return c_api->DescribeError(this); 5933 } Abort__ani_env5934 ani_status Abort(const char *message) 5935 { 5936 return c_api->Abort(this, message); 5937 } GetNull__ani_env5938 ani_status GetNull(ani_ref *result) 5939 { 5940 return c_api->GetNull(this, result); 5941 } GetUndefined__ani_env5942 ani_status GetUndefined(ani_ref *result) 5943 { 5944 return c_api->GetUndefined(this, result); 5945 } Reference_IsNull__ani_env5946 ani_status Reference_IsNull(ani_ref ref, ani_boolean *result) 5947 { 5948 return c_api->Reference_IsNull(this, ref, result); 5949 } Reference_IsUndefined__ani_env5950 ani_status Reference_IsUndefined(ani_ref ref, ani_boolean *result) 5951 { 5952 return c_api->Reference_IsUndefined(this, ref, result); 5953 } Reference_IsNullishValue__ani_env5954 ani_status Reference_IsNullishValue(ani_ref ref, ani_boolean *result) 5955 { 5956 return c_api->Reference_IsNullishValue(this, ref, result); 5957 } Reference_Equals__ani_env5958 ani_status Reference_Equals(ani_ref ref0, ani_ref ref1, ani_boolean *result) 5959 { 5960 return c_api->Reference_Equals(this, ref0, ref1, result); 5961 } Reference_StrictEquals__ani_env5962 ani_status Reference_StrictEquals(ani_ref ref0, ani_ref ref1, ani_boolean *result) 5963 { 5964 return c_api->Reference_StrictEquals(this, ref0, ref1, result); 5965 } String_NewUTF16__ani_env5966 ani_status String_NewUTF16(const uint16_t *utf16_string, ani_size utf16_size, ani_string *result) 5967 { 5968 return c_api->String_NewUTF16(this, utf16_string, utf16_size, result); 5969 } String_GetUTF16Size__ani_env5970 ani_status String_GetUTF16Size(ani_string string, ani_size *result) 5971 { 5972 return c_api->String_GetUTF16Size(this, string, result); 5973 } String_GetUTF16__ani_env5974 ani_status String_GetUTF16(ani_string string, uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result) 5975 { 5976 return c_api->String_GetUTF16(this, string, utf16_buffer, utf16_buffer_size, result); 5977 } String_GetUTF16SubString__ani_env5978 ani_status String_GetUTF16SubString(ani_string string, ani_size substr_offset, ani_size substr_size, 5979 uint16_t *utf16_buffer, ani_size utf16_buffer_size, ani_size *result) 5980 { 5981 return c_api->String_GetUTF16SubString(this, string, substr_offset, substr_size, utf16_buffer, 5982 utf16_buffer_size, result); 5983 } String_NewUTF8__ani_env5984 ani_status String_NewUTF8(const char *utf8_string, ani_size utf8_size, ani_string *result) 5985 { 5986 return c_api->String_NewUTF8(this, utf8_string, utf8_size, result); 5987 } String_GetUTF8Size__ani_env5988 ani_status String_GetUTF8Size(ani_string string, ani_size *result) 5989 { 5990 return c_api->String_GetUTF8Size(this, string, result); 5991 } String_GetUTF8__ani_env5992 ani_status String_GetUTF8(ani_string string, char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result) 5993 { 5994 return c_api->String_GetUTF8(this, string, utf8_buffer, utf8_buffer_size, result); 5995 } String_GetUTF8SubString__ani_env5996 ani_status String_GetUTF8SubString(ani_string string, ani_size substr_offset, ani_size substr_size, 5997 char *utf8_buffer, ani_size utf8_buffer_size, ani_size *result) 5998 { 5999 return c_api->String_GetUTF8SubString(this, string, substr_offset, substr_size, utf8_buffer, utf8_buffer_size, 6000 result); 6001 } Array_GetLength__ani_env6002 ani_status Array_GetLength(ani_array array, ani_size *result) 6003 { 6004 return c_api->Array_GetLength(this, array, result); 6005 } Array_New_Boolean__ani_env6006 ani_status Array_New_Boolean(ani_size length, ani_array_boolean *result) 6007 { 6008 return c_api->Array_New_Boolean(this, length, result); 6009 } Array_New_Char__ani_env6010 ani_status Array_New_Char(ani_size length, ani_array_char *result) 6011 { 6012 return c_api->Array_New_Char(this, length, result); 6013 } Array_New_Byte__ani_env6014 ani_status Array_New_Byte(ani_size length, ani_array_byte *result) 6015 { 6016 return c_api->Array_New_Byte(this, length, result); 6017 } Array_New_Short__ani_env6018 ani_status Array_New_Short(ani_size length, ani_array_short *result) 6019 { 6020 return c_api->Array_New_Short(this, length, result); 6021 } Array_New_Int__ani_env6022 ani_status Array_New_Int(ani_size length, ani_array_int *result) 6023 { 6024 return c_api->Array_New_Int(this, length, result); 6025 } Array_New_Long__ani_env6026 ani_status Array_New_Long(ani_size length, ani_array_long *result) 6027 { 6028 return c_api->Array_New_Long(this, length, result); 6029 } Array_New_Float__ani_env6030 ani_status Array_New_Float(ani_size length, ani_array_float *result) 6031 { 6032 return c_api->Array_New_Float(this, length, result); 6033 } Array_New_Double__ani_env6034 ani_status Array_New_Double(ani_size length, ani_array_double *result) 6035 { 6036 return c_api->Array_New_Double(this, length, result); 6037 } Array_GetRegion_Boolean__ani_env6038 ani_status Array_GetRegion_Boolean(ani_array_boolean array, ani_size offset, ani_size length, 6039 ani_boolean *native_buffer) 6040 { 6041 return c_api->Array_GetRegion_Boolean(this, array, offset, length, native_buffer); 6042 } Array_GetRegion_Char__ani_env6043 ani_status Array_GetRegion_Char(ani_array_char array, ani_size offset, ani_size length, ani_char *native_buffer) 6044 { 6045 return c_api->Array_GetRegion_Char(this, array, offset, length, native_buffer); 6046 } Array_GetRegion_Byte__ani_env6047 ani_status Array_GetRegion_Byte(ani_array_byte array, ani_size offset, ani_size length, ani_byte *native_buffer) 6048 { 6049 return c_api->Array_GetRegion_Byte(this, array, offset, length, native_buffer); 6050 } Array_GetRegion_Short__ani_env6051 ani_status Array_GetRegion_Short(ani_array_short array, ani_size offset, ani_size length, ani_short *native_buffer) 6052 { 6053 return c_api->Array_GetRegion_Short(this, array, offset, length, native_buffer); 6054 } Array_GetRegion_Int__ani_env6055 ani_status Array_GetRegion_Int(ani_array_int array, ani_size offset, ani_size length, ani_int *native_buffer) 6056 { 6057 return c_api->Array_GetRegion_Int(this, array, offset, length, native_buffer); 6058 } Array_GetRegion_Long__ani_env6059 ani_status Array_GetRegion_Long(ani_array_long array, ani_size offset, ani_size length, ani_long *native_buffer) 6060 { 6061 return c_api->Array_GetRegion_Long(this, array, offset, length, native_buffer); 6062 } Array_GetRegion_Float__ani_env6063 ani_status Array_GetRegion_Float(ani_array_float array, ani_size offset, ani_size length, ani_float *native_buffer) 6064 { 6065 return c_api->Array_GetRegion_Float(this, array, offset, length, native_buffer); 6066 } Array_GetRegion_Double__ani_env6067 ani_status Array_GetRegion_Double(ani_array_double array, ani_size offset, ani_size length, 6068 ani_double *native_buffer) 6069 { 6070 return c_api->Array_GetRegion_Double(this, array, offset, length, native_buffer); 6071 } Array_SetRegion_Boolean__ani_env6072 ani_status Array_SetRegion_Boolean(ani_array_boolean array, ani_size offset, ani_size length, 6073 const ani_boolean *native_buffer) 6074 { 6075 return c_api->Array_SetRegion_Boolean(this, array, offset, length, native_buffer); 6076 } Array_SetRegion_Char__ani_env6077 ani_status Array_SetRegion_Char(ani_array_char array, ani_size offset, ani_size length, 6078 const ani_char *native_buffer) 6079 { 6080 return c_api->Array_SetRegion_Char(this, array, offset, length, native_buffer); 6081 } Array_SetRegion_Byte__ani_env6082 ani_status Array_SetRegion_Byte(ani_array_byte array, ani_size offset, ani_size length, 6083 const ani_byte *native_buffer) 6084 { 6085 return c_api->Array_SetRegion_Byte(this, array, offset, length, native_buffer); 6086 } Array_SetRegion_Short__ani_env6087 ani_status Array_SetRegion_Short(ani_array_short array, ani_size offset, ani_size length, 6088 const ani_short *native_buffer) 6089 { 6090 return c_api->Array_SetRegion_Short(this, array, offset, length, native_buffer); 6091 } Array_SetRegion_Int__ani_env6092 ani_status Array_SetRegion_Int(ani_array_int array, ani_size offset, ani_size length, const ani_int *native_buffer) 6093 { 6094 return c_api->Array_SetRegion_Int(this, array, offset, length, native_buffer); 6095 } Array_SetRegion_Long__ani_env6096 ani_status Array_SetRegion_Long(ani_array_long array, ani_size offset, ani_size length, 6097 const ani_long *native_buffer) 6098 { 6099 return c_api->Array_SetRegion_Long(this, array, offset, length, native_buffer); 6100 } Array_SetRegion_Float__ani_env6101 ani_status Array_SetRegion_Float(ani_array_float array, ani_size offset, ani_size length, 6102 const ani_float *native_buffer) 6103 { 6104 return c_api->Array_SetRegion_Float(this, array, offset, length, native_buffer); 6105 } Array_SetRegion_Double__ani_env6106 ani_status Array_SetRegion_Double(ani_array_double array, ani_size offset, ani_size length, 6107 const ani_double *native_buffer) 6108 { 6109 return c_api->Array_SetRegion_Double(this, array, offset, length, native_buffer); 6110 } Array_New_Ref__ani_env6111 ani_status Array_New_Ref(ani_type type, ani_size length, ani_ref initial_element, ani_array_ref *result) 6112 { 6113 return c_api->Array_New_Ref(this, type, length, initial_element, result); 6114 } Array_Set_Ref__ani_env6115 ani_status Array_Set_Ref(ani_array_ref array, ani_size index, ani_ref ref) 6116 { 6117 return c_api->Array_Set_Ref(this, array, index, ref); 6118 } Array_Get_Ref__ani_env6119 ani_status Array_Get_Ref(ani_array_ref array, ani_size index, ani_ref *result) 6120 { 6121 return c_api->Array_Get_Ref(this, array, index, result); 6122 } Enum_GetEnumItemByName__ani_env6123 ani_status Enum_GetEnumItemByName(ani_enum enm, const char *name, ani_enum_item *result) 6124 { 6125 return c_api->Enum_GetEnumItemByName(this, enm, name, result); 6126 } Enum_GetEnumItemByIndex__ani_env6127 ani_status Enum_GetEnumItemByIndex(ani_enum enm, ani_size index, ani_enum_item *result) 6128 { 6129 return c_api->Enum_GetEnumItemByIndex(this, enm, index, result); 6130 } EnumItem_GetEnum__ani_env6131 ani_status EnumItem_GetEnum(ani_enum_item enum_item, ani_enum *result) 6132 { 6133 return c_api->EnumItem_GetEnum(this, enum_item, result); 6134 } EnumItem_GetValue_Int__ani_env6135 ani_status EnumItem_GetValue_Int(ani_enum_item enum_item, ani_int *result) 6136 { 6137 return c_api->EnumItem_GetValue_Int(this, enum_item, result); 6138 } EnumItem_GetValue_String__ani_env6139 ani_status EnumItem_GetValue_String(ani_enum_item enum_item, ani_string *result) 6140 { 6141 return c_api->EnumItem_GetValue_String(this, enum_item, result); 6142 } EnumItem_GetName__ani_env6143 ani_status EnumItem_GetName(ani_enum_item enum_item, ani_string *result) 6144 { 6145 return c_api->EnumItem_GetName(this, enum_item, result); 6146 } EnumItem_GetIndex__ani_env6147 ani_status EnumItem_GetIndex(ani_enum_item enum_item, ani_size *result) 6148 { 6149 return c_api->EnumItem_GetIndex(this, enum_item, result); 6150 } FunctionalObject_Call__ani_env6151 ani_status FunctionalObject_Call(ani_fn_object fn, ani_size argc, ani_ref *argv, ani_ref *result) 6152 { 6153 return c_api->FunctionalObject_Call(this, fn, argc, argv, result); 6154 } Variable_SetValue_Boolean__ani_env6155 ani_status Variable_SetValue_Boolean(ani_variable variable, ani_boolean value) 6156 { 6157 return c_api->Variable_SetValue_Boolean(this, variable, value); 6158 } Variable_SetValue_Char__ani_env6159 ani_status Variable_SetValue_Char(ani_variable variable, ani_char value) 6160 { 6161 return c_api->Variable_SetValue_Char(this, variable, value); 6162 } Variable_SetValue_Byte__ani_env6163 ani_status Variable_SetValue_Byte(ani_variable variable, ani_byte value) 6164 { 6165 return c_api->Variable_SetValue_Byte(this, variable, value); 6166 } Variable_SetValue_Short__ani_env6167 ani_status Variable_SetValue_Short(ani_variable variable, ani_short value) 6168 { 6169 return c_api->Variable_SetValue_Short(this, variable, value); 6170 } Variable_SetValue_Int__ani_env6171 ani_status Variable_SetValue_Int(ani_variable variable, ani_int value) 6172 { 6173 return c_api->Variable_SetValue_Int(this, variable, value); 6174 } Variable_SetValue_Long__ani_env6175 ani_status Variable_SetValue_Long(ani_variable variable, ani_long value) 6176 { 6177 return c_api->Variable_SetValue_Long(this, variable, value); 6178 } Variable_SetValue_Float__ani_env6179 ani_status Variable_SetValue_Float(ani_variable variable, ani_float value) 6180 { 6181 return c_api->Variable_SetValue_Float(this, variable, value); 6182 } Variable_SetValue_Double__ani_env6183 ani_status Variable_SetValue_Double(ani_variable variable, ani_double value) 6184 { 6185 return c_api->Variable_SetValue_Double(this, variable, value); 6186 } Variable_SetValue_Ref__ani_env6187 ani_status Variable_SetValue_Ref(ani_variable variable, ani_ref value) 6188 { 6189 return c_api->Variable_SetValue_Ref(this, variable, value); 6190 } Variable_GetValue_Boolean__ani_env6191 ani_status Variable_GetValue_Boolean(ani_variable variable, ani_boolean *result) 6192 { 6193 return c_api->Variable_GetValue_Boolean(this, variable, result); 6194 } Variable_GetValue_Char__ani_env6195 ani_status Variable_GetValue_Char(ani_variable variable, ani_char *result) 6196 { 6197 return c_api->Variable_GetValue_Char(this, variable, result); 6198 } Variable_GetValue_Byte__ani_env6199 ani_status Variable_GetValue_Byte(ani_variable variable, ani_byte *result) 6200 { 6201 return c_api->Variable_GetValue_Byte(this, variable, result); 6202 } Variable_GetValue_Short__ani_env6203 ani_status Variable_GetValue_Short(ani_variable variable, ani_short *result) 6204 { 6205 return c_api->Variable_GetValue_Short(this, variable, result); 6206 } Variable_GetValue_Int__ani_env6207 ani_status Variable_GetValue_Int(ani_variable variable, ani_int *result) 6208 { 6209 return c_api->Variable_GetValue_Int(this, variable, result); 6210 } Variable_GetValue_Long__ani_env6211 ani_status Variable_GetValue_Long(ani_variable variable, ani_long *result) 6212 { 6213 return c_api->Variable_GetValue_Long(this, variable, result); 6214 } Variable_GetValue_Float__ani_env6215 ani_status Variable_GetValue_Float(ani_variable variable, ani_float *result) 6216 { 6217 return c_api->Variable_GetValue_Float(this, variable, result); 6218 } Variable_GetValue_Double__ani_env6219 ani_status Variable_GetValue_Double(ani_variable variable, ani_double *result) 6220 { 6221 return c_api->Variable_GetValue_Double(this, variable, result); 6222 } Variable_GetValue_Ref__ani_env6223 ani_status Variable_GetValue_Ref(ani_variable variable, ani_ref *result) 6224 { 6225 return c_api->Variable_GetValue_Ref(this, variable, result); 6226 } Function_Call_Boolean__ani_env6227 ani_status Function_Call_Boolean(ani_function fn, ani_boolean *result, ...) 6228 { 6229 va_list args; 6230 va_start(args, result); 6231 ani_status status = c_api->Function_Call_Boolean_V(this, fn, result, args); 6232 va_end(args); 6233 return status; 6234 } Function_Call_Boolean_A__ani_env6235 ani_status Function_Call_Boolean_A(ani_function fn, ani_boolean *result, const ani_value *args) 6236 { 6237 return c_api->Function_Call_Boolean_A(this, fn, result, args); 6238 } Function_Call_Boolean_V__ani_env6239 ani_status Function_Call_Boolean_V(ani_function fn, ani_boolean *result, va_list args) 6240 { 6241 return c_api->Function_Call_Boolean_V(this, fn, result, args); 6242 } Function_Call_Char__ani_env6243 ani_status Function_Call_Char(ani_function fn, ani_char *result, ...) 6244 { 6245 va_list args; 6246 va_start(args, result); 6247 ani_status status = c_api->Function_Call_Char_V(this, fn, result, args); 6248 va_end(args); 6249 return status; 6250 } Function_Call_Char_A__ani_env6251 ani_status Function_Call_Char_A(ani_function fn, ani_char *result, const ani_value *args) 6252 { 6253 return c_api->Function_Call_Char_A(this, fn, result, args); 6254 } Function_Call_Char_V__ani_env6255 ani_status Function_Call_Char_V(ani_function fn, ani_char *result, va_list args) 6256 { 6257 return c_api->Function_Call_Char_V(this, fn, result, args); 6258 } Function_Call_Byte__ani_env6259 ani_status Function_Call_Byte(ani_function fn, ani_byte *result, ...) 6260 { 6261 va_list args; 6262 va_start(args, result); 6263 ani_status status = c_api->Function_Call_Byte_V(this, fn, result, args); 6264 va_end(args); 6265 return status; 6266 } Function_Call_Byte_A__ani_env6267 ani_status Function_Call_Byte_A(ani_function fn, ani_byte *result, const ani_value *args) 6268 { 6269 return c_api->Function_Call_Byte_A(this, fn, result, args); 6270 } Function_Call_Byte_V__ani_env6271 ani_status Function_Call_Byte_V(ani_function fn, ani_byte *result, va_list args) 6272 { 6273 return c_api->Function_Call_Byte_V(this, fn, result, args); 6274 } Function_Call_Short__ani_env6275 ani_status Function_Call_Short(ani_function fn, ani_short *result, ...) 6276 { 6277 va_list args; 6278 va_start(args, result); 6279 ani_status status = c_api->Function_Call_Short_V(this, fn, result, args); 6280 va_end(args); 6281 return status; 6282 } Function_Call_Short_A__ani_env6283 ani_status Function_Call_Short_A(ani_function fn, ani_short *result, const ani_value *args) 6284 { 6285 return c_api->Function_Call_Short_A(this, fn, result, args); 6286 } Function_Call_Short_V__ani_env6287 ani_status Function_Call_Short_V(ani_function fn, ani_short *result, va_list args) 6288 { 6289 return c_api->Function_Call_Short_V(this, fn, result, args); 6290 } Function_Call_Int__ani_env6291 ani_status Function_Call_Int(ani_function fn, ani_int *result, ...) 6292 { 6293 va_list args; 6294 va_start(args, result); 6295 ani_status status = c_api->Function_Call_Int_V(this, fn, result, args); 6296 va_end(args); 6297 return status; 6298 } Function_Call_Int_A__ani_env6299 ani_status Function_Call_Int_A(ani_function fn, ani_int *result, const ani_value *args) 6300 { 6301 return c_api->Function_Call_Int_A(this, fn, result, args); 6302 } Function_Call_Int_V__ani_env6303 ani_status Function_Call_Int_V(ani_function fn, ani_int *result, va_list args) 6304 { 6305 return c_api->Function_Call_Int_V(this, fn, result, args); 6306 } Function_Call_Long__ani_env6307 ani_status Function_Call_Long(ani_function fn, ani_long *result, ...) 6308 { 6309 va_list args; 6310 va_start(args, result); 6311 ani_status status = c_api->Function_Call_Long_V(this, fn, result, args); 6312 va_end(args); 6313 return status; 6314 } Function_Call_Long_A__ani_env6315 ani_status Function_Call_Long_A(ani_function fn, ani_long *result, const ani_value *args) 6316 { 6317 return c_api->Function_Call_Long_A(this, fn, result, args); 6318 } Function_Call_Long_V__ani_env6319 ani_status Function_Call_Long_V(ani_function fn, ani_long *result, va_list args) 6320 { 6321 return c_api->Function_Call_Long_V(this, fn, result, args); 6322 } Function_Call_Float__ani_env6323 ani_status Function_Call_Float(ani_function fn, ani_float *result, ...) 6324 { 6325 va_list args; 6326 va_start(args, result); 6327 ani_status status = c_api->Function_Call_Float_V(this, fn, result, args); 6328 va_end(args); 6329 return status; 6330 } Function_Call_Float_A__ani_env6331 ani_status Function_Call_Float_A(ani_function fn, ani_float *result, const ani_value *args) 6332 { 6333 return c_api->Function_Call_Float_A(this, fn, result, args); 6334 } Function_Call_Float_V__ani_env6335 ani_status Function_Call_Float_V(ani_function fn, ani_float *result, va_list args) 6336 { 6337 return c_api->Function_Call_Float_V(this, fn, result, args); 6338 } Function_Call_Double__ani_env6339 ani_status Function_Call_Double(ani_function fn, ani_double *result, ...) 6340 { 6341 va_list args; 6342 va_start(args, result); 6343 ani_status status = c_api->Function_Call_Double_V(this, fn, result, args); 6344 va_end(args); 6345 return status; 6346 } Function_Call_Double_A__ani_env6347 ani_status Function_Call_Double_A(ani_function fn, ani_double *result, const ani_value *args) 6348 { 6349 return c_api->Function_Call_Double_A(this, fn, result, args); 6350 } Function_Call_Double_V__ani_env6351 ani_status Function_Call_Double_V(ani_function fn, ani_double *result, va_list args) 6352 { 6353 return c_api->Function_Call_Double_V(this, fn, result, args); 6354 } Function_Call_Ref__ani_env6355 ani_status Function_Call_Ref(ani_function fn, ani_ref *result, ...) 6356 { 6357 va_list args; 6358 va_start(args, result); 6359 ani_status status = c_api->Function_Call_Ref_V(this, fn, result, args); 6360 va_end(args); 6361 return status; 6362 } Function_Call_Ref_A__ani_env6363 ani_status Function_Call_Ref_A(ani_function fn, ani_ref *result, const ani_value *args) 6364 { 6365 return c_api->Function_Call_Ref_A(this, fn, result, args); 6366 } Function_Call_Ref_V__ani_env6367 ani_status Function_Call_Ref_V(ani_function fn, ani_ref *result, va_list args) 6368 { 6369 return c_api->Function_Call_Ref_V(this, fn, result, args); 6370 } Function_Call_Void__ani_env6371 ani_status Function_Call_Void(ani_function fn, ...) 6372 { 6373 va_list args; 6374 va_start(args, fn); 6375 ani_status status = c_api->Function_Call_Void_V(this, fn, args); 6376 va_end(args); 6377 return status; 6378 } Function_Call_Void_A__ani_env6379 ani_status Function_Call_Void_A(ani_function fn, const ani_value *args) 6380 { 6381 return c_api->Function_Call_Void_A(this, fn, args); 6382 } Function_Call_Void_V__ani_env6383 ani_status Function_Call_Void_V(ani_function fn, va_list args) 6384 { 6385 return c_api->Function_Call_Void_V(this, fn, args); 6386 } Class_FindField__ani_env6387 ani_status Class_FindField(ani_class cls, const char *name, ani_field *result) 6388 { 6389 return c_api->Class_FindField(this, cls, name, result); 6390 } Class_FindStaticField__ani_env6391 ani_status Class_FindStaticField(ani_class cls, const char *name, ani_static_field *result) 6392 { 6393 return c_api->Class_FindStaticField(this, cls, name, result); 6394 } Class_FindMethod__ani_env6395 ani_status Class_FindMethod(ani_class cls, const char *name, const char *signature, ani_method *result) 6396 { 6397 return c_api->Class_FindMethod(this, cls, name, signature, result); 6398 } Class_FindStaticMethod__ani_env6399 ani_status Class_FindStaticMethod(ani_class cls, const char *name, const char *signature, ani_static_method *result) 6400 { 6401 return c_api->Class_FindStaticMethod(this, cls, name, signature, result); 6402 } Class_FindSetter__ani_env6403 ani_status Class_FindSetter(ani_class cls, const char *name, ani_method *result) 6404 { 6405 return c_api->Class_FindSetter(this, cls, name, result); 6406 } Class_FindGetter__ani_env6407 ani_status Class_FindGetter(ani_class cls, const char *name, ani_method *result) 6408 { 6409 return c_api->Class_FindGetter(this, cls, name, result); 6410 } Class_FindIndexableGetter__ani_env6411 ani_status Class_FindIndexableGetter(ani_class cls, const char *signature, ani_method *result) 6412 { 6413 return c_api->Class_FindIndexableGetter(this, cls, signature, result); 6414 } Class_FindIndexableSetter__ani_env6415 ani_status Class_FindIndexableSetter(ani_class cls, const char *signature, ani_method *result) 6416 { 6417 return c_api->Class_FindIndexableSetter(this, cls, signature, result); 6418 } Class_FindIterator__ani_env6419 ani_status Class_FindIterator(ani_class cls, ani_method *result) 6420 { 6421 return c_api->Class_FindIterator(this, cls, result); 6422 } Class_GetStaticField_Boolean__ani_env6423 ani_status Class_GetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean *result) 6424 { 6425 return c_api->Class_GetStaticField_Boolean(this, cls, field, result); 6426 } Class_GetStaticField_Char__ani_env6427 ani_status Class_GetStaticField_Char(ani_class cls, ani_static_field field, ani_char *result) 6428 { 6429 return c_api->Class_GetStaticField_Char(this, cls, field, result); 6430 } Class_GetStaticField_Byte__ani_env6431 ani_status Class_GetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte *result) 6432 { 6433 return c_api->Class_GetStaticField_Byte(this, cls, field, result); 6434 } Class_GetStaticField_Short__ani_env6435 ani_status Class_GetStaticField_Short(ani_class cls, ani_static_field field, ani_short *result) 6436 { 6437 return c_api->Class_GetStaticField_Short(this, cls, field, result); 6438 } Class_GetStaticField_Int__ani_env6439 ani_status Class_GetStaticField_Int(ani_class cls, ani_static_field field, ani_int *result) 6440 { 6441 return c_api->Class_GetStaticField_Int(this, cls, field, result); 6442 } Class_GetStaticField_Long__ani_env6443 ani_status Class_GetStaticField_Long(ani_class cls, ani_static_field field, ani_long *result) 6444 { 6445 return c_api->Class_GetStaticField_Long(this, cls, field, result); 6446 } Class_GetStaticField_Float__ani_env6447 ani_status Class_GetStaticField_Float(ani_class cls, ani_static_field field, ani_float *result) 6448 { 6449 return c_api->Class_GetStaticField_Float(this, cls, field, result); 6450 } Class_GetStaticField_Double__ani_env6451 ani_status Class_GetStaticField_Double(ani_class cls, ani_static_field field, ani_double *result) 6452 { 6453 return c_api->Class_GetStaticField_Double(this, cls, field, result); 6454 } Class_GetStaticField_Ref__ani_env6455 ani_status Class_GetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref *result) 6456 { 6457 return c_api->Class_GetStaticField_Ref(this, cls, field, result); 6458 } Class_SetStaticField_Boolean__ani_env6459 ani_status Class_SetStaticField_Boolean(ani_class cls, ani_static_field field, ani_boolean value) 6460 { 6461 return c_api->Class_SetStaticField_Boolean(this, cls, field, value); 6462 } Class_SetStaticField_Char__ani_env6463 ani_status Class_SetStaticField_Char(ani_class cls, ani_static_field field, ani_char value) 6464 { 6465 return c_api->Class_SetStaticField_Char(this, cls, field, value); 6466 } Class_SetStaticField_Byte__ani_env6467 ani_status Class_SetStaticField_Byte(ani_class cls, ani_static_field field, ani_byte value) 6468 { 6469 return c_api->Class_SetStaticField_Byte(this, cls, field, value); 6470 } Class_SetStaticField_Short__ani_env6471 ani_status Class_SetStaticField_Short(ani_class cls, ani_static_field field, ani_short value) 6472 { 6473 return c_api->Class_SetStaticField_Short(this, cls, field, value); 6474 } Class_SetStaticField_Int__ani_env6475 ani_status Class_SetStaticField_Int(ani_class cls, ani_static_field field, ani_int value) 6476 { 6477 return c_api->Class_SetStaticField_Int(this, cls, field, value); 6478 } Class_SetStaticField_Long__ani_env6479 ani_status Class_SetStaticField_Long(ani_class cls, ani_static_field field, ani_long value) 6480 { 6481 return c_api->Class_SetStaticField_Long(this, cls, field, value); 6482 } Class_SetStaticField_Float__ani_env6483 ani_status Class_SetStaticField_Float(ani_class cls, ani_static_field field, ani_float value) 6484 { 6485 return c_api->Class_SetStaticField_Float(this, cls, field, value); 6486 } Class_SetStaticField_Double__ani_env6487 ani_status Class_SetStaticField_Double(ani_class cls, ani_static_field field, ani_double value) 6488 { 6489 return c_api->Class_SetStaticField_Double(this, cls, field, value); 6490 } Class_SetStaticField_Ref__ani_env6491 ani_status Class_SetStaticField_Ref(ani_class cls, ani_static_field field, ani_ref value) 6492 { 6493 return c_api->Class_SetStaticField_Ref(this, cls, field, value); 6494 } Class_GetStaticFieldByName_Boolean__ani_env6495 ani_status Class_GetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean *result) 6496 { 6497 return c_api->Class_GetStaticFieldByName_Boolean(this, cls, name, result); 6498 } Class_GetStaticFieldByName_Char__ani_env6499 ani_status Class_GetStaticFieldByName_Char(ani_class cls, const char *name, ani_char *result) 6500 { 6501 return c_api->Class_GetStaticFieldByName_Char(this, cls, name, result); 6502 } Class_GetStaticFieldByName_Byte__ani_env6503 ani_status Class_GetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte *result) 6504 { 6505 return c_api->Class_GetStaticFieldByName_Byte(this, cls, name, result); 6506 } Class_GetStaticFieldByName_Short__ani_env6507 ani_status Class_GetStaticFieldByName_Short(ani_class cls, const char *name, ani_short *result) 6508 { 6509 return c_api->Class_GetStaticFieldByName_Short(this, cls, name, result); 6510 } Class_GetStaticFieldByName_Int__ani_env6511 ani_status Class_GetStaticFieldByName_Int(ani_class cls, const char *name, ani_int *result) 6512 { 6513 return c_api->Class_GetStaticFieldByName_Int(this, cls, name, result); 6514 } Class_GetStaticFieldByName_Long__ani_env6515 ani_status Class_GetStaticFieldByName_Long(ani_class cls, const char *name, ani_long *result) 6516 { 6517 return c_api->Class_GetStaticFieldByName_Long(this, cls, name, result); 6518 } Class_GetStaticFieldByName_Float__ani_env6519 ani_status Class_GetStaticFieldByName_Float(ani_class cls, const char *name, ani_float *result) 6520 { 6521 return c_api->Class_GetStaticFieldByName_Float(this, cls, name, result); 6522 } Class_GetStaticFieldByName_Double__ani_env6523 ani_status Class_GetStaticFieldByName_Double(ani_class cls, const char *name, ani_double *result) 6524 { 6525 return c_api->Class_GetStaticFieldByName_Double(this, cls, name, result); 6526 } Class_GetStaticFieldByName_Ref__ani_env6527 ani_status Class_GetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref *result) 6528 { 6529 return c_api->Class_GetStaticFieldByName_Ref(this, cls, name, result); 6530 } Class_SetStaticFieldByName_Boolean__ani_env6531 ani_status Class_SetStaticFieldByName_Boolean(ani_class cls, const char *name, ani_boolean value) 6532 { 6533 return c_api->Class_SetStaticFieldByName_Boolean(this, cls, name, value); 6534 } Class_SetStaticFieldByName_Char__ani_env6535 ani_status Class_SetStaticFieldByName_Char(ani_class cls, const char *name, ani_char value) 6536 { 6537 return c_api->Class_SetStaticFieldByName_Char(this, cls, name, value); 6538 } Class_SetStaticFieldByName_Byte__ani_env6539 ani_status Class_SetStaticFieldByName_Byte(ani_class cls, const char *name, ani_byte value) 6540 { 6541 return c_api->Class_SetStaticFieldByName_Byte(this, cls, name, value); 6542 } Class_SetStaticFieldByName_Short__ani_env6543 ani_status Class_SetStaticFieldByName_Short(ani_class cls, const char *name, ani_short value) 6544 { 6545 return c_api->Class_SetStaticFieldByName_Short(this, cls, name, value); 6546 } Class_SetStaticFieldByName_Int__ani_env6547 ani_status Class_SetStaticFieldByName_Int(ani_class cls, const char *name, ani_int value) 6548 { 6549 return c_api->Class_SetStaticFieldByName_Int(this, cls, name, value); 6550 } Class_SetStaticFieldByName_Long__ani_env6551 ani_status Class_SetStaticFieldByName_Long(ani_class cls, const char *name, ani_long value) 6552 { 6553 return c_api->Class_SetStaticFieldByName_Long(this, cls, name, value); 6554 } Class_SetStaticFieldByName_Float__ani_env6555 ani_status Class_SetStaticFieldByName_Float(ani_class cls, const char *name, ani_float value) 6556 { 6557 return c_api->Class_SetStaticFieldByName_Float(this, cls, name, value); 6558 } Class_SetStaticFieldByName_Double__ani_env6559 ani_status Class_SetStaticFieldByName_Double(ani_class cls, const char *name, ani_double value) 6560 { 6561 return c_api->Class_SetStaticFieldByName_Double(this, cls, name, value); 6562 } Class_SetStaticFieldByName_Ref__ani_env6563 ani_status Class_SetStaticFieldByName_Ref(ani_class cls, const char *name, ani_ref value) 6564 { 6565 return c_api->Class_SetStaticFieldByName_Ref(this, cls, name, value); 6566 } Class_CallStaticMethod_Boolean__ani_env6567 ani_status Class_CallStaticMethod_Boolean(ani_class cls, ani_static_method method, ani_boolean *result, ...) 6568 { 6569 va_list args; 6570 va_start(args, result); 6571 ani_status status = c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args); 6572 va_end(args); 6573 return status; 6574 } Class_CallStaticMethod_Boolean_A__ani_env6575 ani_status Class_CallStaticMethod_Boolean_A(ani_class cls, ani_static_method method, ani_boolean *result, 6576 const ani_value *args) 6577 { 6578 return c_api->Class_CallStaticMethod_Boolean_A(this, cls, method, result, args); 6579 } Class_CallStaticMethod_Boolean_V__ani_env6580 ani_status Class_CallStaticMethod_Boolean_V(ani_class cls, ani_static_method method, ani_boolean *result, 6581 va_list args) 6582 { 6583 return c_api->Class_CallStaticMethod_Boolean_V(this, cls, method, result, args); 6584 } Class_CallStaticMethod_Char__ani_env6585 ani_status Class_CallStaticMethod_Char(ani_class cls, ani_static_method method, ani_char *result, ...) 6586 { 6587 va_list args; 6588 va_start(args, result); 6589 ani_status status = c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args); 6590 va_end(args); 6591 return status; 6592 } Class_CallStaticMethod_Char_A__ani_env6593 ani_status Class_CallStaticMethod_Char_A(ani_class cls, ani_static_method method, ani_char *result, 6594 const ani_value *args) 6595 { 6596 return c_api->Class_CallStaticMethod_Char_A(this, cls, method, result, args); 6597 } Class_CallStaticMethod_Char_V__ani_env6598 ani_status Class_CallStaticMethod_Char_V(ani_class cls, ani_static_method method, ani_char *result, va_list args) 6599 { 6600 return c_api->Class_CallStaticMethod_Char_V(this, cls, method, result, args); 6601 } Class_CallStaticMethod_Byte__ani_env6602 ani_status Class_CallStaticMethod_Byte(ani_class cls, ani_static_method method, ani_byte *result, ...) 6603 { 6604 va_list args; 6605 va_start(args, result); 6606 ani_status status = c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args); 6607 va_end(args); 6608 return status; 6609 } Class_CallStaticMethod_Byte_A__ani_env6610 ani_status Class_CallStaticMethod_Byte_A(ani_class cls, ani_static_method method, ani_byte *result, 6611 const ani_value *args) 6612 { 6613 return c_api->Class_CallStaticMethod_Byte_A(this, cls, method, result, args); 6614 } Class_CallStaticMethod_Byte_V__ani_env6615 ani_status Class_CallStaticMethod_Byte_V(ani_class cls, ani_static_method method, ani_byte *result, va_list args) 6616 { 6617 return c_api->Class_CallStaticMethod_Byte_V(this, cls, method, result, args); 6618 } Class_CallStaticMethod_Short__ani_env6619 ani_status Class_CallStaticMethod_Short(ani_class cls, ani_static_method method, ani_short *result, ...) 6620 { 6621 va_list args; 6622 va_start(args, result); 6623 ani_status status = c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args); 6624 va_end(args); 6625 return status; 6626 } Class_CallStaticMethod_Short_A__ani_env6627 ani_status Class_CallStaticMethod_Short_A(ani_class cls, ani_static_method method, ani_short *result, 6628 const ani_value *args) 6629 { 6630 return c_api->Class_CallStaticMethod_Short_A(this, cls, method, result, args); 6631 } Class_CallStaticMethod_Short_V__ani_env6632 ani_status Class_CallStaticMethod_Short_V(ani_class cls, ani_static_method method, ani_short *result, va_list args) 6633 { 6634 return c_api->Class_CallStaticMethod_Short_V(this, cls, method, result, args); 6635 } Class_CallStaticMethod_Int__ani_env6636 ani_status Class_CallStaticMethod_Int(ani_class cls, ani_static_method method, ani_int *result, ...) 6637 { 6638 va_list args; 6639 va_start(args, result); 6640 ani_status status = c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args); 6641 va_end(args); 6642 return status; 6643 } Class_CallStaticMethod_Int_A__ani_env6644 ani_status Class_CallStaticMethod_Int_A(ani_class cls, ani_static_method method, ani_int *result, 6645 const ani_value *args) 6646 { 6647 return c_api->Class_CallStaticMethod_Int_A(this, cls, method, result, args); 6648 } Class_CallStaticMethod_Int_V__ani_env6649 ani_status Class_CallStaticMethod_Int_V(ani_class cls, ani_static_method method, ani_int *result, va_list args) 6650 { 6651 return c_api->Class_CallStaticMethod_Int_V(this, cls, method, result, args); 6652 } Class_CallStaticMethod_Long__ani_env6653 ani_status Class_CallStaticMethod_Long(ani_class cls, ani_static_method method, ani_long *result, ...) 6654 { 6655 va_list args; 6656 va_start(args, result); 6657 ani_status status = c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args); 6658 va_end(args); 6659 return status; 6660 } Class_CallStaticMethod_Long_A__ani_env6661 ani_status Class_CallStaticMethod_Long_A(ani_class cls, ani_static_method method, ani_long *result, 6662 const ani_value *args) 6663 { 6664 return c_api->Class_CallStaticMethod_Long_A(this, cls, method, result, args); 6665 } Class_CallStaticMethod_Long_V__ani_env6666 ani_status Class_CallStaticMethod_Long_V(ani_class cls, ani_static_method method, ani_long *result, va_list args) 6667 { 6668 return c_api->Class_CallStaticMethod_Long_V(this, cls, method, result, args); 6669 } Class_CallStaticMethod_Float__ani_env6670 ani_status Class_CallStaticMethod_Float(ani_class cls, ani_static_method method, ani_float *result, ...) 6671 { 6672 va_list args; 6673 va_start(args, result); 6674 ani_status status = c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args); 6675 va_end(args); 6676 return status; 6677 } Class_CallStaticMethod_Float_A__ani_env6678 ani_status Class_CallStaticMethod_Float_A(ani_class cls, ani_static_method method, ani_float *result, 6679 const ani_value *args) 6680 { 6681 return c_api->Class_CallStaticMethod_Float_A(this, cls, method, result, args); 6682 } Class_CallStaticMethod_Float_V__ani_env6683 ani_status Class_CallStaticMethod_Float_V(ani_class cls, ani_static_method method, ani_float *result, va_list args) 6684 { 6685 return c_api->Class_CallStaticMethod_Float_V(this, cls, method, result, args); 6686 } Class_CallStaticMethod_Double__ani_env6687 ani_status Class_CallStaticMethod_Double(ani_class cls, ani_static_method method, ani_double *result, ...) 6688 { 6689 va_list args; 6690 va_start(args, result); 6691 ani_status status = c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args); 6692 va_end(args); 6693 return status; 6694 } Class_CallStaticMethod_Double_A__ani_env6695 ani_status Class_CallStaticMethod_Double_A(ani_class cls, ani_static_method method, ani_double *result, 6696 const ani_value *args) 6697 { 6698 return c_api->Class_CallStaticMethod_Double_A(this, cls, method, result, args); 6699 } Class_CallStaticMethod_Double_V__ani_env6700 ani_status Class_CallStaticMethod_Double_V(ani_class cls, ani_static_method method, ani_double *result, 6701 va_list args) 6702 { 6703 return c_api->Class_CallStaticMethod_Double_V(this, cls, method, result, args); 6704 } Class_CallStaticMethod_Ref__ani_env6705 ani_status Class_CallStaticMethod_Ref(ani_class cls, ani_static_method method, ani_ref *result, ...) 6706 { 6707 va_list args; 6708 va_start(args, result); 6709 ani_status status = c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args); 6710 va_end(args); 6711 return status; 6712 } Class_CallStaticMethod_Ref_A__ani_env6713 ani_status Class_CallStaticMethod_Ref_A(ani_class cls, ani_static_method method, ani_ref *result, 6714 const ani_value *args) 6715 { 6716 return c_api->Class_CallStaticMethod_Ref_A(this, cls, method, result, args); 6717 } Class_CallStaticMethod_Ref_V__ani_env6718 ani_status Class_CallStaticMethod_Ref_V(ani_class cls, ani_static_method method, ani_ref *result, va_list args) 6719 { 6720 return c_api->Class_CallStaticMethod_Ref_V(this, cls, method, result, args); 6721 } Class_CallStaticMethod_Void__ani_env6722 ani_status Class_CallStaticMethod_Void(ani_class cls, ani_static_method method, ...) 6723 { 6724 va_list args; 6725 va_start(args, method); 6726 ani_status status = c_api->Class_CallStaticMethod_Void_V(this, cls, method, args); 6727 va_end(args); 6728 return status; 6729 } Class_CallStaticMethod_Void_A__ani_env6730 ani_status Class_CallStaticMethod_Void_A(ani_class cls, ani_static_method method, const ani_value *args) 6731 { 6732 return c_api->Class_CallStaticMethod_Void_A(this, cls, method, args); 6733 } Class_CallStaticMethod_Void_V__ani_env6734 ani_status Class_CallStaticMethod_Void_V(ani_class cls, ani_static_method method, va_list args) 6735 { 6736 return c_api->Class_CallStaticMethod_Void_V(this, cls, method, args); 6737 } Class_CallStaticMethodByName_Boolean__ani_env6738 ani_status Class_CallStaticMethodByName_Boolean(ani_class cls, const char *name, const char *signature, 6739 ani_boolean *result, ...) 6740 { 6741 va_list args; 6742 va_start(args, result); 6743 ani_status status = c_api->Class_CallStaticMethodByName_Boolean_V(this, cls, name, signature, result, args); 6744 va_end(args); 6745 return status; 6746 } Class_CallStaticMethodByName_Boolean_A__ani_env6747 ani_status Class_CallStaticMethodByName_Boolean_A(ani_class cls, const char *name, const char *signature, 6748 ani_boolean *result, const ani_value *args) 6749 { 6750 return c_api->Class_CallStaticMethodByName_Boolean_A(this, cls, name, signature, result, args); 6751 } Class_CallStaticMethodByName_Boolean_V__ani_env6752 ani_status Class_CallStaticMethodByName_Boolean_V(ani_class cls, const char *name, const char *signature, 6753 ani_boolean *result, va_list args) 6754 { 6755 return c_api->Class_CallStaticMethodByName_Boolean_V(this, cls, name, signature, result, args); 6756 } Class_CallStaticMethodByName_Char__ani_env6757 ani_status Class_CallStaticMethodByName_Char(ani_class cls, const char *name, const char *signature, 6758 ani_char *result, ...) 6759 { 6760 va_list args; 6761 va_start(args, result); 6762 ani_status status = c_api->Class_CallStaticMethodByName_Char_V(this, cls, name, signature, result, args); 6763 va_end(args); 6764 return status; 6765 } Class_CallStaticMethodByName_Char_A__ani_env6766 ani_status Class_CallStaticMethodByName_Char_A(ani_class cls, const char *name, const char *signature, 6767 ani_char *result, const ani_value *args) 6768 { 6769 return c_api->Class_CallStaticMethodByName_Char_A(this, cls, name, signature, result, args); 6770 } Class_CallStaticMethodByName_Char_V__ani_env6771 ani_status Class_CallStaticMethodByName_Char_V(ani_class cls, const char *name, const char *signature, 6772 ani_char *result, va_list args) 6773 { 6774 return c_api->Class_CallStaticMethodByName_Char_V(this, cls, name, signature, result, args); 6775 } Class_CallStaticMethodByName_Byte__ani_env6776 ani_status Class_CallStaticMethodByName_Byte(ani_class cls, const char *name, const char *signature, 6777 ani_byte *result, ...) 6778 { 6779 va_list args; 6780 va_start(args, result); 6781 ani_status status = c_api->Class_CallStaticMethodByName_Byte_V(this, cls, name, signature, result, args); 6782 va_end(args); 6783 return status; 6784 } Class_CallStaticMethodByName_Byte_A__ani_env6785 ani_status Class_CallStaticMethodByName_Byte_A(ani_class cls, const char *name, const char *signature, 6786 ani_byte *result, const ani_value *args) 6787 { 6788 return c_api->Class_CallStaticMethodByName_Byte_A(this, cls, name, signature, result, args); 6789 } Class_CallStaticMethodByName_Byte_V__ani_env6790 ani_status Class_CallStaticMethodByName_Byte_V(ani_class cls, const char *name, const char *signature, 6791 ani_byte *result, va_list args) 6792 { 6793 return c_api->Class_CallStaticMethodByName_Byte_V(this, cls, name, signature, result, args); 6794 } Class_CallStaticMethodByName_Short__ani_env6795 ani_status Class_CallStaticMethodByName_Short(ani_class cls, const char *name, const char *signature, 6796 ani_short *result, ...) 6797 { 6798 va_list args; 6799 va_start(args, result); 6800 ani_status status = c_api->Class_CallStaticMethodByName_Short_V(this, cls, name, signature, result, args); 6801 va_end(args); 6802 return status; 6803 } Class_CallStaticMethodByName_Short_A__ani_env6804 ani_status Class_CallStaticMethodByName_Short_A(ani_class cls, const char *name, const char *signature, 6805 ani_short *result, const ani_value *args) 6806 { 6807 return c_api->Class_CallStaticMethodByName_Short_A(this, cls, name, signature, result, args); 6808 } Class_CallStaticMethodByName_Short_V__ani_env6809 ani_status Class_CallStaticMethodByName_Short_V(ani_class cls, const char *name, const char *signature, 6810 ani_short *result, va_list args) 6811 { 6812 return c_api->Class_CallStaticMethodByName_Short_V(this, cls, name, signature, result, args); 6813 } Class_CallStaticMethodByName_Int__ani_env6814 ani_status Class_CallStaticMethodByName_Int(ani_class cls, const char *name, const char *signature, ani_int *result, 6815 ...) 6816 { 6817 va_list args; 6818 va_start(args, result); 6819 ani_status status = c_api->Class_CallStaticMethodByName_Int_V(this, cls, name, signature, result, args); 6820 va_end(args); 6821 return status; 6822 } Class_CallStaticMethodByName_Int_A__ani_env6823 ani_status Class_CallStaticMethodByName_Int_A(ani_class cls, const char *name, const char *signature, 6824 ani_int *result, const ani_value *args) 6825 { 6826 return c_api->Class_CallStaticMethodByName_Int_A(this, cls, name, signature, result, args); 6827 } Class_CallStaticMethodByName_Int_V__ani_env6828 ani_status Class_CallStaticMethodByName_Int_V(ani_class cls, const char *name, const char *signature, 6829 ani_int *result, va_list args) 6830 { 6831 return c_api->Class_CallStaticMethodByName_Int_V(this, cls, name, signature, result, args); 6832 } Class_CallStaticMethodByName_Long__ani_env6833 ani_status Class_CallStaticMethodByName_Long(ani_class cls, const char *name, const char *signature, 6834 ani_long *result, ...) 6835 { 6836 va_list args; 6837 va_start(args, result); 6838 ani_status status = c_api->Class_CallStaticMethodByName_Long_V(this, cls, name, signature, result, args); 6839 va_end(args); 6840 return status; 6841 } Class_CallStaticMethodByName_Long_A__ani_env6842 ani_status Class_CallStaticMethodByName_Long_A(ani_class cls, const char *name, const char *signature, 6843 ani_long *result, const ani_value *args) 6844 { 6845 return c_api->Class_CallStaticMethodByName_Long_A(this, cls, name, signature, result, args); 6846 } Class_CallStaticMethodByName_Long_V__ani_env6847 ani_status Class_CallStaticMethodByName_Long_V(ani_class cls, const char *name, const char *signature, 6848 ani_long *result, va_list args) 6849 { 6850 return c_api->Class_CallStaticMethodByName_Long_V(this, cls, name, signature, result, args); 6851 } Class_CallStaticMethodByName_Float__ani_env6852 ani_status Class_CallStaticMethodByName_Float(ani_class cls, const char *name, const char *signature, 6853 ani_float *result, ...) 6854 { 6855 va_list args; 6856 va_start(args, result); 6857 ani_status status = c_api->Class_CallStaticMethodByName_Float_V(this, cls, name, signature, result, args); 6858 va_end(args); 6859 return status; 6860 } Class_CallStaticMethodByName_Float_A__ani_env6861 ani_status Class_CallStaticMethodByName_Float_A(ani_class cls, const char *name, const char *signature, 6862 ani_float *result, const ani_value *args) 6863 { 6864 return c_api->Class_CallStaticMethodByName_Float_A(this, cls, name, signature, result, args); 6865 } Class_CallStaticMethodByName_Float_V__ani_env6866 ani_status Class_CallStaticMethodByName_Float_V(ani_class cls, const char *name, const char *signature, 6867 ani_float *result, va_list args) 6868 { 6869 return c_api->Class_CallStaticMethodByName_Float_V(this, cls, name, signature, result, args); 6870 } Class_CallStaticMethodByName_Double__ani_env6871 ani_status Class_CallStaticMethodByName_Double(ani_class cls, const char *name, const char *signature, 6872 ani_double *result, ...) 6873 { 6874 va_list args; 6875 va_start(args, result); 6876 ani_status status = c_api->Class_CallStaticMethodByName_Double_V(this, cls, name, signature, result, args); 6877 va_end(args); 6878 return status; 6879 } Class_CallStaticMethodByName_Double_A__ani_env6880 ani_status Class_CallStaticMethodByName_Double_A(ani_class cls, const char *name, const char *signature, 6881 ani_double *result, const ani_value *args) 6882 { 6883 return c_api->Class_CallStaticMethodByName_Double_A(this, cls, name, signature, result, args); 6884 } Class_CallStaticMethodByName_Double_V__ani_env6885 ani_status Class_CallStaticMethodByName_Double_V(ani_class cls, const char *name, const char *signature, 6886 ani_double *result, va_list args) 6887 { 6888 return c_api->Class_CallStaticMethodByName_Double_V(this, cls, name, signature, result, args); 6889 } Class_CallStaticMethodByName_Ref__ani_env6890 ani_status Class_CallStaticMethodByName_Ref(ani_class cls, const char *name, const char *signature, ani_ref *result, 6891 ...) 6892 { 6893 va_list args; 6894 va_start(args, result); 6895 ani_status status = c_api->Class_CallStaticMethodByName_Ref_V(this, cls, name, signature, result, args); 6896 va_end(args); 6897 return status; 6898 } Class_CallStaticMethodByName_Ref_A__ani_env6899 ani_status Class_CallStaticMethodByName_Ref_A(ani_class cls, const char *name, const char *signature, 6900 ani_ref *result, const ani_value *args) 6901 { 6902 return c_api->Class_CallStaticMethodByName_Ref_A(this, cls, name, signature, result, args); 6903 } Class_CallStaticMethodByName_Ref_V__ani_env6904 ani_status Class_CallStaticMethodByName_Ref_V(ani_class cls, const char *name, const char *signature, 6905 ani_ref *result, va_list args) 6906 { 6907 return c_api->Class_CallStaticMethodByName_Ref_V(this, cls, name, signature, result, args); 6908 } Class_CallStaticMethodByName_Void__ani_env6909 ani_status Class_CallStaticMethodByName_Void(ani_class cls, const char *name, const char *signature, ...) 6910 { 6911 va_list args; 6912 va_start(args, signature); 6913 ani_status status = c_api->Class_CallStaticMethodByName_Void_V(this, cls, name, signature, args); 6914 va_end(args); 6915 return status; 6916 } Class_CallStaticMethodByName_Void_A__ani_env6917 ani_status Class_CallStaticMethodByName_Void_A(ani_class cls, const char *name, const char *signature, 6918 const ani_value *args) 6919 { 6920 return c_api->Class_CallStaticMethodByName_Void_A(this, cls, name, signature, args); 6921 } Class_CallStaticMethodByName_Void_V__ani_env6922 ani_status Class_CallStaticMethodByName_Void_V(ani_class cls, const char *name, const char *signature, va_list args) 6923 { 6924 return c_api->Class_CallStaticMethodByName_Void_V(this, cls, name, signature, args); 6925 } Object_GetField_Boolean__ani_env6926 ani_status Object_GetField_Boolean(ani_object object, ani_field field, ani_boolean *result) 6927 { 6928 return c_api->Object_GetField_Boolean(this, object, field, result); 6929 } Object_GetField_Char__ani_env6930 ani_status Object_GetField_Char(ani_object object, ani_field field, ani_char *result) 6931 { 6932 return c_api->Object_GetField_Char(this, object, field, result); 6933 } Object_GetField_Byte__ani_env6934 ani_status Object_GetField_Byte(ani_object object, ani_field field, ani_byte *result) 6935 { 6936 return c_api->Object_GetField_Byte(this, object, field, result); 6937 } Object_GetField_Short__ani_env6938 ani_status Object_GetField_Short(ani_object object, ani_field field, ani_short *result) 6939 { 6940 return c_api->Object_GetField_Short(this, object, field, result); 6941 } Object_GetField_Int__ani_env6942