package javaforce;
/** File Locking object.
*
* @author pquiring
*/
import java.io.*;
import java.nio.channels.*;
public class JFLockFile {
private RandomAccessFile lockraf; // The file we'll lock
private FileChannel lockChannel; // The channel to the file
private FileLock lockLock; // The lock object we hold
private File lockFile;
public boolean lock(String fileName) {
try {
lockFile = new File(fileName);
lockraf = new RandomAccessFile(lockFile, "rw");
lockChannel = lockraf.getChannel();
lockLock = lockChannel.tryLock();
if (lockLock == null) return false;
} catch (Exception e) {
JFLog.log(e);
return false;
}
return true;
}
public void unlock() {
if (lockLock == null) return;
try {
lockLock.release();
lockraf.close();
lockFile.delete();
} catch (Exception e) {
JFLog.log(e);
}
}
}