diff -r de23f8881e9f -r 1fb26aca5093 libidav/session.h --- a/libidav/session.h Mon Mar 14 11:54:55 2016 +0100 +++ b/libidav/session.h Mon Mar 14 17:18:33 2016 +0100 @@ -65,7 +65,18 @@ char *encrypted_name; int exists; } DavPathCacheElement; -//*/ +*/ + +typedef struct DavLock { + char *path; + char *token; + +} DavLock; + +typedef struct DavLockManager { + UcxMap *resource_locks; + UcxList *collection_locks; +} DavLockManager; void dav_session_set_error(DavSession *sn, CURLcode c, int status); @@ -77,6 +88,16 @@ void dav_session_cache_path(DavSession *sn, sstr_t path, sstr_t href); + +DavLock* dav_create_lock(DavSession *sn, char *token, char *timeout); +void dav_destroy_lock(DavSession *sn, DavLock *lock); + +int dav_add_resource_lock(DavSession *sn, char *path, DavLock *lock); +int dav_add_collection_lock(DavSession *sn, char *path, DavLock *lock); + +DavLock* dav_get_lock(DavSession *sn, char *path); +void dav_remove_lock(DavSession *sn, char *path, DavLock *lock); + #ifdef __cplusplus } #endif