org.alfresco.filesys.repo
Class BufferedContentDiskDriver

java.lang.Object
  extended by org.alfresco.filesys.repo.BufferedContentDiskDriver
All Implemented Interfaces:
ExtendedDiskInterface, org.alfresco.jlan.server.core.DeviceInterface, org.alfresco.jlan.server.filesys.DiskInterface, org.alfresco.jlan.server.filesys.DiskSizeInterface, org.alfresco.jlan.server.filesys.IOCtlInterface, org.alfresco.jlan.server.locking.FileLockingInterface, org.alfresco.jlan.server.locking.OpLockInterface, NodeServicePolicies.OnDeleteNodePolicy, NodeServicePolicies.OnMoveNodePolicy, ClassPolicy, Policy

public class BufferedContentDiskDriver
extends java.lang.Object
implements ExtendedDiskInterface, org.alfresco.jlan.server.filesys.DiskInterface, org.alfresco.jlan.server.filesys.DiskSizeInterface, org.alfresco.jlan.server.filesys.IOCtlInterface, org.alfresco.jlan.server.locking.OpLockInterface, org.alfresco.jlan.server.locking.FileLockingInterface, NodeServicePolicies.OnDeleteNodePolicy, NodeServicePolicies.OnMoveNodePolicy

Alfresco Content Disk Driver Cache

Decorates ContentDiskDriver with a performance cache of some frequently used results. In particular for getFileInformation and fileExists


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.alfresco.repo.policy.Policy
Policy.Arg
 
Field Summary
 
Fields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnDeleteNodePolicy
QNAME
 
Fields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnMoveNodePolicy
QNAME
 
Fields inherited from interface org.alfresco.repo.policy.Policy
NAMESPACE
 
Constructor Summary
BufferedContentDiskDriver()
           
 
Method Summary
 void closeFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile param)
           
 org.alfresco.jlan.server.core.DeviceContext createContext(java.lang.String shareName, org.springframework.extensions.config.ConfigElement args)
           
 void createDirectory(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.FileOpenParams params)
           
 org.alfresco.jlan.server.filesys.NetworkFile createFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.FileOpenParams params)
           
 void deleteDirectory(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String dir)
           
 void deleteFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String name)
           
 int fileExists(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String path)
           
 void flushFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file)
           
 void getDiskInformation(org.alfresco.jlan.server.filesys.DiskDeviceContext ctx, org.alfresco.jlan.server.filesys.SrvDiskInfo diskDev)
           
 ExtendedDiskInterface getDiskInterface()
           
 org.alfresco.jlan.server.filesys.DiskSizeInterface getDiskSizeInterface()
           
 org.alfresco.jlan.server.filesys.FileInfo getFileInformation(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String path)
           
 org.alfresco.jlan.server.locking.FileLockingInterface getFileLockingInterface()
           
 org.alfresco.jlan.server.filesys.IOCtlInterface getIoctlInterface()
           
 org.alfresco.jlan.server.locking.LockManager getLockManager(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)
           
 org.alfresco.jlan.server.locking.OpLockInterface getOpLockInterface()
           
 org.alfresco.jlan.server.locking.OpLockManager getOpLockManager(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)
           
 PolicyComponent getPolicyComponent()
           
 void init()
           
 boolean isOpLocksEnabled(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)
           
 boolean isReadOnly(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.core.DeviceContext ctx)
           
 void onDeleteNode(org.alfresco.service.cmr.repository.ChildAssociationRef oldChildAssocRef, boolean isArchived)
          Called after a node is deleted.
 void onMoveNode(org.alfresco.service.cmr.repository.ChildAssociationRef oldChildAssocRef, org.alfresco.service.cmr.repository.ChildAssociationRef newChildAssocRef)
          Called when a node has been moved.
 org.alfresco.jlan.server.filesys.NetworkFile openFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.FileOpenParams params)
           
 org.alfresco.jlan.util.DataBuffer processIOControl(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, int ctrlCode, int fid, org.alfresco.jlan.util.DataBuffer dataBuf, boolean isFSCtrl, int filter)
           
 int readFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, byte[] buf, int bufPos, int siz, long filePos)
           
 void registerContext(org.alfresco.jlan.server.core.DeviceContext ctx)
          Register an independently created device context object for this instance of the shared device.
 void renameFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String oldName, java.lang.String newName)
           
 long seekFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, long pos, int typ)
           
 void setDiskInterface(ExtendedDiskInterface diskInterface)
           
 void setDiskSizeInterface(org.alfresco.jlan.server.filesys.DiskSizeInterface diskSizeInterface)
           
 void setFileInfoCache(org.alfresco.repo.cache.SimpleCache cache)
          Set the cache that maintains node ID-NodeRef cross referencing data
 void setFileInformation(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String name, org.alfresco.jlan.server.filesys.FileInfo info)
           
 void setFileLockingInterface(org.alfresco.jlan.server.locking.FileLockingInterface fileLockingInterface)
           
 void setIoctlInterface(org.alfresco.jlan.server.filesys.IOCtlInterface iocltlInterface)
           
 void setOpLockInterface(org.alfresco.jlan.server.locking.OpLockInterface opLockInterface)
           
 void setPolicyComponent(PolicyComponent policyComponent)
           
 org.alfresco.jlan.server.filesys.SearchContext startSearch(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String searchPath, int attrib)
           
 void treeClosed(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)
           
 void treeOpened(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)
           
 void truncateFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, long siz)
           
 int writeFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, byte[] buf, int bufoff, int siz, long fileoff)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BufferedContentDiskDriver

