dav/webdav.h

changeset 16
5dbef9e07376
parent 15
182af08b4813
child 17
11dffb40cd91
equal deleted inserted replaced
15:182af08b4813 16:5dbef9e07376
55 enum DavError { 55 enum DavError {
56 DAV_OK = 0, 56 DAV_OK = 0,
57 DAV_ERROR, 57 DAV_ERROR,
58 DAV_NOT_FOUND, 58 DAV_NOT_FOUND,
59 DAV_UNAUTHORIZED, 59 DAV_UNAUTHORIZED,
60 DAV_FORBIDDEN 60 DAV_FORBIDDEN,
61 DAV_METHOD_NOT_ALLOWED,
62 DAV_CONFLICT
61 }; 63 };
62 64
63 typedef enum DavError DavError; 65 typedef enum DavError DavError;
64 66
65 struct DavNamespace { 67 struct DavNamespace {
92 UcxAllocator *allocator; 94 UcxAllocator *allocator;
93 DavError error; 95 DavError error;
94 }; 96 };
95 97
96 struct DavContext { 98 struct DavContext {
97 UcxMap *namespaces; 99 UcxMap *namespaces;
100 UcxList *sessions;
98 }; 101 };
99 102
100 struct dav_content_data { 103 struct dav_content_data {
101 char *data; 104 char *data;
102 size_t length; 105 size_t length;
131 char *name; 134 char *name;
132 char *value; 135 char *value;
133 }; 136 };
134 137
135 DavContext* dav_context_new(); 138 DavContext* dav_context_new();
139 void dav_context_destroy(DavContext *ctx);
136 int dav_add_namespace(DavContext *context, char *prefix, char *ns); 140 int dav_add_namespace(DavContext *context, char *prefix, char *ns);
137 DavNamespace* dav_get_namespace(DavContext *context, char *prefix); 141 DavNamespace* dav_get_namespace(DavContext *context, char *prefix);
138 142
139 DavSession* dav_session_new(DavContext *context, char *base_url); 143 DavSession* dav_session_new(DavContext *context, char *base_url);
140 DavSession* dav_session_new_auth(DavContext *context, char *base_url, char *user, char *password); 144 DavSession* dav_session_new_auth(DavContext *context, char *base_url, char *user, char *password);
141 void dav_session_set_auth(DavSession *sn, char *user, char *password); 145 void dav_session_set_auth(DavSession *sn, char *user, char *password);
142 146
143 void session_set_error(DavSession *sn, CURLcode c, int status); 147 void session_set_error(DavSession *sn, CURLcode c, int status);
148
149 void dav_session_destroy(DavSession *sn);
144 150
145 DavResource* dav_get(DavSession *sn, char *path, char *properties); 151 DavResource* dav_get(DavSession *sn, char *path, char *properties);
146 152
147 UcxList* parse_properties_string(DavContext *context, sstr_t str); 153 UcxList* parse_properties_string(DavContext *context, sstr_t str);
148 154
169 void dav_set_content_data(DavResource *res, char *content, size_t length); 175 void dav_set_content_data(DavResource *res, char *content, size_t length);
170 176
171 int dav_get_content(DavResource *res, void *stream, dav_write_func write_func); 177 int dav_get_content(DavResource *res, void *stream, dav_write_func write_func);
172 178
173 int dav_delete(DavResource *res); 179 int dav_delete(DavResource *res);
180 int dav_create(DavResource *res);
174 181
175 #ifdef __cplusplus 182 #ifdef __cplusplus
176 } 183 }
177 #endif 184 #endif
178 185

mercurial