Trait DavLockSystem

Source
pub trait DavLockSystem:
    Debug
    + Send
    + Sync
    + DynClone {
    // Required methods
    fn lock(
        &self,
        path: &DavPath,
        principal: Option<&str>,
        owner: Option<&Element>,
        timeout: Option<Duration>,
        shared: bool,
        deep: bool,
    ) -> LsFuture<'_, Result<DavLock, DavLock>>;
    fn unlock(
        &self,
        path: &DavPath,
        token: &str,
    ) -> LsFuture<'_, Result<(), ()>>;
    fn refresh(
        &self,
        path: &DavPath,
        token: &str,
        timeout: Option<Duration>,
    ) -> LsFuture<'_, Result<DavLock, ()>>;
    fn check(
        &self,
        path: &DavPath,
        principal: Option<&str>,
        ignore_principal: bool,
        deep: bool,
        submitted_tokens: Vec<&str>,
    ) -> LsFuture<'_, Result<(), DavLock>>;
    fn discover(&self, path: &DavPath) -> LsFuture<'_, Vec<DavLock>>;
    fn delete(&self, path: &DavPath) -> LsFuture<'_, Result<(), ()>>;
}
Expand description

The trait that defines a locksystem.

Required Methods§

Source

fn lock( &self, path: &DavPath, principal: Option<&str>, owner: Option<&Element>, timeout: Option<Duration>, shared: bool, deep: bool, ) -> LsFuture<'_, Result<DavLock, DavLock>>

Lock a node. Returns Ok(new_lock) if succeeded, or Err(conflicting_lock) if failed.

Source

fn unlock(&self, path: &DavPath, token: &str) -> LsFuture<'_, Result<(), ()>>

Unlock a node. Returns Ok(()) if succeeded, Err (()) if failed (because lock doesn’t exist)

Source

fn refresh( &self, path: &DavPath, token: &str, timeout: Option<Duration>, ) -> LsFuture<'_, Result<DavLock, ()>>

Refresh lock. Returns updated lock if succeeded.

Source

fn check( &self, path: &DavPath, principal: Option<&str>, ignore_principal: bool, deep: bool, submitted_tokens: Vec<&str>, ) -> LsFuture<'_, Result<(), DavLock>>

Check if node is locked and if so, if we own all the locks. If not, returns as Err one conflicting lock.

Source

fn discover(&self, path: &DavPath) -> LsFuture<'_, Vec<DavLock>>

Find and return all locks that cover a given path.

Source

fn delete(&self, path: &DavPath) -> LsFuture<'_, Result<(), ()>>

Delete all locks at this path and below (after MOVE or DELETE)

Implementors§