public BufferedContentDiskDriver()
Method Detail

init

public void init()

setFileInfoCache

public void setFileInfoCache(org.alfresco.repo.cache.SimpleCache cache)
Set the cache that maintains node ID-NodeRef cross referencing data

Parameters:
cache - the cache

getFileInformation

public org.alfresco.jlan.server.filesys.FileInfo getFileInformation(org.alfresco.jlan.server.SrvSession sess,
                                                                    org.alfresco.jlan.server.filesys.TreeConnection tree,
                                                                    java.lang.String path)
                                                             throws java.io.IOException
Specified by:
getFileInformation in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

fileExists

public int fileExists(org.alfresco.jlan.server.SrvSession sess,
                      org.alfresco.jlan.server.filesys.TreeConnection tree,
                      java.lang.String path)
Specified by:
fileExists in interface org.alfresco.jlan.server.filesys.DiskInterface

createContext

public org.alfresco.jlan.server.core.DeviceContext createContext(java.lang.String shareName,
                                                                 org.springframework.extensions.config.ConfigElement args)
                                                          throws org.alfresco.jlan.server.core.DeviceContextException
Specified by:
createContext in interface org.alfresco.jlan.server.core.DeviceInterface
Throws:
org.alfresco.jlan.server.core.DeviceContextException

treeOpened

public void treeOpened(org.alfresco.jlan.server.SrvSession sess,
                       org.alfresco.jlan.server.filesys.TreeConnection tree)
Specified by:
treeOpened in interface org.alfresco.jlan.server.core.DeviceInterface

treeClosed

public void treeClosed(org.alfresco.jlan.server.SrvSession sess,
                       org.alfresco.jlan.server.filesys.TreeConnection tree)
Specified by:
treeClosed in interface org.alfresco.jlan.server.core.DeviceInterface

processIOControl

public org.alfresco.jlan.util.DataBuffer processIOControl(org.alfresco.jlan.server.SrvSession sess,
                                                          org.alfresco.jlan.server.filesys.TreeConnection tree,
                                                          int ctrlCode,
                                                          int fid,
                                                          org.alfresco.jlan.util.DataBuffer dataBuf,
                                                          boolean isFSCtrl,
                                                          int filter)
                                                   throws org.alfresco.jlan.server.filesys.IOControlNotImplementedException,
                                                          org.alfresco.jlan.smb.SMBException
Specified by:
processIOControl in interface org.alfresco.jlan.server.filesys.IOCtlInterface
Throws:
org.alfresco.jlan.server.filesys.IOControlNotImplementedException
org.alfresco.jlan.smb.SMBException

getDiskInformation

public void getDiskInformation(org.alfresco.jlan.server.filesys.DiskDeviceContext ctx,
                               org.alfresco.jlan.server.filesys.SrvDiskInfo diskDev)
                        throws java.io.IOException
Specified by:
getDiskInformation in interface org.alfresco.jlan.server.filesys.DiskSizeInterface
Throws:
java.io.IOException

closeFile

