コード例 #1
0
ファイル: LayeredFileSystem.cs プロジェクト: Icyelut/LibHac
 public MergedDirectory(List <IFileSystem> sourceFileSystems, U8Span path, OpenDirectoryMode mode)
 {
     SourceFileSystems = sourceFileSystems;
     SourceDirs        = new List <IDirectory>(sourceFileSystems.Count);
     Path = path.ToU8String();
     Mode = mode;
 }
コード例 #2
0
ファイル: SaveDataFile.cs プロジェクト: shadowninja108/LibHac
 public SaveDataFile(AllocationTableStorage baseStorage, U8Span path, HierarchicalSaveFileTable fileTable, long size, OpenMode mode)
 {
     Mode        = mode;
     BaseStorage = baseStorage;
     Path        = path.ToU8String();
     FileTable   = fileTable;
     Size        = size;
 }
コード例 #3
0
 public SaveDataIndexer(FileSystemClient fsClient, U8Span mountName, SaveDataSpaceId spaceId, ulong saveDataId)
 {
     FsClient   = fsClient;
     MountName  = mountName.ToU8String();
     SaveDataId = saveDataId;
     SpaceId    = spaceId;
     Version    = 1;
 }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
ファイル: SaveDataIndexer.cs プロジェクト: garoxas/LibHac
        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();
        }
コード例 #7
0
ファイル: ConcatenationFile.cs プロジェクト: leo60228/LibHac
        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}");
                }
            }
        }
コード例 #8
0
 public KeyValueDatabase(FileSystemClient fsClient, U8Span fileName)
 {
     FsClient = fsClient;
     FileName = fileName.ToU8String();
 }