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 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
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnMoveNodePolicy
QNAME -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcloseFile(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(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, String dir) voiddeleteFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, String name) intfileExists(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, 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) org.alfresco.jlan.server.filesys.DiskSizeInterfaceorg.alfresco.jlan.server.filesys.FileInfogetFileInformation(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, String path) org.alfresco.jlan.server.locking.FileLockingInterfaceorg.alfresco.jlan.server.filesys.IOCtlInterfaceorg.alfresco.jlan.server.locking.LockManagergetLockManager(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree) org.alfresco.jlan.server.locking.OpLockInterfaceorg.alfresco.jlan.server.locking.OpLockManagergetOpLockManager(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree) 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(ChildAssociationRef oldChildAssocRef, boolean isArchived) Called after a node is deleted.voidonMoveNode(ChildAssociationRef oldChildAssocRef, 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, String oldName, 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(SimpleCache<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, 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, 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)
-
Constructor Details
-
BufferedContentDiskDriver
public BufferedContentDiskDriver()
-
-
Method Details
-
init
public void init() -
setFileInfoCache
public void setFileInfoCache(SimpleCache<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, String path) throws IOException - Specified by:
getFileInformationin interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
IOException
-
fileExists
public int fileExists(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, String path) - Specified by:
fileExistsin interfaceorg.alfresco.jlan.server.filesys.DiskInterface
-
createContext
public org.alfresco.jlan.server.core.DeviceContext createContext(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 IOException - Specified by:
getDiskInformationin interfaceorg.alfresco.jlan.server.filesys.DiskSizeInterface- Throws:
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 IOException - Specified by:
closeFilein interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
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 IOException - Specified by:
createDirectoryin interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
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 IOException - Specified by:
createFilein interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
IOException
-
deleteDirectory
public void deleteDirectory(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, String dir) throws IOException - Specified by:
deleteDirectoryin interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
IOException
-
deleteFile
public void deleteFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, String name) throws IOException - Specified by:
deleteFilein interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
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 IOException - Specified by:
flushFilein interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
IOException
-
isReadOnly
public boolean isReadOnly(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.core.DeviceContext ctx) throws IOException - Specified by:
isReadOnlyin interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
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 IOException - Specified by:
openFilein interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
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 IOException - Specified by:
readFilein interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
IOException
-
renameFile
public void renameFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, String oldName, String newName) throws IOException - Specified by:
renameFilein interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
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 IOException - Specified by:
seekFilein interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
IOException
-
setFileInformation
public void setFileInformation(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, String name, org.alfresco.jlan.server.filesys.FileInfo info) throws IOException - Specified by:
setFileInformationin interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
IOException
-
startSearch
public org.alfresco.jlan.server.filesys.SearchContext startSearch(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, String searchPath, int attrib) throws FileNotFoundException - Specified by:
startSearchin interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
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 IOException - Specified by:
truncateFilein interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
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 IOException - Specified by:
writeFilein interfaceorg.alfresco.jlan.server.filesys.DiskInterface- Throws:
IOException
-
registerContext
public void registerContext(org.alfresco.jlan.server.core.DeviceContext ctx) throws org.alfresco.jlan.server.core.DeviceContextException Description 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
-
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
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
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
-
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()
-