public MergedDirectory(List <IFileSystem> sourceFileSystems, U8Span path, OpenDirectoryMode mode) { SourceFileSystems = sourceFileSystems; SourceDirs = new List <IDirectory>(sourceFileSystems.Count); Path = path.ToU8String(); Mode = mode; }
public SaveDataFile(AllocationTableStorage baseStorage, U8Span path, HierarchicalSaveFileTable fileTable, long size, OpenMode mode) { Mode = mode; BaseStorage = baseStorage; Path = path.ToU8String(); FileTable = fileTable; Size = size; }
public SaveDataIndexer(FileSystemClient fsClient, U8Span mountName, SaveDataSpaceId spaceId, ulong saveDataId) { FsClient = fsClient; MountName = mountName.ToU8String(); SaveDataId = saveDataId; SpaceId = spaceId; Version = 1; }
protected override Result DoOpenDirectory(out IDirectory directory, U8Span path, OpenDirectoryMode mode) { directory = default; Result rc = BaseFileSystem.OpenDirectory(out IDirectory baseDir, path, mode); if (rc.IsFailure()) { return(rc); } directory = new AesXtsDirectory(BaseFileSystem, baseDir, path.ToU8String(), mode); return(Result.Success); }
protected override Result DoOpenFile(out IFile file, U8Span path, OpenMode mode) { file = default; Result rc = BaseFileSystem.OpenFile(out IFile baseFile, path, mode | OpenMode.Read); if (rc.IsFailure()) { return(rc); } var xtsFile = new AesXtsFile(mode, baseFile, path.ToU8String(), KekSource, ValidationKey, BlockSize); file = xtsFile; return(Result.Success); }
public SaveDataIndexer(FileSystemClient fsClient, U8Span mountName, SaveDataSpaceId spaceId, ulong saveDataId, MemoryResource memoryResource) { FsClient = fsClient; SaveDataId = saveDataId; SpaceId = spaceId; MemoryResource = memoryResource; // note: FS uses a separate PooledBufferMemoryResource here BufferMemoryResource = memoryResource; KvDatabase = new FlatMapKeyValueStore <SaveDataAttribute>(); IsInitialized = false; IsKvdbLoaded = false; Handle = 1; MountName = mountName.ToU8String(); }
internal ConcatenationFile(IFileSystem baseFileSystem, U8Span path, IEnumerable <IFile> sources, long subFileSize, OpenMode mode) { BaseFileSystem = baseFileSystem; FilePath = path.ToU8String(); Sources = sources.ToList(); SubFileSize = subFileSize; Mode = mode; for (int i = 0; i < Sources.Count - 1; i++) { Sources[i].GetSize(out long actualSubFileSize).ThrowIfFailure(); if (actualSubFileSize != SubFileSize) { throw new ArgumentException($"Source file must have size {subFileSize}"); } } }
public KeyValueDatabase(FileSystemClient fsClient, U8Span fileName) { FsClient = fsClient; FileName = fileName.ToU8String(); }