Package org.alfresco.filesys.repo
Class BufferedContentDiskDriver
- java.lang.Object
-
- 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 CacheDecorates 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
-
-
Constructor Summary
Constructors Constructor Description BufferedContentDiskDriver()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcloseFile(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.DeviceContextcreateContext(java.lang.String shareName, org.springframework.extensions.config.ConfigElement args)voidcreateDirectory(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.NetworkFilecreateFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.FileOpenParams params)voiddeleteDirectory(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String dir)voiddeleteFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String name)intfileExists(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String path)voidflushFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file)voidgetDiskInformation(org.alfresco.jlan.server.filesys.DiskDeviceContext ctx, org.alfresco.jlan.server.filesys.SrvDiskInfo diskDev)ExtendedDiskInterfacegetDiskInterface()org.alfresco.jlan.server.filesys.DiskSizeInterfacegetDiskSizeInterface()org.alfresco.jlan.server.filesys.FileInfogetFileInformation(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String path)org.alfresco.jlan.server.locking.FileLockingInterfacegetFileLockingInterface()org.alfresco.jlan.server.filesys.IOCtlInterfacegetIoctlInterface()org.alfresco.jlan.server.locking.LockManagergetLockManager(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)org.alfresco.jlan.server.locking.OpLockInterfacegetOpLockInterface()org.alfresco.jlan.server.locking.OpLockManagergetOpLockManager(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)PolicyComponentgetPolicyComponent()voidinit()booleanisOpLocksEnabled(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)booleanisReadOnly(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.core.DeviceContext ctx)voidonDeleteNode(org.alfresco.service.cmr.repository.ChildAssociationRef oldChildAssocRef, boolean isArchived)Called after a node is deleted.voidonMoveNode(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.NetworkFileopenFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.FileOpenParams params)org.alfresco.jlan.util.DataBufferprocessIOControl(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)intreadFile(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)voidregisterContext(org.alfresco.jlan.server.core.DeviceContext ctx)Register an independently created device context object for this instance of the shared device.voidrenameFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String oldName, java.lang.String newName)longseekFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, long pos, int typ)voidsetDiskInterface(ExtendedDiskInterface diskInterface)voidsetDiskSizeInterface(org.alfresco.jlan.server.filesys.DiskSizeInterface diskSizeInterface)voidsetFileInfoCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,org.alfresco.jlan.server.filesys.FileInfo> cache)Set the cache that maintains node ID-NodeRef cross referencing datavoidsetFileInformation(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String name, org.alfresco.jlan.server.filesys.FileInfo info)voidsetFileLockingInterface(org.alfresco.jlan.server.locking.FileLockingInterface fileLockingInterface)voidsetIoctlInterface(org.alfresco.jlan.server.filesys.IOCtlInterface iocltlInterface)voidsetOpLockInterface(org.alfresco.jlan.server.locking.OpLockInterface opLockInterface)voidsetPolicyComponent(PolicyComponent policyComponent)org.alfresco.jlan.server.filesys.SearchContextstartSearch(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, java.lang.String searchPath, int attrib)voidtreeClosed(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)voidtreeOpened(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)voidtruncateFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, org.alfresco.jlan.server.filesys.NetworkFile file, long siz)intwriteFile(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)
-
-
-
Method Detail
-
init
public void init()
-
setFileInfoCache
public void setFileInfoCache(org.alfresco.repo.cache.SimpleCache<java.io.Serializable,org.alfresco.jlan.server.filesys.FileInfo> 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:
getFileInformationin interfaceorg.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:
fileExistsin interfaceorg.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:
createContextin interfaceorg.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:
treeOpenedin interfaceorg.alfresco.jlan.server.core.DeviceInterface
-
treeClosed
public void treeClosed(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)- Specified by:
treeClosedin interfaceorg.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:
processIOControlin interfaceorg.alfresco.jlan.server.filesys.IOCtlInterface- Throws:
org.alfresco.jlan.server.filesys.IOControlNotImplementedExceptionorg.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:
getDiskInformationin interfaceorg.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:
closeFilein interfaceorg.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:
createDirectoryin interfaceorg.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:
createFilein interfaceorg.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:
deleteDirectoryin interfaceorg.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:
deleteFilein interfaceorg.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:
flushFilein interfaceorg.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:
isReadOnlyin interfaceorg.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:
openFilein interfaceorg.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:
readFilein interfaceorg.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:
renameFilein interfaceorg.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:
seekFilein interfaceorg.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:
setFileInformationin interfaceorg.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:
startSearchin interfaceorg.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:
truncateFilein interfaceorg.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:
writeFilein interfaceorg.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.DeviceContextExceptionDescription copied from interface:ExtendedDiskInterfaceRegister 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:
registerContextin interfaceExtendedDiskInterface- Parameters:
ctx- the device context- 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.OnMoveNodePolicyCalled when a node has been moved.- Specified by:
onMoveNodein interfaceNodeServicePolicies.OnMoveNodePolicy- Parameters:
oldChildAssocRef- the child association reference prior to the movenewChildAssocRef- 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.OnDeleteNodePolicyCalled 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:
onDeleteNodein interfaceNodeServicePolicies.OnDeleteNodePolicy- Parameters:
oldChildAssocRef- the primary parent-child association of the deleted nodeisArchived- 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:
getOpLockManagerin interfaceorg.alfresco.jlan.server.locking.OpLockInterface
-
isOpLocksEnabled
public boolean isOpLocksEnabled(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)- Specified by:
isOpLocksEnabledin interfaceorg.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:
getLockManagerin interfaceorg.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()
-
-