public Result OpenSaveDataInfoReaderWithFilter(out ISaveDataInfoReader infoReader, SaveDataSpaceId spaceId, ref SaveDataFilter filter) { infoReader = default; // Missing permission check SaveDataIndexerReader indexReader = default; try { Result rc = FsServer.SaveDataIndexerManager.GetSaveDataIndexer(out indexReader, spaceId); if (rc.IsFailure()) { return(rc); } rc = indexReader.Indexer.OpenSaveDataInfoReader(out ISaveDataInfoReader baseInfoReader); if (rc.IsFailure()) { return(rc); } var filterInternal = new SaveDataFilterInternal(ref filter, spaceId); infoReader = new SaveDataInfoFilterReader(baseInfoReader, ref filterInternal); return(Result.Success); } finally { indexReader.Dispose(); } }
public Result FindSaveDataWithFilter(out long count, Span <byte> saveDataInfoBuffer, SaveDataSpaceId spaceId, ref SaveDataFilter filter) { count = default; if (saveDataInfoBuffer.Length != Unsafe.SizeOf <SaveDataInfo>()) { return(ResultFs.InvalidArgument.Log()); } // Missing permission check var internalFilter = new SaveDataFilterInternal(ref filter, GetSpaceIdForIndexer(spaceId)); ref SaveDataInfo saveDataInfo = ref Unsafe.As <byte, SaveDataInfo>(ref saveDataInfoBuffer[0]);
public SaveDataInfoFilterReader(ISaveDataInfoReader reader, ref SaveDataFilterInternal filter) { Reader = reader; Filter = filter; }