renaming of FileCache
This commit is contained in:
@@ -6,14 +6,14 @@ using System.Globalization;
|
||||
|
||||
namespace MareSynchronos.FileCache;
|
||||
|
||||
public class FileCache
|
||||
public class FileCacheEntity
|
||||
{
|
||||
public string ResolvedFilepath { get; private set; } = string.Empty;
|
||||
public string Hash { get; set; }
|
||||
public string PrefixedFilePath { get; init; }
|
||||
public string LastModifiedDateTicks { get; set; }
|
||||
|
||||
public FileCache(string hash, string path, string lastModifiedDateTicks)
|
||||
public FileCacheEntity(string hash, string path, string lastModifiedDateTicks)
|
||||
{
|
||||
Hash = hash;
|
||||
PrefixedFilePath = path;
|
||||
|
||||
@@ -26,7 +26,7 @@ public class FileCacheManager : IDisposable
|
||||
private readonly Configuration _configuration;
|
||||
private readonly string CsvPath;
|
||||
private string CsvBakPath => CsvPath + ".bak";
|
||||
private readonly ConcurrentDictionary<string, FileCache> FileCaches = new(StringComparer.Ordinal);
|
||||
private readonly ConcurrentDictionary<string, FileCacheEntity> FileCaches = new(StringComparer.Ordinal);
|
||||
public const string CsvSplit = "|";
|
||||
private object _fileWriteLock = new();
|
||||
|
||||
@@ -52,7 +52,7 @@ public class FileCacheManager : IDisposable
|
||||
var hash = splittedEntry[0];
|
||||
var path = splittedEntry[1];
|
||||
var time = splittedEntry[2];
|
||||
FileCaches[path] = new FileCache(hash, path, time);
|
||||
FileCaches[path] = new FileCacheEntity(hash, path, time);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@@ -87,9 +87,9 @@ public class FileCacheManager : IDisposable
|
||||
}
|
||||
}
|
||||
|
||||
public List<FileCache> GetAllFileCaches() => FileCaches.Values.ToList();
|
||||
public List<FileCacheEntity> GetAllFileCaches() => FileCaches.Values.ToList();
|
||||
|
||||
public FileCache? GetFileCacheByHash(string hash)
|
||||
public FileCacheEntity? GetFileCacheByHash(string hash)
|
||||
{
|
||||
if (FileCaches.Any(f => string.Equals(f.Value.Hash, hash, StringComparison.Ordinal)))
|
||||
{
|
||||
@@ -99,7 +99,7 @@ public class FileCacheManager : IDisposable
|
||||
return null;
|
||||
}
|
||||
|
||||
public (FileState, FileCache) ValidateFileCacheEntity(FileCache fileCache)
|
||||
public (FileState, FileCacheEntity) ValidateFileCacheEntity(FileCacheEntity fileCache)
|
||||
{
|
||||
fileCache = ReplacePathPrefixes(fileCache);
|
||||
FileInfo fi = new(fileCache.ResolvedFilepath);
|
||||
@@ -115,7 +115,7 @@ public class FileCacheManager : IDisposable
|
||||
return (FileState.Valid, fileCache);
|
||||
}
|
||||
|
||||
public FileCache? GetFileCacheByPath(string path)
|
||||
public FileCacheEntity? GetFileCacheByPath(string path)
|
||||
{
|
||||
var cleanedPath = path.Replace("/", "\\", StringComparison.Ordinal).ToLowerInvariant().Replace(_ipcManager.PenumbraModDirectory()!.ToLowerInvariant(), "", StringComparison.Ordinal);
|
||||
var entry = FileCaches.FirstOrDefault(f => f.Value.ResolvedFilepath.EndsWith(cleanedPath, StringComparison.Ordinal)).Value;
|
||||
@@ -131,7 +131,7 @@ public class FileCacheManager : IDisposable
|
||||
return validatedCacheEntry;
|
||||
}
|
||||
|
||||
public FileCache? CreateCacheEntry(string path)
|
||||
public FileCacheEntity? CreateCacheEntry(string path)
|
||||
{
|
||||
Logger.Debug("Creating cache entry for " + path);
|
||||
FileInfo fi = new(path);
|
||||
@@ -142,7 +142,7 @@ public class FileCacheManager : IDisposable
|
||||
return CreateFileCacheEntity(fi, prefixedPath, fi.Name.ToUpper(CultureInfo.InvariantCulture));
|
||||
}
|
||||
|
||||
public FileCache? CreateFileEntry(string path)
|
||||
public FileCacheEntity? CreateFileEntry(string path)
|
||||
{
|
||||
Logger.Debug("Creating file entry for " + path);
|
||||
FileInfo fi = new(path);
|
||||
@@ -153,13 +153,13 @@ public class FileCacheManager : IDisposable
|
||||
return CreateFileCacheEntity(fi, prefixedPath);
|
||||
}
|
||||
|
||||
private FileCache? CreateFileCacheEntity(FileInfo fileInfo, string prefixedPath, string? hash = null)
|
||||
private FileCacheEntity? CreateFileCacheEntity(FileInfo fileInfo, string prefixedPath, string? hash = null)
|
||||
{
|
||||
if (hash == null)
|
||||
{
|
||||
hash = Crypto.GetFileHash(fileInfo.FullName);
|
||||
}
|
||||
var entity = new FileCache(hash, prefixedPath, fileInfo.LastWriteTimeUtc.Ticks.ToString(CultureInfo.InvariantCulture));
|
||||
var entity = new FileCacheEntity(hash, prefixedPath, fileInfo.LastWriteTimeUtc.Ticks.ToString(CultureInfo.InvariantCulture));
|
||||
entity = ReplacePathPrefixes(entity);
|
||||
FileCaches[prefixedPath] = entity;
|
||||
lock (_fileWriteLock)
|
||||
@@ -171,14 +171,14 @@ public class FileCacheManager : IDisposable
|
||||
return result;
|
||||
}
|
||||
|
||||
private FileCache? GetValidatedFileCache(FileCache fileCache)
|
||||
private FileCacheEntity? GetValidatedFileCache(FileCacheEntity fileCache)
|
||||
{
|
||||
var resulingFileCache = ReplacePathPrefixes(fileCache);
|
||||
resulingFileCache = Validate(resulingFileCache);
|
||||
return resulingFileCache;
|
||||
}
|
||||
|
||||
private FileCache? Validate(FileCache fileCache)
|
||||
private FileCacheEntity? Validate(FileCacheEntity fileCache)
|
||||
{
|
||||
var file = new FileInfo(fileCache.ResolvedFilepath);
|
||||
if (!file.Exists)
|
||||
@@ -195,12 +195,12 @@ public class FileCacheManager : IDisposable
|
||||
return fileCache;
|
||||
}
|
||||
|
||||
public void RemoveHash(FileCache entity)
|
||||
public void RemoveHash(FileCacheEntity entity)
|
||||
{
|
||||
FileCaches.Remove(entity.Hash, out _);
|
||||
}
|
||||
|
||||
public void UpdateHash(FileCache fileCache)
|
||||
public void UpdateHash(FileCacheEntity fileCache)
|
||||
{
|
||||
Logger.Debug("Updating hash for " + fileCache.ResolvedFilepath);
|
||||
fileCache.Hash = Crypto.GetFileHash(fileCache.ResolvedFilepath);
|
||||
@@ -209,7 +209,7 @@ public class FileCacheManager : IDisposable
|
||||
FileCaches[fileCache.PrefixedFilePath] = fileCache;
|
||||
}
|
||||
|
||||
private FileCache ReplacePathPrefixes(FileCache fileCache)
|
||||
private FileCacheEntity ReplacePathPrefixes(FileCacheEntity fileCache)
|
||||
{
|
||||
if (fileCache.PrefixedFilePath.StartsWith(PenumbraPrefix, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
|
||||
@@ -221,8 +221,8 @@ public class PeriodicFileScanner : IDisposable
|
||||
var cpuCount = (int)(Environment.ProcessorCount / 2.0f);
|
||||
Task[] dbTasks = Enumerable.Range(0, cpuCount).Select(c => Task.CompletedTask).ToArray();
|
||||
|
||||
ConcurrentBag<FileCache> entitiesToRemove = new();
|
||||
ConcurrentBag<FileCache> entitiesToUpdate = new();
|
||||
ConcurrentBag<FileCacheEntity> entitiesToRemove = new();
|
||||
ConcurrentBag<FileCacheEntity> entitiesToUpdate = new();
|
||||
try
|
||||
{
|
||||
foreach (var cache in _fileDbManager.GetAllFileCaches())
|
||||
|
||||
Reference in New Issue
Block a user