java.lang.Object
org.cryptomator.frontend.dokany.locks.LockManager

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 Details

    • LockManager

      public LockManager()
  • Method Details