Initial import
[project/ubus.git] / ubusd_obj.h
1 #ifndef __UBUSD_OBJ_H
2 #define __UBUSD_OBJ_H
3
4 #include "ubusd_id.h"
5
6 extern struct avl_tree obj_types;
7 extern struct avl_tree objects;
8 extern struct avl_tree path;
9
10 struct ubus_client;
11 struct ubus_msg_buf;
12
13 struct ubus_object_type {
14         struct ubus_id id;
15         int refcount;
16         struct list_head methods;
17 };
18
19 struct ubus_method {
20         struct list_head list;
21         const char *name;
22         struct blob_attr data[];
23 };
24
25 struct ubus_object {
26         struct ubus_id id;
27         struct list_head list;
28
29         struct ubus_object_type *type;
30
31         struct avl_node path;
32 };
33
34 struct ubus_object *ubusd_create_object(struct ubus_client *cl, struct blob_attr **attr);
35 void ubusd_free_object(struct ubus_object *obj);
36
37 #endif