#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <amxc/amxc.h>
#include <amxp/amxp_signal.h>
#include <amxp/amxp_slot.h>
#include <amxd/amxd_common.h>
#include <amxd/amxd_types.h>
#include <amxd/amxd_object.h>
#include <amxd/amxd_function.h>
#include "amxd_priv.h"
#include "amxd_assert.h"
#include "amxd_dm_priv.h"
Go to the source code of this file.
|
static void | amxd_delete_deferred (amxc_llist_it_t *it) |
|
static void | amxd_cancel_deferred (amxd_deferred_ctx_t *call, amxc_var_t *sig_data) |
|
amxd_deferred_ctx_t * | amxd_find_deferred (uint64_t call_id) |
|
void | amxd_dm_cancel_deferred (amxd_dm_t *dm) |
|
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. More...
|
|
void | amxd_function_deferred_remove (uint64_t call_id) |
| Removes a deferred RPC context. More...
|
|
void * | amxd_function_deferred_get_priv (uint64_t call_id) |
| Gets the callee private data of an deferred function. More...
|
|
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. More...
|
|
static amxd_status_t | amxd_function_deferred_done_impl (uint64_t call_id, amxd_status_t status, amxc_var_t *out_args, amxc_var_t *ret, bool now) |
|
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. More...
|
|
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. More...
|
|
static CONSTRUCTOR void | amxd_function_deferred_init (void) |
|
◆ _GNU_SOURCE
◆ amxd_cancel_deferred()
◆ amxd_delete_deferred()
static void amxd_delete_deferred |
( |
amxc_llist_it_t * |
it | ) |
|
|
static |
◆ amxd_dm_cancel_deferred()
void amxd_dm_cancel_deferred |
( |
amxd_dm_t * |
dm | ) |
|
Definition at line 109 of file amxd_function_deferred.c.
112 amxc_var_init(&sig_data);
113 amxc_var_set_type(&sig_data, AMXC_VAR_ID_HTABLE);
114 amxc_var_add_new_key(&sig_data,
"retval");
123 amxc_var_clean(&sig_data);
static void amxd_delete_deferred(amxc_llist_it_t *it)
static void amxd_cancel_deferred(amxd_deferred_ctx_t *call, amxc_var_t *sig_data)
@ amxd_status_unknown_error
◆ amxd_find_deferred()
◆ amxd_function_deferred_done_impl()
static amxd_status_t amxd_function_deferred_done_impl |
( |
uint64_t |
call_id, |
|
|
amxd_status_t |
status, |
|
|
amxc_var_t * |
out_args, |
|
|
amxc_var_t * |
ret, |
|
|
bool |
now |
|
) |
| |
|
static |
Definition at line 201 of file amxd_function_deferred.c.
210 amxc_var_init(&sig_data);
212 when_null(call, exit);
215 amxc_var_set_type(&sig_data, AMXC_VAR_ID_HTABLE);
217 amxc_var_set_key(&sig_data,
"retval", ret, AMXC_VAR_FLAG_COPY);
219 amxc_var_add_new_key(&sig_data,
"retval");
221 if(out_args != NULL) {
222 amxc_var_set_key(&sig_data,
"args", out_args, AMXC_VAR_FLAG_COPY);
224 amxc_var_add_key(uint32_t, &sig_data,
"status",
status);
229 amxp_sigmngr_deferred_call(NULL, call->
cb, &sig_data, call->
caller_priv);
238 amxc_var_clean(&sig_data);
amxd_deferred_ctx_t * amxd_find_deferred(uint64_t call_id)
enum _amxd_status amxd_status_t
static amxd_status_t status
◆ amxd_function_deferred_init()
static CONSTRUCTOR void amxd_function_deferred_init |
( |
void |
| ) |
|
|
static |
◆ deferred
◆ g_call_id