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

    QNAME

    Fields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnMoveNodePolicy

    QNAME

    Fields inherited from interface org.alfresco.repo.policy.Policy

    NAMESPACE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    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(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, String dir)
     
    void
    deleteFile(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, String name)
     
    int
    fileExists(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, 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)
     
     
    org.alfresco.jlan.server.filesys.DiskSizeInterface
     
    org.alfresco.jlan.server.filesys.FileInfo
    getFileInformation(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, String path)
     
    org.alfresco.jlan.server.locking.FileLockingInterface
     
    org.alfresco.jlan.server.filesys.IOCtlInterface
     
    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
     
    org.alfresco.jlan.server.locking.OpLockManager
    getOpLockManager(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree)
     
     
    void
     
    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(ChildAssociationRef oldChildAssocRef, boolean isArchived)
    Called after a node is deleted.
    void
    onMoveNode(ChildAssociationRef oldChildAssocRef, 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, String oldName, 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
     
    void
    setDiskSizeInterface(org.alfresco.jlan.server.filesys.DiskSizeInterface diskSizeInterface)
     
    void
    setFileInfoCache(SimpleCache<Serializable,org.alfresco.jlan.server.filesys.FileInfo> 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, 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
     
    org.alfresco.jlan.server.filesys.SearchContext
    startSearch(org.alfresco.jlan.server.SrvSession sess, org.alfresco.jlan.server.filesys.TreeConnection tree, 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 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:
      getFileInformation in interface org.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:
      fileExists in interface org.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:
      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 IOException
      Specified by:
      getDiskInformation in interface org.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:
      closeFile in interface org.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:
      createDirectory in interface org.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:
      createFile in interface org.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:
      deleteDirectory in interface org.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:
      deleteFile in interface org.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:
      flushFile in interface org.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:
      isReadOnly in interface org.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:
      openFile in interface org.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:
      readFile in interface org.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:
      renameFile in interface org.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:
      seekFile in interface org.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:
      setFileInformation in interface org.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:
      startSearch in interface org.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:
      truncateFile in interface org.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:
      writeFile in interface org.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: 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
      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(ChildAssociationRef oldChildAssocRef, 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(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()