Example #1
0
        protected override Result DoOperateRange(Span <byte> outBuffer, OperationId operationId, long offset, long size, ReadOnlySpan <byte> inBuffer)
        {
            switch (operationId)
            {
            case OperationId.InvalidateCache:
                return(BaseStorage.Target.OperateRange(out _, (int)OperationId.InvalidateCache, offset, size));

            case OperationId.QueryRange:
                if (outBuffer.Length != Unsafe.SizeOf <QueryRangeInfo>())
                {
                    return(ResultFs.InvalidSize.Log());
                }

                ref QueryRangeInfo info = ref SpanHelpers.AsStruct <QueryRangeInfo>(outBuffer);

                return(BaseStorage.Target.OperateRange(out info, (int)OperationId.QueryRange, offset, size));