org.alfresco.filesys.state
Class FileStateLockManager

java.lang.Object
  extended by org.alfresco.filesys.state.FileStateLockManager
All Implemented Interfaces:
org.alfresco.jlan.server.locking.LockManager

public class FileStateLockManager
extends java.lang.Object
implements org.alfresco.jlan.server.locking.LockManager

File State Lock Manager Class

Implementation of a lock manager that uses the file state cache to track locks on a file.


Constructor Summary
FileStateLockManager()
           
 
Method Summary
 org.alfresco.jlan.locking.FileLock createLockObject(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, long offset, long len, int pid)
          Create a lock object, use the standard FileLock object.
 void lockFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, org.alfresco.jlan.locking.FileLock lock)
          Lock a byte range within a file, or the whole file.
 void releaseLocksForFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file)
          Release all locks that a session has on a file.
 void unlockFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, org.alfresco.jlan.locking.FileLock lock)
          Unlock a byte range within a file, or the whole file
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FileStateLockManager

public FileStateLockManager()
Method Detail

lockFile

public void lockFile(org.alfresco.jlan.server.SrvSession sess,
                     org.alfresco.jlan.server.filesys.TreeConnection tree,
                     org.alfresco.jlan.server.filesys.NetworkFile file,
                     org.alfresco.jlan.locking.FileLock lock)
              throws org.alfresco.jlan.locking.LockConflictException,
                     java.io.IOException
Lock a byte range within a file, or the whole file.

Specified by:
lockFile in interface org.alfresco.jlan.server.locking.LockManager
Parameters:
sess - SrvSession
tree - TreeConnection
file - NetworkFile
lock - FileLock
Throws:
org.alfresco.jlan.locking.LockConflictException
java.io.IOException

unlockFile

public void unlockFile(org.alfresco.jlan.server.SrvSession sess,
                       org.alfresco.jlan.server.filesys.TreeConnection tree,
                       org.alfresco.jlan.server.filesys.NetworkFile file,
                       org.alfresco.jlan.locking.FileLock lock)
                throws org.alfresco.jlan.locking.NotLockedException,
                       java.io.IOException
Unlock a byte range within a file, or the whole file

Specified by:
unlockFile in interface org.alfresco.jlan.server.locking.LockManager
Parameters:
sess - SrvSession
tree - TreeConnection
file - NetworkFile
lock - FileLock
Throws:
org.alfresco.jlan.locking.NotLockedException
java.io.IOException

createLockObject

public org.alfresco.jlan.locking.FileLock createLockObject(org.alfresco.jlan.server.SrvSession sess,
                                                           org.alfresco.jlan.server.filesys.TreeConnection tree,
                                                           org.alfresco.jlan.server.filesys.NetworkFile file,
                                                           long offset,
                                                           long len,
                                                           int pid)
Create a lock object, use the standard FileLock object.

Specified by:
createLockObject in interface org.alfresco.jlan.server.locking.LockManager
Parameters:
sess - SrvSession
tree - TreeConnection
file - NetworkFile
offset - long
len - long
pid - int

releaseLocksForFile

public void releaseLocksForFile(org.alfresco.jlan.server.SrvSession sess,
                                org.alfresco.jlan.server.filesys.TreeConnection tree,
                                org.alfresco.jlan.server.filesys.NetworkFile file)
Release all locks that a session has on a file. This method is called to perform cleanup if a file is closed that has active locks or if a session abnormally terminates.

Specified by:
releaseLocksForFile in interface org.alfresco.jlan.server.locking.LockManager
Parameters:
sess - SrvSession
tree - TreeConnection
file - NetworkFile


Copyright © 2005 - 2008 Alfresco Software, Inc. All Rights Reserved.