Code

Add support for fetching arbitrary objects, including attributes.
[sysdb.git] / src / include / parser / ast.h
index 8533fc705e6467b91840ce97b86cc20a09f14b14..01446abbd84b86e4b0395e2715f700fbad04a9dd 100644 (file)
@@ -257,12 +257,17 @@ typedef struct {
        sdb_ast_node_t super;
        int obj_type;
        char *hostname; /* optional */
        sdb_ast_node_t super;
        int obj_type;
        char *hostname; /* optional */
+       int parent_type; /* optional */
+       char *parent; /* optional */
        char *name;
        char *name;
+       /* whether to include the full object, that is,
+        * including all attributes and all children */
+       bool full;
        sdb_ast_node_t *filter; /* optional */
 } sdb_ast_fetch_t;
 #define SDB_AST_FETCH(obj) ((sdb_ast_fetch_t *)(obj))
 #define SDB_AST_FETCH_INIT \
        sdb_ast_node_t *filter; /* optional */
 } sdb_ast_fetch_t;
 #define SDB_AST_FETCH(obj) ((sdb_ast_fetch_t *)(obj))
 #define SDB_AST_FETCH_INIT \
-       { { SDB_OBJECT_INIT, SDB_AST_TYPE_FETCH, -1 }, -1, NULL, NULL, NULL }
+       { { SDB_OBJECT_INIT, SDB_AST_TYPE_FETCH, -1 }, -1, NULL, -1, NULL, NULL, 0, NULL }
 
 /*
  * sdb_ast_list_t represents a LIST command.
 
 /*
  * sdb_ast_list_t represents a LIST command.
@@ -384,8 +389,9 @@ sdb_ast_value_create(int type, char *name);
  * takes ownership of the strings and the filter node.
  */
 sdb_ast_node_t *
  * takes ownership of the strings and the filter node.
  */
 sdb_ast_node_t *
-sdb_ast_fetch_create(int obj_type, char *hostname, char *name,
-               sdb_ast_node_t *filter);
+sdb_ast_fetch_create(int obj_type, char *hostname,
+               int parent_type, char *parent, char *name,
+               bool full, sdb_ast_node_t *filter);
 
 /*
  * sdb_ast_list_create:
 
 /*
  * sdb_ast_list_create: