public class CmsVfsNameBasedDiskCache
extends java.lang.Object
This RFS cache operates on file names, plus a hash code calculated from
org.opencms.file.CmsResource#getDateLastModified()
, org.opencms.file.CmsResource#getDateCreated()
and org.opencms.file.CmsResource#getLength()
. Optional parameters can be appended to this name,
which will be added as a second hash code. This way a file can have multiple versions based on different parameters.
This cache is usable for resources from the online AND the offline project at the same time, because any change to a resource will result in a changed hash code. This means a resource changed in the offline project will have a new hash code compared to the online project. If the resource is identical in the online and the offline project, the generated hash codes will be the same.
构造器和说明 |
---|
CmsVfsNameBasedDiskCache(java.lang.String basepath,
java.lang.String foldername)
Creates a new disk cache.
|
限定符和类型 | 方法和说明 |
---|---|
byte[] |
getCacheContent(java.lang.String rfsName)
Returns the content of the requested file in the disk cache, or
null if the
file is not found in the cache, or is found but outdated. |
java.lang.String |
getCacheName(CmsResource resource,
java.lang.String parameters)
Returns the RFS name to use for caching the given VFS resource with parameters in the disk cache.
|
java.lang.String |
getRepositoryPath()
Returns the absolute path of the cache repository in the RFS.
|
void |
saveCacheFile(java.lang.String rfsName,
byte[] content)
Saves the given file content in the disk cache.
|
public CmsVfsNameBasedDiskCache(java.lang.String basepath, java.lang.String foldername)
basepath
- the base path for the cache in the RFSfoldername
- the folder name for this cache, to be used a sub-folder for the base folderpublic byte[] getCacheContent(java.lang.String rfsName)
null
if the
file is not found in the cache, or is found but outdated.rfsName
- the file RFS name to look up in the cachenull
public java.lang.String getCacheName(CmsResource resource, java.lang.String parameters)
resource
- the VFS resource to generate the cache name forparameters
- the parameters of the request to the VFS resourcepublic java.lang.String getRepositoryPath()
public void saveCacheFile(java.lang.String rfsName, byte[] content) throws java.io.IOException
rfsName
- the RFS name of the file to save the content incontent
- the content of the file to savejava.io.IOException
- in case of disk access errors