libamxb  4.8.2
Bus Agnostic C API
amxb_ba_op_del.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <string.h>
#include <amxc/amxc.h>
#include <amxp/amxp.h>
#include <amxd/amxd_common.h>
#include <amxd/amxd_dm.h>
#include <amxd/amxd_path.h>
#include <amxd/amxd_object.h>
#include <amxb/amxb_be_intf.h>
#include <amxb/amxb.h>
#include "amxb_priv.h"

Go to the source code of this file.

Macros

#define _GNU_SOURCE
 

Functions

static int amxb_invoke_del (amxb_bus_ctx_t *const bus_ctx, const char *object, const char *rel_path, uint32_t index, const char *name, amxc_var_t *ret, int timeout)
 
int amxb_del (amxb_bus_ctx_t *const bus_ctx, const char *object, uint32_t index, const char *name, amxc_var_t *ret, int timeout)
 Deletes one or more instances of a multi-instance object. More...
 

Macro Definition Documentation

◆ _GNU_SOURCE

#define _GNU_SOURCE

Definition at line 56 of file amxb_ba_op_del.c.

Function Documentation

◆ amxb_invoke_del()

static int amxb_invoke_del ( amxb_bus_ctx_t *const  bus_ctx,
const char *  object,
const char *  rel_path,
uint32_t  index,
const char *  name,
amxc_var_t *  ret,
int  timeout 
)
static

Definition at line 78 of file amxb_ba_op_del.c.

84  {
85  amxb_invoke_t* invoke_ctx = NULL;
86  amxc_var_t* paths = NULL;
87  amxc_var_t args;
88  int retval = amxd_status_unknown_error;
89 
90  amxc_var_init(&args);
91  amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
92 
93  if((rel_path != NULL) && (*rel_path != 0)) {
94  amxc_var_add_key(cstring_t, &args, "rel_path", rel_path);
95  }
96 
97  amxc_var_add_key(uint32_t, &args, "index", index);
98  amxc_var_add_key(cstring_t, &args, "name", name);
99  amxc_var_add_key(uint32_t, &args, "access", bus_ctx->access);
100 
101  retval = amxb_new_invoke(&invoke_ctx, bus_ctx, object, NULL, "_del");
102  when_failed(retval, exit);
103  retval = amxb_invoke(invoke_ctx, &args, ret, NULL, NULL, timeout);
104  when_failed(retval, exit);
105 
106  paths = GETI_ARG(ret, 0);
107  amxc_var_take_it(paths);
108  amxc_var_move(ret, paths);
109  amxc_var_delete(&paths);
110 
111 exit:
112  amxc_var_clean(&args);
113  amxb_free_invoke(&invoke_ctx);
114  return retval;
115 }
int amxb_new_invoke(amxb_invoke_t **invoke_ctx, amxb_bus_ctx_t *const ctx, const char *object, const char *interface, const char *method)
Prepares a remote function invocation.
void amxb_free_invoke(amxb_invoke_t **invoke_ctx)
Deletes a function invoke context, and frees allocated memory.
int amxb_invoke(amxb_invoke_t *invoke_ctx, amxc_var_t *args, amxc_var_t *ret, amxb_be_cb_fn_t fn, void *priv, int timeout)
Invokes a remote function, as defined by the function invoke context.
uint32_t access
Definition: amxb_types.h:125
static amxb_bus_ctx_t * bus_ctx
Definition: test_amxb_e2e.c:84