libidav/davqlexec.h

changeset 128
649eb328674a
parent 126
b156cae29e65
child 134
4bccc18820e8
equal deleted inserted replaced
127:7072a2b4ae35 128:649eb328674a
38 extern "C" { 38 extern "C" {
39 #endif 39 #endif
40 40
41 typedef struct DavQLCmd DavQLCmd; 41 typedef struct DavQLCmd DavQLCmd;
42 typedef struct DavQLStackObj DavQLStackObj; 42 typedef struct DavQLStackObj DavQLStackObj;
43 typedef struct DavQLRes DavQLRes;
43 44
44 typedef void*(*davql_func)(); // TODO: interface? 45 typedef void*(*davql_func)(); // TODO: interface?
45 46
46 typedef enum { 47 typedef enum {
47 DAVQL_OK = 0, 48 DAVQL_OK = 0,
110 union DavQLStackData { 111 union DavQLStackData {
111 int64_t integer; 112 int64_t integer;
112 char *string; 113 char *string;
113 } data; 114 } data;
114 }; 115 };
116
117 struct DavQLRes {
118 DavResource *resource;
119 int depth;
120 };
115 121
116 DavQLResult* dav_statement_exec(DavSession *sn, DavQLStatement *st, ...); 122 DavResult* dav_statement_exec(DavSession *sn, DavQLStatement *st, ...);
117 DavQLResult* dav_statement_execv(DavSession *sn, DavQLStatement *st, va_list ap); 123 DavResult* dav_statement_execv(DavSession *sn, DavQLStatement *st, va_list ap);
118 124
119 UcxBuffer* dav_path_string(sstr_t src, va_list ap, davqlerror_t *error); 125 UcxBuffer* dav_path_string(sstr_t src, va_list ap, davqlerror_t *error);
120 sstr_t dav_format_string(UcxAllocator *a, sstr_t fstr, va_list ap, davqlerror_t *error); 126 sstr_t dav_format_string(UcxAllocator *a, sstr_t fstr, va_list ap, davqlerror_t *error);
121 127
122 void dav_exec_get(DavSession *sn, DavQLStatement *st, char* path, va_list ap); 128 DavResult dav_exec_select(DavSession *sn, DavQLStatement *st, char* path, va_list ap);
123 129
124 UcxBuffer* dav_compile_expr(UcxAllocator *a, DavQLExpression *lexpr, va_list ap); 130 UcxBuffer* dav_compile_expr(DavContext *ctx, UcxAllocator *a, DavQLExpression *lexpr, va_list ap);
125 131
126 int dav_exec_expr(UcxBuffer *bcode, DavResource *res, DavQLStackObj *result); 132 int dav_exec_expr(UcxBuffer *bcode, DavResource *res, DavQLStackObj *result);
127 133
128 void print_bytecode(UcxBuffer *bcode); 134 void print_bytecode(UcxBuffer *bcode);
129 135

mercurial