package io.cattle.platform.lock.provider;
import io.cattle.platform.lock.Lock;
import io.cattle.platform.lock.definition.LockDefinition;
import io.cattle.platform.util.type.Named;
public interface LockProvider extends Named {
/**
* Provides the lock for the {@link LockDefinition}.
*
* @param lockDefinition
* @return A {@link Lock} or null if lockDefinition == null or
* lockDefinition.getLockId() == null
*/
Lock getLock(LockDefinition lockDefinition);
void releaseLock(Lock lock);
}