Example #1
0
        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();
            }
        }
Example #2
0
        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;
 }