Class LockManager
- java.lang.Object
-
- org.cryptomator.fusecloudaccess.locks.LockManager
-
@FileSystemScoped public class LockManager extends Object
Provides a path-based locking mechanism as described by Ritik Malhotra here.Usage Example 1:
try (PathLock pathLock = lockManager.createPathLock("/foo/bar/baz").forReading(); // path is not manipulated, thus read-locking DataLock dataLock = pathLock.lockDataForWriting()) { // content is manipulated, thus write-locking // write to file }Usage Example 2:
try (PathLock srcPathLock = lockManager.createPathLock("/foo/bar/original").forReading(); DataLock srcDataLock = srcPathLock.lockDataForReading(); // content will only be read, thus read-locking PathLock dstPathLock = lockManager.createPathLock("/foo/bar/copy").forWriting(); // file will be created, thus write-locking DataLock dstDataLock = srcPathLock.lockDataForWriting()) { // copy from /foo/bar/original to /foo/bar/copy }
-
-
Constructor Summary
Constructors Constructor Description LockManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PathLockBuildercreatePathLock(String path)
-
-
-
Method Detail
-
createPathLock
public PathLockBuilder createPathLock(String path)
-
-