Trait dav_server::ls::DavLockSystem
source · pub trait DavLockSystem: Debug + Sync + Send + BoxCloneLs {
// Required methods
fn lock(
&self,
path: &DavPath,
principal: Option<&str>,
owner: Option<&Element>,
timeout: Option<Duration>,
shared: bool,
deep: bool
) -> Result<DavLock, DavLock>;
fn unlock(&self, path: &DavPath, token: &str) -> Result<(), ()>;
fn refresh(
&self,
path: &DavPath,
token: &str,
timeout: Option<Duration>
) -> Result<DavLock, ()>;
fn check(
&self,
path: &DavPath,
principal: Option<&str>,
ignore_principal: bool,
deep: bool,
submitted_tokens: Vec<&str>
) -> Result<(), DavLock>;
fn discover(&self, path: &DavPath) -> Vec<DavLock>;
fn delete(&self, path: &DavPath) -> Result<(), ()>;
}
Expand description
The trait that defines a locksystem.
Required Methods§
sourcefn lock(
&self,
path: &DavPath,
principal: Option<&str>,
owner: Option<&Element>,
timeout: Option<Duration>,
shared: bool,
deep: bool
) -> Result<DavLock, DavLock>
fn lock( &self, path: &DavPath, principal: Option<&str>, owner: Option<&Element>, timeout: Option<Duration>, shared: bool, deep: bool ) -> Result<DavLock, DavLock>
Lock a node. Returns Ok(new_lock)
if succeeded,
or Err(conflicting_lock)
if failed.
sourcefn unlock(&self, path: &DavPath, token: &str) -> Result<(), ()>
fn unlock(&self, path: &DavPath, token: &str) -> Result<(), ()>
Unlock a node. Returns Ok(())
if succeeded, Err (())
if failed
(because lock doesn’t exist)
sourcefn refresh(
&self,
path: &DavPath,
token: &str,
timeout: Option<Duration>
) -> Result<DavLock, ()>
fn refresh( &self, path: &DavPath, token: &str, timeout: Option<Duration> ) -> Result<DavLock, ()>
Refresh lock. Returns updated lock if succeeded.
sourcefn check(
&self,
path: &DavPath,
principal: Option<&str>,
ignore_principal: bool,
deep: bool,
submitted_tokens: Vec<&str>
) -> Result<(), DavLock>
fn check( &self, path: &DavPath, principal: Option<&str>, ignore_principal: bool, deep: bool, submitted_tokens: Vec<&str> ) -> Result<(), DavLock>
Check if node is locked and if so, if we own all the locks. If not, returns as Err one conflicting lock.