55 #if !defined(__AMXD_FUNCTION_H__)
56 #define __AMXD_FUNCTION_H__
125 const uint32_t ret_type,
229 amxc_var_t*
const args,
230 amxc_var_t*
const ret);
261 return func == NULL ? AMXC_VAR_ID_NULL : func->
ret_type;
326 const uint32_t bitmask,
481 amxc_var_t*
const value);
518 amxc_var_t*
const ret,
574 amxp_deferred_fn_t cb,
600 amxc_var_t* out_args,
625 amxc_var_t* out_args,
644 amxc_var_t* default_value);
730 const uint32_t bitmask,
772 amxc_var_t*
const value);
void(* amxd_deferred_cancel_t)(uint64_t call_id, void *const priv)
enum _amxd_status amxd_status_t
amxd_status_t(* amxd_object_fn_t)(amxd_object_t *object, amxd_function_t *func, amxc_var_t *args, amxc_var_t *ret)
enum _amxd_fattr_id amxd_fattr_id_t
The method attributes.
enum _amxd_aattr_id amxd_aattr_id_t
The method argument attributes.
amxd_status_t amxd_function_deferred_call_done(uint64_t call_id, amxd_status_t status, amxc_var_t *out_args, amxc_var_t *ret)
Finishes a deferred method and removes the deferred function context.
amxd_status_t amxd_function_set_attr(amxd_function_t *func, const amxd_fattr_id_t attr, const bool enable)
Sets or unsets a method attribute.
amxd_status_t amxd_function_describe(amxd_function_t *const func, amxc_var_t *const value)
Fetches the full RPC method definition in a variant.
const char * amxd_function_get_name(const amxd_function_t *const func)
Get the name of a method.
void amxd_function_delete(amxd_function_t **func)
Data model RPC method destructor function.
amxd_status_t amxd_function_arg_set_attr(amxd_function_t *const func, const char *name, const amxd_aattr_id_t attr, const bool enable)
Sets or unsets a method argument attribute.
amxd_func_arg_t * amxd_function_get_arg(const amxd_function_t *const func, const char *name)
Gets the argument definition of a RPC method.
bool amxd_function_arg_is_attr_set(const amxd_function_t *const func, const char *name, const amxd_aattr_id_t attr)
Checks if a method argument attribute is set.
amxd_status_t amxd_function_arg_describe(amxd_func_arg_t *const arg, amxc_var_t *const value)
Fetches the argument definition in a variant.
void amxd_function_deferred_remove(uint64_t call_id)
Removes a deferred RPC context.
amxd_object_t * amxd_function_get_owner(const amxd_function_t *const func)
Get the object pointer of the object containing the function definition.
static uint32_t amxd_function_get_type(const amxd_function_t *const func)
Gets the return type of a method.
void amxd_function_unset_flag(amxd_function_t *func, const char *flag)
Removes a flag from a function.
amxd_status_t amxd_function_defer(const amxd_function_t *const func, uint64_t *call_id, amxc_var_t *const ret, amxd_deferred_cancel_t cancel_fn, void *priv)
Creates a deferred RPC context.
amxd_status_t amxd_function_new(amxd_function_t **func, const char *name, const uint32_t ret_type, amxd_object_fn_t impl)
Data model RPC method constructor function.
amxd_status_t amxd_function_call_base(const amxd_function_t *const func, amxd_object_t *const object, amxc_var_t *const args, amxc_var_t *const ret)
Call the base function of an overridden function.
amxd_status_t amxd_function_deferred_done(uint64_t call_id, amxd_status_t status, amxc_var_t *out_args, amxc_var_t *ret)
Finishes a deferred method and removes the deferred function context.
void amxd_function_del_arg(amxd_function_t *func, const char *name)
Removes an argument definition from a RPC method definition.
amxd_status_t amxd_function_set_attrs(amxd_function_t *func, const uint32_t bitmask, bool enable)
Sets or unsets method attributes using a bitmap.
amxd_status_t amxd_function_set_deferred_cb(uint64_t call_id, amxp_deferred_fn_t cb, void *priv)
Sets a callback function to get the result of the deferred call.
amxd_status_t amxd_function_copy(amxd_function_t **dest, const amxd_function_t *const source)
Data model RPC method copy constructor function.
bool amxd_function_are_args_valid(amxd_function_t *func, amxc_var_t *args)
Validates that the input arguments are valid.
bool amxd_function_is_attr_set(const amxd_function_t *const func, const amxd_fattr_id_t attr)
Checks if a method attribute is set.
void * amxd_function_deferred_get_priv(uint64_t call_id)
Gets the callee private data of an deferred function.
bool amxd_function_has_flag(const amxd_function_t *const func, const char *flag)
Checks if a flag is set.
void amxd_function_set_flag(amxd_function_t *func, const char *flag)
Sets a flag on a function.
uint32_t amxd_function_get_attrs(const amxd_function_t *const func)
Gets the set attributes of a RPC method.
amxd_function_t * amxd_function_get_base(const amxd_function_t *const func)
Get the base function definition of an overridden function.
amxd_status_t amxd_function_new_arg(amxd_function_t *func, const char *name, const uint32_t type, amxc_var_t *default_value)
Adds an argument definition to a RPC method definition.
amxd_status_t amxd_function_arg_set_attrs(amxd_function_t *func, const char *name, const uint32_t bitmask, bool enable)
Sets or unsets method argument attributes using a bitmap.
amxd_status_t amxd_function_set_impl(amxd_function_t *const func, amxd_object_fn_t impl)
Set an implementation for a RPC method.
static amxd_status_t status