public void closeFile(org.alfresco.jlan.server.SrvSession sess,
                      org.alfresco.jlan.server.filesys.TreeConnection tree,
                      org.alfresco.jlan.server.filesys.NetworkFile param)
               throws java.io.IOException
Specified by:
closeFile in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

createDirectory

public void createDirectory(org.alfresco.jlan.server.SrvSession sess,
                            org.alfresco.jlan.server.filesys.TreeConnection tree,
                            org.alfresco.jlan.server.filesys.FileOpenParams params)
                     throws java.io.IOException
Specified by:
createDirectory in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

createFile

public org.alfresco.jlan.server.filesys.NetworkFile createFile(org.alfresco.jlan.server.SrvSession sess,
                                                               org.alfresco.jlan.server.filesys.TreeConnection tree,
                                                               org.alfresco.jlan.server.filesys.FileOpenParams params)
                                                        throws java.io.IOException
Specified by:
createFile in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

deleteDirectory

public void deleteDirectory(org.alfresco.jlan.server.SrvSession sess,
                            org.alfresco.jlan.server.filesys.TreeConnection tree,
                            java.lang.String dir)
                     throws java.io.IOException
Specified by:
deleteDirectory in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

deleteFile

public void deleteFile(org.alfresco.jlan.server.SrvSession sess,
                       org.alfresco.jlan.server.filesys.TreeConnection tree,
                       java.lang.String name)
                throws java.io.IOException
Specified by:
deleteFile in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

flushFile

public void flushFile(org.alfresco.jlan.server.SrvSession sess,
                      org.alfresco.jlan.server.filesys.TreeConnection tree,
                      org.alfresco.jlan.server.filesys.NetworkFile file)
               throws java.io.IOException
Specified by:
flushFile in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

isReadOnly

public boolean isReadOnly(org.alfresco.jlan.server.SrvSession sess,
                          org.alfresco.jlan.server.core.DeviceContext ctx)
                   throws java.io.IOException
Specified by:
isReadOnly in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

openFile

public org.alfresco.jlan.server.filesys.NetworkFile openFile(org.alfresco.jlan.server.SrvSession sess,
                                                             org.alfresco.jlan.server.filesys.TreeConnection tree,
                                                             org.alfresco.jlan.server.filesys.FileOpenParams params)
                                                      throws java.io.IOException
Specified by:
openFile in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

readFile

public int readFile(org.alfresco.jlan.server.SrvSession sess,
                    org.alfresco.jlan.server.filesys.TreeConnection tree,
                    org.alfresco.jlan.server.filesys.NetworkFile file,
                    byte[] buf,
                    int bufPos,
                    int siz,
                    long filePos)
             throws java.io.IOException
Specified by:
readFile in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

renameFile

public void renameFile(org.alfresco.jlan.server.SrvSession sess,
                       org.alfresco.jlan.server.filesys.TreeConnection tree,
                       java.lang.String oldName,
                       java.lang.String newName)
                throws java.io.IOException
Specified by:
renameFile in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

seekFile

public long seekFile(org.alfresco.jlan.server.SrvSession sess,
                     org.alfresco.jlan.server.filesys.TreeConnection tree,
                     org.alfresco.jlan.server.filesys.NetworkFile file,
                     long pos,
                     int typ)
              throws java.io.IOException
Specified by:
seekFile in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

setFileInformation

public void setFileInformation(org.alfresco.jlan.server.SrvSession sess,
                               org.alfresco.jlan.server.filesys.TreeConnection tree,
                               java.lang.String name,
                               org.alfresco.jlan.server.filesys.FileInfo info)
                        throws java.io.IOException
Specified by:
setFileInformation in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

startSearch

public org.alfresco.jlan.server.filesys.SearchContext startSearch(org.alfresco.jlan.server.SrvSession sess,
                                                                  org.alfresco.jlan.server.filesys.TreeConnection tree,
                                                                  java.lang.String searchPath,
                                                                  int attrib)
                                                           throws java.io.FileNotFoundException
Specified by:
startSearch in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.FileNotFoundException

truncateFile

public void truncateFile(org.alfresco.jlan.server.SrvSession sess,
                         org.alfresco.jlan.server.filesys.TreeConnection tree,
                         org.alfresco.jlan.server.filesys.NetworkFile file,
                         long siz)
                  throws java.io.IOException
Specified by:
truncateFile in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

writeFile

