diff -r 7072a2b4ae35 -r 649eb328674a libidav/davqlexec.h --- a/libidav/davqlexec.h Tue Jun 02 10:07:20 2015 +0200 +++ b/libidav/davqlexec.h Tue Jun 02 20:57:23 2015 +0200 @@ -40,6 +40,7 @@ typedef struct DavQLCmd DavQLCmd; typedef struct DavQLStackObj DavQLStackObj; +typedef struct DavQLRes DavQLRes; typedef void*(*davql_func)(); // TODO: interface? @@ -112,16 +113,21 @@ char *string; } data; }; + +struct DavQLRes { + DavResource *resource; + int depth; +}; -DavQLResult* dav_statement_exec(DavSession *sn, DavQLStatement *st, ...); -DavQLResult* dav_statement_execv(DavSession *sn, DavQLStatement *st, va_list ap); +DavResult* dav_statement_exec(DavSession *sn, DavQLStatement *st, ...); +DavResult* dav_statement_execv(DavSession *sn, DavQLStatement *st, va_list ap); UcxBuffer* dav_path_string(sstr_t src, va_list ap, davqlerror_t *error); sstr_t dav_format_string(UcxAllocator *a, sstr_t fstr, va_list ap, davqlerror_t *error); -void dav_exec_get(DavSession *sn, DavQLStatement *st, char* path, va_list ap); +DavResult dav_exec_select(DavSession *sn, DavQLStatement *st, char* path, va_list ap); -UcxBuffer* dav_compile_expr(UcxAllocator *a, DavQLExpression *lexpr, va_list ap); +UcxBuffer* dav_compile_expr(DavContext *ctx, UcxAllocator *a, DavQLExpression *lexpr, va_list ap); int dav_exec_expr(UcxBuffer *bcode, DavResource *res, DavQLStackObj *result);