libamxb  4.8.2
Bus Agnostic C API
amxb_ba_op_get_sup.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_get_supported (amxb_bus_ctx_t *const bus_ctx, const char *object, const char *rel_path, uint32_t flags, amxc_var_t *values, int timeout)
 
int amxb_get_supported (amxb_bus_ctx_t *const bus_ctx, const char *object, uint32_t flags, amxc_var_t *values, int timeout)
 Gets the supported data model. More...
 

Macro Definition Documentation

◆ _GNU_SOURCE

#define _GNU_SOURCE

Definition at line 56 of file amxb_ba_op_get_sup.c.

Function Documentation

◆ amxb_invoke_get_supported()

static int amxb_invoke_get_supported ( amxb_bus_ctx_t *const  bus_ctx,
const char *  object,
const char *  rel_path,
uint32_t  flags,
amxc_var_t *  values,
int  timeout 
)
static

Definition at line 78 of file amxb_ba_op_get_sup.c.

83  {
84  amxb_invoke_t* invoke_ctx = NULL;
85  amxc_var_t args;
86  int retval = amxd_status_unknown_error;
87 
88  amxc_var_init(&args);
89  amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
90 
91  if((rel_path != NULL) && (*rel_path != 0)) {
92  amxc_var_add_key(cstring_t, &args, "rel_path", rel_path);
93  }
94 
95  amxc_var_add_key(bool, &args,
96  "first_level_only", (flags & AMXB_FLAG_FIRST_LVL) != 0);
97  amxc_var_add_key(bool, &args, "functions", (flags & AMXB_FLAG_FUNCTIONS) != 0);
98  amxc_var_add_key(bool, &args, "parameters", (flags & AMXB_FLAG_PARAMETERS) != 0);
99  amxc_var_add_key(bool, &args, "events", (flags & AMXB_FLAG_EVENTS) != 0);
100  amxc_var_add_key(uint32_t, &args, "access", bus_ctx->access);
101 
102  retval = amxb_new_invoke(&invoke_ctx, bus_ctx, object, NULL, "_get_supported");
103  when_failed(retval, exit);
104  retval = amxb_invoke(invoke_ctx, &args, values, NULL, NULL, timeout);
105  when_failed(retval, exit);
106 
107 exit:
108  amxc_var_clean(&args);
109  amxb_free_invoke(&invoke_ctx);
110  return retval;
111 }
#define AMXB_FLAG_FUNCTIONS
#define AMXB_FLAG_PARAMETERS
#define AMXB_FLAG_EVENTS
#define AMXB_FLAG_FIRST_LVL
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