StreamPipeReaderOptions
Represents a set of options for controlling the creation of the PipeReader.
using System.Buffers;
using System.Runtime.CompilerServices;
namespace System.IO.Pipelines
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public class StreamPipeReaderOptions
{
private const int DefaultBufferSize = 4096;
internal const int DefaultMaxBufferSize = 2097152;
private const int DefaultMinimumReadSize = 1024;
internal static readonly StreamPipeReaderOptions s_default = new StreamPipeReaderOptions(null, -1, -1, false, false);
public int BufferSize { get; }
internal int MaxBufferSize { get; } = 2097152;
public int MinimumReadSize { get; }
public MemoryPool<byte> Pool { get; }
public bool LeaveOpen { get; }
public bool UseZeroByteReads { get; }
internal bool { get; }
[System.Runtime.CompilerServices.NullableContext(2)]
public StreamPipeReaderOptions(MemoryPool<byte> pool, int bufferSize, int minimumReadSize, bool leaveOpen)
: this(pool, bufferSize, minimumReadSize, leaveOpen, false)
{
}
[System.Runtime.CompilerServices.NullableContext(2)]
public StreamPipeReaderOptions(MemoryPool<byte> pool = null, int bufferSize = -1, int minimumReadSize = -1, bool leaveOpen = false, bool useZeroByteReads = false)
{
Pool = (pool ?? MemoryPool<byte>.Shared);
IsDefaultSharedMemoryPool = (Pool == MemoryPool<byte>.Shared);
int num;
if (bufferSize != -1) {
if (bufferSize <= 0)
throw new ArgumentOutOfRangeException("bufferSize");
num = bufferSize;
} else
num = 4096;
BufferSize = num;
int num2;
if (minimumReadSize != -1) {
if (minimumReadSize <= 0)
throw new ArgumentOutOfRangeException("minimumReadSize");
num2 = minimumReadSize;
} else
num2 = 1024;
MinimumReadSize = num2;
LeaveOpen = leaveOpen;
UseZeroByteReads = useZeroByteReads;
}
}
}