Search Results for

    Show / Hide Table of Contents

    Class FileCacheService

    Service for caching files locally so that they do not need to be downloaded repeatedly

    Inheritance
    Object
    FileCacheService
    Implements
    IFileCache
    Namespace: i5.Toolkit.Core.Caching
    Assembly: cs.temp.dll.dll
    Syntax
    public class FileCacheService : IService, IFileCache

    Constructors

    FileCacheService(Boolean, Boolean, String, Single, IDirectoryAccessor)

    Creates a new file cache service

    Declaration
    public FileCacheService(bool sessionPersistence = false, bool useSafeMode = true, string cacheLocationOverride = null, float daysValid = 365F, IDirectoryAccessor directoryAccessor = null)
    Parameters
    Type Name Description
    Boolean sessionPersistence

    If true, the tracked cache is stored and recovered in future application startups

    Boolean useSafeMode

    If true, files are hashed, meaning that cached content cannot be switched out by external influences

    String cacheLocationOverride

    If set, the cache will be stored in the given place instead of the default path

    Single daysValid

    Number of days that an entry in the cache should stay valid before requiring a re-download

    IDirectoryAccessor directoryAccessor

    Fields

    persistentCacheFileName

    The name under which the cache registry is stored

    Declaration
    public const string persistentCacheFileName = "i5cache.json"
    Field Value
    Type Description
    String

    Properties

    CacheLocation

    Points to the folder where the cached files are stored and where the cache registry can be found

    Declaration
    public string CacheLocation { get; }
    Property Value
    Type Description
    String

    ContentLoader

    Module that should be used for fetching the file's content

    Declaration
    public IContentLoader<string> ContentLoader { get; set; }
    Property Value
    Type Description
    IContentLoader<String>

    DaysValid

    The amount of days for which a cached file is valid

    Declaration
    public float DaysValid { get; }
    Property Value
    Type Description
    Single

    DirectoryAccessor

    Module should should be used for accessing directories

    Declaration
    public IDirectoryAccessor DirectoryAccessor { get; set; }
    Property Value
    Type Description
    IDirectoryAccessor

    FileAccessor

    Module that should be used for accessing files

    Declaration
    public IFileAccessor FileAccessor { get; set; }
    Property Value
    Type Description
    IFileAccessor

    FileCount

    Number of files in which are tracked in the cache

    Declaration
    public int FileCount { get; }
    Property Value
    Type Description
    Int32

    FileHasher

    Module for generating hash ids for files

    Declaration
    public IFileHasher FileHasher { get; set; }
    Property Value
    Type Description
    IFileHasher

    SessionPersistence

    If true, cache entries are stored persistently and read again on application startup

    Declaration
    public bool SessionPersistence { get; }
    Property Value
    Type Description
    Boolean

    UseSafeMode

    If true, cached files are hashed so that they cannot be switched out

    Declaration
    public bool UseSafeMode { get; }
    Property Value
    Type Description
    Boolean

    Methods

    AddOrUpdateInCacheAsync(String)

    Caches a file and registers it in the cache. If the file is already cached, this method forces the download of the file again and updates the cache entry

    Declaration
    public async Task<string> AddOrUpdateInCacheAsync(string path)
    Parameters
    Type Name Description
    String path

    The path to the remote file resource, most likely an URL

    Returns
    Type Description
    Task<String>

    Returns the path in local storage where the file was stored

    Cleanup()

    Called when the service is shut down

    Declaration
    public void Cleanup()

    GetCachedFileLocation(String)

    Returns the local file path where the file of the given URL path is cached If the file is not cached, it will return an empty string

    Declaration
    public string GetCachedFileLocation(string path)
    Parameters
    Type Name Description
    String path

    The path to the remote file, probably an URL

    Returns
    Type Description
    String

    Returns the path in local storage to the cached version; if no version is cached, an empty string is returned

    Initialize(IServiceManager)

    Called when the service is registered at the service manager

    Declaration
    public void Initialize(IServiceManager owner)
    Parameters
    Type Name Description
    IServiceManager owner

    The service manager which now owns the service

    IsFileInCache(String)

    Checks whether the remote file at the given URL path is already cached

    Declaration
    public bool IsFileInCache(string path)
    Parameters
    Type Name Description
    String path

    The path to the remote file, probably an URL

    Returns
    Type Description
    Boolean

    Returns whether the file is already cached

    Implements

    IFileCache
    In This Article
    Back to top i5 Toolkit Documentation