54 #if !defined(__AMXB_UBUS_H__)
55 #define __AMXB_UBUS_H__
63 #include <libubox/blob.h>
64 #include <libubox/uloop.h>
65 #include <libubox/usock.h>
66 #include <libubox/list.h>
68 #include <amxc/amxc_macros.h>
69 #include <amxc/amxc.h>
70 #include <amxp/amxp.h>
72 #include <amxd/amxd_dm.h>
73 #include <amxd/amxd_object.h>
74 #include <amxd/amxd_function.h>
75 #include <amxd/amxd_path.h>
77 #include <amxb/amxb.h>
78 #include <amxb/amxb_be_intf.h>
82 struct ubus_subscriber
sub;
92 struct ubus_event_handler
watcher;
116 struct blob_attr* attr,
120 struct blob_attr* attr,
124 struct blob_attr* attr,
139 amxc_string_t* rel_path);
143 struct blob_attr* msg);
148 amxb_request_t* request,
165 amxb_invoke_t* invoke_ctx,
167 amxb_request_t* request,
171 amxb_invoke_t* invoke_ctx,
173 amxb_request_t* request);
176 amxb_request_t* request,
180 amxb_request_t* request);
189 amxd_dm_t*
const dm);
199 amxb_request_t* request);
void PRIVATE amxb_ubus_obj_it_free(amxc_llist_it_t *it)
int PRIVATE amxb_ubus_disconnect(void *ctx)
int PRIVATE amxb_ubus_wait_request(void *const ctx, amxb_request_t *request, int timeout)
int PRIVATE amxb_ubus_close_request(void *const ctx, amxb_request_t *request)
amxb_be_info_t * amxb_be_info(void)
int PRIVATE amxb_ubus_format_blob_array(const amxc_llist_t *list, struct blob_buf *b)
int PRIVATE amxb_ubus_parse_blob(amxc_var_t *var, struct blob_attr *attr, bool table)
void PRIVATE amxb_ubus_free(void *ctx)
int PRIVATE amxb_ubus_invoke_base(amxb_ubus_t *amxb_ubus_ctx, const char *object, amxc_var_t *args, amxb_request_t *request, uint32_t *id)
int PRIVATE amxb_ubus_format_blob_table(const amxc_htable_t *table, struct blob_buf *b)
struct _amxb_ubus amxb_ubus_t
int PRIVATE amxb_ubus_invoke(void *const ctx, amxb_invoke_t *invoke_ctx, amxc_var_t *args, amxb_request_t *request, int timeout)
int PRIVATE amxb_ubus_list(void *const bus_ctx, const char *object, uint32_t flags, uint32_t access, amxb_request_t *request)
int PRIVATE amxb_ubus_read(void *ctx)
int PRIVATE amxb_ubus_get_fd(void *ctx)
const amxc_var_t * amxb_ubus_get_config_option(const char *name)
int PRIVATE amxb_ubus_format_blob(amxc_var_t *data, const char *key, struct blob_buf *b)
int PRIVATE amxb_ubus_unsubscribe(void *const ctx, const char *object)
int PRIVATE amxb_ubus_subscribe(void *const ctx, const char *object)
int PRIVATE amxb_ubus_register(void *const ctx, amxd_dm_t *const dm)
void *PRIVATE amxb_ubus_connect(const char *host, const char *port, const char *path, amxp_signal_mngr_t *sigmngr)
int PRIVATE amxb_ubus_parse_blob_array(amxc_var_t *var, struct blob_attr *attr, int len)
struct _amxb_ubus_request amxb_ubus_request_t
int PRIVATE amxb_ubus_parse_blob_table(amxc_var_t *var, struct blob_attr *attr, int len)
int PRIVATE amxb_ubus_async_invoke(void *const ctx, amxb_invoke_t *invoke_ctx, amxc_var_t *args, amxb_request_t *request)
void PRIVATE amxb_ubus_cancel_requests(amxb_ubus_t *amxb_ubus_ctx)
struct _amxb_ubus_sub amxb_ubus_sub_t
struct _amxb_ubus_object amxb_ubus_object_t
int PRIVATE amxb_ubus_get_longest_path(amxb_ubus_t *amxb_ubus_ctx, amxd_path_t *path, amxc_string_t *rel_path)
void PRIVATE amxb_ubus_result_data(struct ubus_request *req, int type, struct blob_attr *msg)
struct ubus_object ubus_obj
amxb_ubus_t * amxb_ubus_ctx
struct ubus_request * ubus_req
amxp_timer_t * reactivate
struct ubus_subscriber sub
struct ubus_event_handler wait_watcher
amxc_htable_t subscribers
amxc_llist_t pending_reqs
struct ubus_event_handler watcher
amxc_llist_t registered_objs
struct ubus_context * ubus_ctx
amxp_signal_mngr_t * sigmngr
static amxp_signal_mngr_t * sigmngr
static amxb_bus_ctx_t * bus_ctx