Class InMemoryObjectLock

java.lang.Object
io.ocfl.core.lock.InMemoryObjectLock
All Implemented Interfaces:
ObjectLock

public class InMemoryObjectLock extends Object implements ObjectLock
In-memory implementation of ObjectLock that uses Java's ReentrantReadWriteLock.
  • Constructor Details

    • InMemoryObjectLock

      public InMemoryObjectLock(long waitTime, TimeUnit timeUnit)
      How long to wait when attempting to acquire a lock.
      Parameters:
      waitTime - how long to wait for the lock
      timeUnit - unit of wait time
  • Method Details

    • doInWriteLock

      public void doInWriteLock(String objectId, Runnable doInLock)
      Executes the code block after securing a write lock on the objectId. The lock is released after the block completes.
      Specified by:
      doInWriteLock in interface ObjectLock
      Parameters:
      objectId - id of the object
      doInLock - block to execute within the lock
    • doInWriteLock

      public <T> T doInWriteLock(String objectId, Callable<T> doInLock)
      Executes the code block after securing a write lock on the objectId. The lock is released after the block completes.
      Specified by:
      doInWriteLock in interface ObjectLock
      Type Parameters:
      T - return type
      Parameters:
      objectId - id of the object
      doInLock - block to execute within the lock
      Returns:
      object