public int writeFile(org.alfresco.jlan.server.SrvSession sess,
                     org.alfresco.jlan.server.filesys.TreeConnection tree,
                     org.alfresco.jlan.server.filesys.NetworkFile file,
                     byte[] buf,
                     int bufoff,
                     int siz,
                     long fileoff)
              throws java.io.IOException
Specified by:
writeFile in interface org.alfresco.jlan.server.filesys.DiskInterface
Throws:
java.io.IOException

registerContext

public void registerContext(org.alfresco.jlan.server.core.DeviceContext ctx)
                     throws org.alfresco.jlan.server.core.DeviceContextException
Description copied from interface: ExtendedDiskInterface
Register an independently created device context object for this instance of the shared device. Useful, e.g. when context singleton configuration managed by a container.

Specified by:
registerContext in interface ExtendedDiskInterface
Throws:
org.alfresco.jlan.server.core.DeviceContextException

setDiskInterface

public void setDiskInterface(ExtendedDiskInterface diskInterface)

getDiskInterface

public ExtendedDiskInterface getDiskInterface()

setDiskSizeInterface

public void setDiskSizeInterface(org.alfresco.jlan.server.filesys.DiskSizeInterface diskSizeInterface)

getDiskSizeInterface

public org.alfresco.jlan.server.filesys.DiskSizeInterface getDiskSizeInterface()

setIoctlInterface

public void setIoctlInterface(org.alfresco.jlan.server.filesys.IOCtlInterface iocltlInterface)

getIoctlInterface

public org.alfresco.jlan.server.filesys.IOCtlInterface getIoctlInterface()

onMoveNode

public void onMoveNode(org.alfresco.service.cmr.repository.ChildAssociationRef oldChildAssocRef,
                       org.alfresco.service.cmr.repository.ChildAssociationRef newChildAssocRef)
Description copied from interface: NodeServicePolicies.OnMoveNodePolicy
Called when a node has been moved.

Specified by:
onMoveNode in interface NodeServicePolicies.OnMoveNodePolicy
Parameters:
oldChildAssocRef - the child association reference prior to the move
newChildAssocRef - the child association reference after the move

onDeleteNode

public void onDeleteNode(org.alfresco.service.cmr.repository.ChildAssociationRef oldChildAssocRef,
                         boolean isArchived)
Description copied from interface: NodeServicePolicies.OnDeleteNodePolicy
Called after a node is deleted. The reference given is for an association which has been deleted and cannot be used to retrieve node or associaton information from any of the services.

Specified by:
onDeleteNode in interface NodeServicePolicies.OnDeleteNodePolicy
Parameters:
oldChildAssocRef - the primary parent-child association of the deleted node
isArchived - indicates whether the node has been archived rather than purged

setPolicyComponent

public void setPolicyComponent(PolicyComponent policyComponent)

getPolicyComponent

public PolicyComponent getPolicyComponent()

setOpLockInterface

public void setOpLockInterface(org.alfresco.jlan.server.locking.OpLockInterface opLockInterface)

getOpLockInterface

public org.alfresco.jlan.server.locking.OpLockInterface getOpLockInterface()

getOpLockManager

public org.alfresco.jlan.server.locking.OpLockManager getOpLockManager(org.alfresco.jlan.server.SrvSession sess,
                                                                       org.alfresco.jlan.server.filesys.TreeConnection tree)
Specified by:
getOpLockManager in interface org.alfresco.jlan.server.locking.OpLockInterface

isOpLocksEnabled

public boolean isOpLocksEnabled(org.alfresco.jlan.server.SrvSession sess,
                                org.alfresco.jlan.server.filesys.TreeConnection tree)
Specified by:
isOpLocksEnabled in interface org.alfresco.jlan.server.locking.OpLockInterface

getLockManager

public org.alfresco.jlan.server.locking.LockManager getLockManager(org.alfresco.jlan.server.SrvSession sess,
                                                                   org.alfresco.jlan.server.filesys.TreeConnection tree)
Specified by:
getLockManager in interface org.alfresco.jlan.server.locking.FileLockingInterface

setFileLockingInterface

public void setFileLockingInterface(org.alfresco.jlan.server.locking.FileLockingInterface fileLockingInterface)

getFileLockingInterface

public org.alfresco.jlan.server.locking.FileLockingInterface getFileLockingInterface()


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