创建得辉达定制分支

This commit is contained in:
moxiliang
2025-06-21 10:00:45 +08:00
parent dcd9b20fb0
commit c189711a92
145 changed files with 96629 additions and 5073 deletions

View File

@@ -15,7 +15,7 @@
</para>
<para>
For scenarios that need to call <see cref="M:Microsoft.IO.RecyclableMemoryStream.GetBuffer"/>, the large pool contains buffers of various sizes, all
multiples/exponentials of <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.LargeBufferMultiple"/> (1 MB by default). They are split by size to avoid overly-wasteful buffer
multiples/exponentials of <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.LargeBufferMultiple"/> (1 MB by default). They are split by size to avoid overly-wasteful buffer
usage. There should be far fewer 8 MB buffers than 1 MB buffers, for example.
</para>
</remarks>
@@ -24,25 +24,6 @@
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamCreated"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamCreatedEventArgs"/> class.
</remarks>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="requestedSize">The requested stream size.</param>
<param name="actualSize">The actual stream size.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamCreatedEventArgs.#ctor(System.Guid,System.String,System.Int64,System.Int64)">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamCreated"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamCreatedEventArgs"/> class.
</remarks>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="requestedSize">The requested stream size.</param>
<param name="actualSize">The actual stream size.</param>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.StreamCreatedEventArgs.Id">
<summary>
@@ -64,31 +45,19 @@
Actual stream size.
</summary>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamCreatedEventArgs.#ctor(System.Guid,System.String,System.Int64,System.Int64)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamCreatedEventArgs"/> class.
</summary>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="requestedSize">The requested stream size.</param>
<param name="actualSize">The actual stream size.</param>
</member>
<member name="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamDisposedEventArgs">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamDisposed"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamDisposedEventArgs"/> class.
</remarks>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="lifetime">Lifetime of the stream</param>
<param name="allocationStack">Stack of original allocation.</param>
<param name="disposeStack">Dispose stack.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamDisposedEventArgs.#ctor(System.Guid,System.String,System.TimeSpan,System.String,System.String)">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamDisposed"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamDisposedEventArgs"/> class.
</remarks>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="lifetime">Lifetime of the stream</param>
<param name="allocationStack">Stack of original allocation.</param>
<param name="disposeStack">Dispose stack.</param>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.StreamDisposedEventArgs.Id">
<summary>
@@ -115,31 +84,29 @@
Lifetime of the stream.
</summary>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamDisposedEventArgs.#ctor(System.Guid,System.String,System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamDisposedEventArgs"/> class.
</summary>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="allocationStack">Stack of original allocation.</param>
<param name="disposeStack">Dispose stack.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamDisposedEventArgs.#ctor(System.Guid,System.String,System.TimeSpan,System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamDisposedEventArgs"/> class.
</summary>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="lifetime">Lifetime of the stream</param>
<param name="allocationStack">Stack of original allocation.</param>
<param name="disposeStack">Dispose stack.</param>
</member>
<member name="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamDoubleDisposedEventArgs">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamDoubleDisposed"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamDoubleDisposedEventArgs"/> class.
</remarks>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="allocationStack">Stack of original allocation.</param>
<param name="disposeStack1">First dispose stack.</param>
<param name="disposeStack2">Second dispose stack.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamDoubleDisposedEventArgs.#ctor(System.Guid,System.String,System.String,System.String,System.String)">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamDoubleDisposed"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamDoubleDisposedEventArgs"/> class.
</remarks>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="allocationStack">Stack of original allocation.</param>
<param name="disposeStack1">First dispose stack.</param>
<param name="disposeStack2">Second dispose stack.</param>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.StreamDoubleDisposedEventArgs.Id">
<summary>
@@ -166,27 +133,20 @@
Second dispose stack.
</summary>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamDoubleDisposedEventArgs.#ctor(System.Guid,System.String,System.String,System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamDoubleDisposedEventArgs"/> class.
</summary>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="allocationStack">Stack of original allocation.</param>
<param name="disposeStack1">First dispose stack.</param>
<param name="disposeStack2">Second dispose stack.</param>
</member>
<member name="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamFinalizedEventArgs">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamFinalized"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamFinalizedEventArgs"/> class.
</remarks>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="allocationStack">Stack of original allocation.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamFinalizedEventArgs.#ctor(System.Guid,System.String,System.String)">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamFinalized"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamFinalizedEventArgs"/> class.
</remarks>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="allocationStack">Stack of original allocation.</param>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.StreamFinalizedEventArgs.Id">
<summary>
@@ -203,29 +163,18 @@
Stack where the stream was allocated.
</summary>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamFinalizedEventArgs.#ctor(System.Guid,System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamFinalizedEventArgs"/> class.
</summary>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="allocationStack">Stack of original allocation.</param>
</member>
<member name="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamConvertedToArrayEventArgs">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamConvertedToArray"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamConvertedToArrayEventArgs"/> class.
</remarks>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="stack">Stack of ToArray call.</param>
<param name="length">Length of stream.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamConvertedToArrayEventArgs.#ctor(System.Guid,System.String,System.String,System.Int64)">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamConvertedToArray"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamConvertedToArrayEventArgs"/> class.
</remarks>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="stack">Stack of ToArray call.</param>
<param name="length">Length of stream.</param>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.StreamConvertedToArrayEventArgs.Id">
<summary>
@@ -247,6 +196,15 @@
Length of stack.
</summary>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamConvertedToArrayEventArgs.#ctor(System.Guid,System.String,System.String,System.Int64)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamConvertedToArrayEventArgs"/> class.
</summary>
<param name="guid">Unique ID of the stream.</param>
<param name="tag">Tag of the stream.</param>
<param name="stack">Stack of ToArray call.</param>
<param name="length">Length of stream.</param>
</member>
<member name="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamOverCapacityEventArgs">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamOverCapacity"/> event.
@@ -335,8 +293,8 @@
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.LargeBufferCreatedEventArgs.CallStack">
<summary>
If the buffer was not satisfied from the pool, and <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.GenerateCallStacks"/> is turned on, then.
this will contain the call stack of the allocation request.
If the buffer was not satisfied from the pool, and <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.GenerateCallStacks"/> is turned on, then.
this will contain the callstack of the allocation request.
</summary>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.LargeBufferCreatedEventArgs.#ctor(System.Guid,System.String,System.Int64,System.Int64,System.Boolean,System.String)">
@@ -348,7 +306,7 @@
<param name="requiredSize">Required size of the new buffer.</param>
<param name="largePoolInUse">How many bytes from the large pool are currently in use.</param>
<param name="pooled">Whether the buffer was satisfied from the pool or not.</param>
<param name="callStack">Call stack of the allocation, if it wasn't pooled.</param>
<param name="callStack">Callstack of the allocation, if it wasn't pooled.</param>
</member>
<member name="T:Microsoft.IO.RecyclableMemoryStreamManager.BufferDiscardedEventArgs">
<summary>
@@ -388,48 +346,22 @@
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamLength"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamLengthEventArgs"/> class.
</remarks>
<param name="length">Length of the strength.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamLengthEventArgs.#ctor(System.Int64)">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.StreamLength"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamLengthEventArgs"/> class.
</remarks>
<param name="length">Length of the strength.</param>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.StreamLengthEventArgs.Length">
<summary>
Length of the stream.
</summary>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.StreamLengthEventArgs.#ctor(System.Int64)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.StreamLengthEventArgs"/> class.
</summary>
<param name="length">Length of the strength.</param>
</member>
<member name="T:Microsoft.IO.RecyclableMemoryStreamManager.UsageReportEventArgs">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.UsageReport"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.UsageReportEventArgs"/> class.
</remarks>
<param name="smallPoolInUseBytes">Bytes from the small pool currently in use.</param>
<param name="smallPoolFreeBytes">Bytes from the small pool currently available.</param>
<param name="largePoolInUseBytes">Bytes from the large pool currently in use.</param>
<param name="largePoolFreeBytes">Bytes from the large pool currently available.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.UsageReportEventArgs.#ctor(System.Int64,System.Int64,System.Int64,System.Int64)">
<summary>
Arguments for the <see cref="E:Microsoft.IO.RecyclableMemoryStreamManager.UsageReport"/> event.
</summary>
<remarks>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.UsageReportEventArgs"/> class.
</remarks>
<param name="smallPoolInUseBytes">Bytes from the small pool currently in use.</param>
<param name="smallPoolFreeBytes">Bytes from the small pool currently available.</param>
<param name="largePoolInUseBytes">Bytes from the large pool currently in use.</param>
<param name="largePoolFreeBytes">Bytes from the large pool currently available.</param>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.UsageReportEventArgs.SmallPoolInUseBytes">
<summary>
@@ -451,6 +383,15 @@
Bytes from the large pool currently available.
</summary>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.UsageReportEventArgs.#ctor(System.Int64,System.Int64,System.Int64,System.Int64)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.UsageReportEventArgs"/> class.
</summary>
<param name="smallPoolInUseBytes">Bytes from the small pool currently in use.</param>
<param name="smallPoolFreeBytes">Bytes from the small pool currently available.</param>
<param name="largePoolInUseBytes">Bytes from the large pool currently in use.</param>
<param name="largePoolFreeBytes">Bytes from the large pool currently available.</param>
</member>
<member name="T:Microsoft.IO.RecyclableMemoryStreamManager.Events">
<summary>
ETW events for RecyclableMemoryStream.
@@ -619,11 +560,110 @@
Default maximum buffer size, in bytes.
</summary>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Settings">
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.#ctor">
<summary>
Settings for controlling the behavior of RecyclableMemoryStream
Initializes the memory manager with the default block/buffer specifications. This pool may have unbounded growth unless you modify <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumFreeSmallPoolBytes"/> and <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumFreeLargePoolBytes"/>.
</summary>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.#ctor(System.Int64,System.Int64)">
<summary>
Initializes the memory manager with the default block/buffer specifications and maximum free bytes specifications.
</summary>
<param name="maximumSmallPoolFreeBytes">Maximum number of bytes to keep available in the small pool before future buffers get dropped for garbage collection</param>
<param name="maximumLargePoolFreeBytes">Maximum number of bytes to keep available in the large pool before future buffers get dropped for garbage collection</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maximumSmallPoolFreeBytes"/> is negative, or <paramref name="maximumLargePoolFreeBytes"/> is negative.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.#ctor(System.Int32,System.Int32,System.Int32)">
<summary>
Initializes the memory manager with the given block requiredSize. This pool may have unbounded growth unless you modify <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumFreeSmallPoolBytes"/> and <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumFreeLargePoolBytes"/>.
</summary>
<param name="blockSize">Size of each block that is pooled. Must be > 0.</param>
<param name="largeBufferMultiple">Each large buffer will be a multiple of this value.</param>
<param name="maximumBufferSize">Buffers larger than this are not pooled</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="blockSize"/> is not a positive number,
or <paramref name="largeBufferMultiple"/> is not a positive number,
or <paramref name="maximumBufferSize"/> is less than <paramref name="blockSize"/>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="maximumBufferSize"/> is not a multiple of <paramref name="largeBufferMultiple"/>.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.#ctor(System.Int32,System.Int32,System.Int32,System.Int64,System.Int64)">
<summary>
Initializes the memory manager with the given block requiredSize.
</summary>
<param name="blockSize">Size of each block that is pooled. Must be > 0.</param>
<param name="largeBufferMultiple">Each large buffer will be a multiple of this value.</param>
<param name="maximumBufferSize">Buffers larger than this are not pooled</param>
<param name="maximumSmallPoolFreeBytes">Maximum number of bytes to keep available in the small pool before future buffers get dropped for garbage collection</param>
<param name="maximumLargePoolFreeBytes">Maximum number of bytes to keep available in the large pool before future buffers get dropped for garbage collection</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="blockSize"/> is not a positive number,
or <paramref name="largeBufferMultiple"/> is not a positive number,
or <paramref name="maximumBufferSize"/> is less than <paramref name="blockSize"/>,
or <paramref name="maximumSmallPoolFreeBytes"/> is negative,
or <paramref name="maximumLargePoolFreeBytes"/> is negative.
</exception>
<exception cref="T:System.ArgumentException"><paramref name="maximumBufferSize"/> is not a multiple of <paramref name="largeBufferMultiple"/>.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.#ctor(System.Int32,System.Int32,System.Int32,System.Boolean)">
<summary>
Initializes the memory manager with the given block requiredSize. This pool may have unbounded growth unless you modify <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumFreeSmallPoolBytes"/> and <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumFreeLargePoolBytes"/>.
</summary>
<param name="blockSize">Size of each block that is pooled. Must be > 0.</param>
<param name="largeBufferMultiple">Each large buffer will be a multiple/exponential of this value.</param>
<param name="maximumBufferSize">Buffers larger than this are not pooled</param>
<param name="useExponentialLargeBuffer">Switch to exponential large buffer allocation strategy</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="blockSize"/> is not a positive number,
or <paramref name="largeBufferMultiple"/> is not a positive number,
or <paramref name="maximumBufferSize"/> is less than <paramref name="blockSize"/>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="maximumBufferSize"/> is not a multiple/exponential of <paramref name="largeBufferMultiple"/>.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.#ctor(System.Int32,System.Int32,System.Int32,System.Boolean,System.Int64,System.Int64)">
<summary>
Initializes the memory manager with the given block requiredSize.
</summary>
<param name="blockSize">Size of each block that is pooled. Must be > 0.</param>
<param name="largeBufferMultiple">Each large buffer will be a multiple/exponential of this value.</param>
<param name="maximumBufferSize">Buffers larger than this are not pooled.</param>
<param name="useExponentialLargeBuffer">Switch to exponential large buffer allocation strategy.</param>
<param name="maximumSmallPoolFreeBytes">Maximum number of bytes to keep available in the small pool before future buffers get dropped for garbage collection.</param>
<param name="maximumLargePoolFreeBytes">Maximum number of bytes to keep available in the large pool before future buffers get dropped for garbage collection.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="blockSize"/> is not a positive number,
or <paramref name="largeBufferMultiple"/> is not a positive number,
or <paramref name="maximumBufferSize"/> is less than <paramref name="blockSize"/>,
or <paramref name="maximumSmallPoolFreeBytes"/> is negative,
or <paramref name="maximumLargePoolFreeBytes"/> is negative.
</exception>
<exception cref="T:System.ArgumentException"><paramref name="maximumBufferSize"/> is not a multiple/exponential of <paramref name="largeBufferMultiple"/>.</exception>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.BlockSize">
<summary>
The size of each block. It must be set at creation and cannot be changed.
</summary>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.LargeBufferMultiple">
<summary>
All buffers are multiples/exponentials of this number. It must be set at creation and cannot be changed.
</summary>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.UseMultipleLargeBuffer">
<summary>
Use multiple large buffer allocation strategy. It must be set at creation and cannot be changed.
</summary>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.UseExponentialLargeBuffer">
<summary>
Use exponential large buffer allocation strategy. It must be set at creation and cannot be changed.
</summary>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumBufferSize">
<summary>
Gets the maximum buffer size.
</summary>
<remarks>Any buffer that is returned to the pool that is larger than this will be
discarded and garbage collected.</remarks>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.SmallPoolFreeSize">
<summary>
Number of bytes in small pool not currently in use.
@@ -654,67 +694,34 @@
How many buffers are in the large pool.
</summary>
</member>
<member name="T:Microsoft.IO.RecyclableMemoryStreamManager.Options">
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumFreeSmallPoolBytes">
<summary>
Parameters for customizing the behavior of <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager"/>
How many bytes of small free blocks to allow before we start dropping
those returned to us.
</summary>
<remarks>The default value is 0, meaning the pool is unbounded.</remarks>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.BlockSize">
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumFreeLargePoolBytes">
<summary>
Gets or sets the size of the pooled blocks. This must be greater than 0.
How many bytes of large free buffers to allow before we start dropping
those returned to us.
</summary>
<remarks>The default size 131,072 (128KB)</remarks>
<remarks>The default value is 0, meaning the pool is unbounded.</remarks>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.LargeBufferMultiple">
<summary>
Each large buffer will be a multiple exponential of this value
</summary>
<remarks>The default value is 1,048,576 (1MB)</remarks>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.MaximumBufferSize">
<summary>
Buffer beyond this length are not pooled.
</summary>
<remarks>The default value is 134,217,728 (128MB)</remarks>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.MaximumSmallPoolFreeBytes">
<summary>
Maximum number of bytes to keep available in the small pool.
</summary>
<remarks>
<para>Trying to return buffers to the pool beyond this limit will result in them being garbage collected.</para>
<para>The default value is 0, but all users should set a reasonable value depending on your application's memory requirements.</para>
</remarks>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.MaximumLargePoolFreeBytes">
<summary>
Maximum number of bytes to keep available in the large pools.
</summary>
<remarks>
<para>Trying to return buffers to the pool beyond this limit will result in them being garbage collected.</para>
<para>The default value is 0, but all users should set a reasonable value depending on your application's memory requirements.</para>
</remarks>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.UseExponentialLargeBuffer">
<summary>
Whether to use the exponential allocation strategy (see documentation).
</summary>
<remarks>The default value is false.</remarks>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.MaximumStreamCapacity">
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumStreamCapacity">
<summary>
Maximum stream capacity in bytes. Attempts to set a larger capacity will
result in an exception.
</summary>
<remarks>The default value of 0 indicates no limit.</remarks>
<remarks>A value of 0 indicates no limit.</remarks>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.GenerateCallStacks">
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.GenerateCallStacks">
<summary>
Whether to save call stacks for stream allocations. This can help in debugging.
Whether to save callstacks for stream allocations. This can help in debugging.
It should NEVER be turned on generally in production.
</summary>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.AggressiveBufferReturn">
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.AggressiveBufferReturn">
<summary>
Whether dirty buffers can be immediately returned to the buffer pool.
</summary>
@@ -730,53 +737,13 @@
</para>
</remarks>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.ThrowExceptionOnToArray">
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.ThrowExceptionOnToArray">
<summary>
Causes an exception to be thrown if <see cref="M:Microsoft.IO.RecyclableMemoryStream.ToArray"/> is ever called.
</summary>
<remarks>Calling <see cref="M:Microsoft.IO.RecyclableMemoryStream.ToArray"/> defeats the purpose of a pooled buffer. Use this property to discover code that is calling <see cref="M:Microsoft.IO.RecyclableMemoryStream.ToArray"/>. If this is
set and <see cref="M:Microsoft.IO.RecyclableMemoryStream.ToArray"/> is called, a <c>NotSupportedException</c> will be thrown.</remarks>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.ZeroOutBuffer">
<summary>
Zero out buffers on allocation and before returning them to the pool.
</summary>
<remarks>Setting this to true causes a performance hit and should only be set if one wants to avoid accidental data leaks.</remarks>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.Options.#ctor">
<summary>
Creates a new <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.Options"/> object.
</summary>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.Options.#ctor(System.Int32,System.Int32,System.Int32,System.Int64,System.Int64)">
<summary>
Creates a new <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.Options"/> object with the most common options.
</summary>
<param name="blockSize">Size of the blocks in the small pool.</param>
<param name="largeBufferMultiple">Size of the large buffer multiple</param>
<param name="maximumBufferSize">Maximum poolable buffer size.</param>
<param name="maximumSmallPoolFreeBytes">Maximum bytes to hold in the small pool.</param>
<param name="maximumLargePoolFreeBytes">Maximum bytes to hold in each of the large pools.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.#ctor">
<summary>
Initializes the memory manager with the default block/buffer specifications. This pool may have unbounded growth unless you modify <see cref="T:Microsoft.IO.RecyclableMemoryStreamManager.Options"/>.
</summary>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.#ctor(Microsoft.IO.RecyclableMemoryStreamManager.Options)">
<summary>
Initializes the memory manager with the given block requiredSize.
</summary>
<param name="options">Object specifying options for stream behavior.</param>
<exception cref="T:System.InvalidOperationException">
<paramref name="options.BlockSize.BlockSize"/> is not a positive number,
or <paramref name="options.LargeBufferMultiple.LargeBufferMultiple"/> is not a positive number,
or <paramref name="options.MaximumBufferSize.MaximumBufferSize"/> is less than options.BlockSize,
or <paramref name="options.MaximumSmallPoolFreeBytes.MaximumSmallPoolFreeBytes"/> is negative,
or <paramref name="options.MaximumLargePoolFreeBytes.MaximumLargePoolFreeBytes"/> is negative,
or <paramref name="options.MaximumBufferSize.MaximumBufferSize"/> is not a multiple/exponential of <paramref name="options.LargeBufferMultiple.LargeBufferMultiple"/>.
</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetBlock">
<summary>
Removes and returns a single block from the pool.
@@ -802,7 +769,7 @@
<param name="id">Unique stream ID.</param>
<param name="tag">The tag of the stream returning this buffer, for logging if necessary.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
<exception cref="T:System.ArgumentException"><c>buffer.Length</c> is not a multiple/exponential of <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.LargeBufferMultiple"/> (it did not originate from this pool).</exception>
<exception cref="T:System.ArgumentException"><c>buffer.Length</c> is not a multiple/exponential of <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.LargeBufferMultiple"/> (it did not originate from this pool).</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.ReturnBlocks(System.Collections.Generic.List{System.Byte[]},System.Guid,System.String)">
<summary>
@@ -826,55 +793,79 @@
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with no tag and a default initial capacity.
Retrieve a new <c>MemoryStream</c> object with no tag and a default initial capacity.
</summary>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Guid)">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with no tag and a default initial capacity.
Retrieve a new <c>MemoryStream</c> object with no tag and a default initial capacity.
</summary>
<param name="id">A unique identifier which can be used to trace usages of the stream.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.String)">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the given tag and a default initial capacity.
Retrieve a new <c>MemoryStream</c> object with the given tag and a default initial capacity.
</summary>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Guid,System.String)">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the given tag and a default initial capacity.
Retrieve a new <c>MemoryStream</c> object with the given tag and a default initial capacity.
</summary>
<param name="id">A unique identifier which can be used to trace usages of the stream.</param>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.String,System.Int64)">
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.String,System.Int32)">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the given tag and at least the given capacity.
Retrieve a new <c>MemoryStream</c> object with the given tag and at least the given capacity.
</summary>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<param name="requiredSize">The minimum desired capacity for the stream.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Guid,System.String,System.Int32)">
<summary>
Retrieve a new <c>MemoryStream</c> object with the given tag and at least the given capacity.
</summary>
<param name="id">A unique identifier which can be used to trace usages of the stream.</param>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<param name="requiredSize">The minimum desired capacity for the stream.</param>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Guid,System.String,System.Int64)">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the given tag and at least the given capacity.
Retrieve a new <c>MemoryStream</c> object with the given tag and at least the given capacity.
</summary>
<param name="id">A unique identifier which can be used to trace usages of the stream.</param>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<param name="requiredSize">The minimum desired capacity for the stream.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Guid,System.String,System.Int32,System.Boolean)">
<summary>
Retrieve a new <c>MemoryStream</c> object with the given tag and at least the given capacity, possibly using
a single contiguous underlying buffer.
</summary>
<remarks>Retrieving a <c>MemoryStream</c> which provides a single contiguous buffer can be useful in situations
where the initial size is known and it is desirable to avoid copying data between the smaller underlying
buffers to a single large one. This is most helpful when you know that you will always call <see cref="M:Microsoft.IO.RecyclableMemoryStream.GetBuffer"/>
on the underlying stream.</remarks>
<param name="id">A unique identifier which can be used to trace usages of the stream.</param>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<param name="requiredSize">The minimum desired capacity for the stream.</param>
<param name="asContiguousBuffer">Whether to attempt to use a single contiguous buffer.</param>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Guid,System.String,System.Int64,System.Boolean)">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the given tag and at least the given capacity, possibly using
Retrieve a new <c>MemoryStream</c> object with the given tag and at least the given capacity, possibly using
a single contiguous underlying buffer.
</summary>
<remarks>Retrieving a <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> which provides a single contiguous buffer can be useful in situations
<remarks>Retrieving a <c>MemoryStream</c> which provides a single contiguous buffer can be useful in situations
where the initial size is known and it is desirable to avoid copying data between the smaller underlying
buffers to a single large one. This is most helpful when you know that you will always call <see cref="M:Microsoft.IO.RecyclableMemoryStream.GetBuffer"/>
on the underlying stream.</remarks>
@@ -882,25 +873,39 @@
<param name="tag">A tag which can be used to track the source of the stream.</param>
<param name="requiredSize">The minimum desired capacity for the stream.</param>
<param name="asContiguousBuffer">Whether to attempt to use a single contiguous buffer.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.String,System.Int32,System.Boolean)">
<summary>
Retrieve a new <c>MemoryStream</c> object with the given tag and at least the given capacity, possibly using
a single contiguous underlying buffer.
</summary>
<remarks>Retrieving a MemoryStream which provides a single contiguous buffer can be useful in situations
where the initial size is known and it is desirable to avoid copying data between the smaller underlying
buffers to a single large one. This is most helpful when you know that you will always call <see cref="M:Microsoft.IO.RecyclableMemoryStream.GetBuffer"/>
on the underlying stream.</remarks>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<param name="requiredSize">The minimum desired capacity for the stream.</param>
<param name="asContiguousBuffer">Whether to attempt to use a single contiguous buffer.</param>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.String,System.Int64,System.Boolean)">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the given tag and at least the given capacity, possibly using
Retrieve a new <c>MemoryStream</c> object with the given tag and at least the given capacity, possibly using
a single contiguous underlying buffer.
</summary>
<remarks>Retrieving a <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> which provides a single contiguous buffer can be useful in situations
<remarks>Retrieving a MemoryStream which provides a single contiguous buffer can be useful in situations
where the initial size is known and it is desirable to avoid copying data between the smaller underlying
buffers to a single large one. This is most helpful when you know that you will always call <see cref="M:Microsoft.IO.RecyclableMemoryStream.GetBuffer"/>
on the underlying stream.</remarks>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<param name="requiredSize">The minimum desired capacity for the stream.</param>
<param name="asContiguousBuffer">Whether to attempt to use a single contiguous buffer.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Guid,System.String,System.Byte[],System.Int32,System.Int32)">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the given tag and with contents copied from the provided
Retrieve a new <c>MemoryStream</c> object with the given tag and with contents copied from the provided
buffer. The provided buffer is not wrapped or used after construction.
</summary>
<remarks>The new stream's position is set to the beginning of the stream when returned.</remarks>
@@ -909,20 +914,20 @@
<param name="buffer">The byte buffer to copy data from.</param>
<param name="offset">The offset from the start of the buffer to copy from.</param>
<param name="count">The number of bytes to copy from the buffer.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Byte[])">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the contents copied from the provided
Retrieve a new <c>MemoryStream</c> object with the contents copied from the provided
buffer. The provided buffer is not wrapped or used after construction.
</summary>
<remarks>The new stream's position is set to the beginning of the stream when returned.</remarks>
<param name="buffer">The byte buffer to copy data from.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.String,System.Byte[],System.Int32,System.Int32)">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the given tag and with contents copied from the provided
Retrieve a new <c>MemoryStream</c> object with the given tag and with contents copied from the provided
buffer. The provided buffer is not wrapped or used after construction.
</summary>
<remarks>The new stream's position is set to the beginning of the stream when returned.</remarks>
@@ -930,37 +935,67 @@
<param name="buffer">The byte buffer to copy data from.</param>
<param name="offset">The offset from the start of the buffer to copy from.</param>
<param name="count">The number of bytes to copy from the buffer.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Guid,System.String,System.ReadOnlySpan{System.Byte})">
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Guid,System.String,System.Memory{System.Byte})">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the given tag and with contents copied from the provided
Retrieve a new <c>MemoryStream</c> object with the given tag and with contents copied from the provided
buffer. The provided buffer is not wrapped or used after construction.
</summary>
<remarks>The new stream's position is set to the beginning of the stream when returned.</remarks>
<param name="id">A unique identifier which can be used to trace usages of the stream.</param>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<param name="buffer">The byte buffer to copy data from.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.ReadOnlySpan{System.Byte})">
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Guid,System.String,System.ReadOnlySpan{System.Byte})">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the contents copied from the provided
Retrieve a new <c>MemoryStream</c> object with the given tag and with contents copied from the provided
buffer. The provided buffer is not wrapped or used after construction.
</summary>
<remarks>The new stream's position is set to the beginning of the stream when returned.</remarks>
<param name="id">A unique identifier which can be used to trace usages of the stream.</param>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<param name="buffer">The byte buffer to copy data from.</param>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.Memory{System.Byte})">
<summary>
Retrieve a new <c>MemoryStream</c> object with the contents copied from the provided
buffer. The provided buffer is not wrapped or used after construction.
</summary>
<remarks>The new stream's position is set to the beginning of the stream when returned.</remarks>
<param name="buffer">The byte buffer to copy data from.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.String,System.ReadOnlySpan{System.Byte})">
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.ReadOnlySpan{System.Byte})">
<summary>
Retrieve a new <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> object with the given tag and with contents copied from the provided
Retrieve a new <c>MemoryStream</c> object with the contents copied from the provided
buffer. The provided buffer is not wrapped or used after construction.
</summary>
<remarks>The new stream's position is set to the beginning of the stream when returned.</remarks>
<param name="buffer">The byte buffer to copy data from.</param>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.String,System.Memory{System.Byte})">
<summary>
Retrieve a new <c>MemoryStream</c> object with the given tag and with contents copied from the provided
buffer. The provided buffer is not wrapped or used after construction.
</summary>
<remarks>The new stream's position is set to the beginning of the stream when returned.</remarks>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<param name="buffer">The byte buffer to copy data from.</param>
<returns>A <see cref="T:Microsoft.IO.RecyclableMemoryStream"/>.</returns>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStreamManager.GetStream(System.String,System.ReadOnlySpan{System.Byte})">
<summary>
Retrieve a new <c>MemoryStream</c> object with the given tag and with contents copied from the provided
buffer. The provided buffer is not wrapped or used after construction.
</summary>
<remarks>The new stream's position is set to the beginning of the stream when returned.</remarks>
<param name="tag">A tag which can be used to track the source of the stream.</param>
<param name="buffer">The byte buffer to copy data from.</param>
<returns>A <c>MemoryStream</c>.</returns>
</member>
<member name="E:Microsoft.IO.RecyclableMemoryStreamManager.BlockCreated">
<summary>
@@ -1116,13 +1151,13 @@
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStream.AllocationStack">
<summary>
Call stack of the constructor. It is only set if <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.GenerateCallStacks"/> is true,
Callstack of the constructor. It is only set if <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.GenerateCallStacks"/> is true,
which should only be in debugging situations.
</summary>
</member>
<member name="P:Microsoft.IO.RecyclableMemoryStream.DisposeStack">
<summary>
Call stack of the <see cref="M:Microsoft.IO.RecyclableMemoryStream.Dispose(System.Boolean)"/> call. It is only set if <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.GenerateCallStacks"/> is true,
Callstack of the <see cref="M:Microsoft.IO.RecyclableMemoryStream.Dispose(System.Boolean)"/> call. It is only set if <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.GenerateCallStacks"/> is true,
which should only be in debugging situations.
</summary>
</member>
@@ -1154,6 +1189,14 @@
<param name="id">A unique identifier which can be used to trace usages of the stream.</param>
<param name="tag">A string identifying this stream for logging and debugging purposes.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.#ctor(Microsoft.IO.RecyclableMemoryStreamManager,System.String,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> class.
</summary>
<param name="memoryManager">The memory manager</param>
<param name="tag">A string identifying this stream for logging and debugging purposes.</param>
<param name="requestedSize">The initial requested size to prevent future allocations.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.#ctor(Microsoft.IO.RecyclableMemoryStreamManager,System.String,System.Int64)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> class.
@@ -1162,6 +1205,15 @@
<param name="tag">A string identifying this stream for logging and debugging purposes.</param>
<param name="requestedSize">The initial requested size to prevent future allocations.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.#ctor(Microsoft.IO.RecyclableMemoryStreamManager,System.Guid,System.String,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> class.
</summary>
<param name="memoryManager">The memory manager.</param>
<param name="id">A unique identifier which can be used to trace usages of the stream.</param>
<param name="tag">A string identifying this stream for logging and debugging purposes.</param>
<param name="requestedSize">The initial requested size to prevent future allocations.</param>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.#ctor(Microsoft.IO.RecyclableMemoryStreamManager,System.Guid,System.String,System.Int64)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.IO.RecyclableMemoryStream"/> class.
@@ -1356,6 +1408,21 @@
<exception cref="T:System.ArgumentException">offset subtracted from the buffer length is less than count.</exception>
<exception cref="T:System.ObjectDisposedException">Object has been disposed.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.SafeRead(System.Byte[],System.Int32,System.Int32,System.Int32@)">
<summary>
Reads from the specified position into the provided buffer.
</summary>
<param name="buffer">Destination buffer.</param>
<param name="offset">Offset into buffer at which to start placing the read bytes.</param>
<param name="count">Number of bytes to read.</param>
<param name="streamPosition">Position in the stream to start reading from.</param>
<returns>The number of bytes read.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="offset"/> or <paramref name="count"/> is less than 0.</exception>
<exception cref="T:System.ArgumentException"><paramref name="offset"/> subtracted from the buffer length is less than <paramref name="count"/>.</exception>
<exception cref="T:System.ObjectDisposedException">Object has been disposed.</exception>
<exception cref="T:System.InvalidOperationException">Stream position is beyond <c>int.MaxValue</c>.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.SafeRead(System.Byte[],System.Int32,System.Int32,System.Int64@)">
<summary>
Reads from the specified position into the provided buffer.
@@ -1378,6 +1445,16 @@
<returns>The number of bytes read.</returns>
<exception cref="T:System.ObjectDisposedException">Object has been disposed.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.SafeRead(System.Span{System.Byte},System.Int32@)">
<summary>
Reads from the specified position into the provided buffer.
</summary>
<param name="buffer">Destination buffer.</param>
<param name="streamPosition">Position in the stream to start reading from.</param>
<returns>The number of bytes read.</returns>
<exception cref="T:System.ObjectDisposedException">Object has been disposed.</exception>
<exception cref="T:System.InvalidOperationException">Stream position is beyond <c>int.MaxValue</c>.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.SafeRead(System.Span{System.Byte},System.Int64@)">
<summary>
Reads from the specified position into the provided buffer.
@@ -1426,6 +1503,15 @@
<returns>The byte at the current position, or -1 if the position is at the end of the stream.</returns>
<exception cref="T:System.ObjectDisposedException">Object has been disposed.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.SafeReadByte(System.Int32@)">
<summary>
Reads a single byte from the specified position in the stream.
</summary>
<param name="streamPosition">The position in the stream to read from.</param>
<returns>The byte at the current position, or -1 if the position is at the end of the stream.</returns>
<exception cref="T:System.ObjectDisposedException">Object has been disposed.</exception>
<exception cref="T:System.InvalidOperationException">Stream position is beyond <c>int.MaxValue</c>.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.SafeReadByte(System.Int64@)">
<summary>
Reads a single byte from the specified position in the stream.
@@ -1438,7 +1524,7 @@
<summary>
Sets the length of the stream.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">value is negative or larger than <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.MaximumStreamCapacity"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">value is negative or larger than <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumStreamCapacity"/>.</exception>
<exception cref="T:System.ObjectDisposedException">Object has been disposed.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.Seek(System.Int64,System.IO.SeekOrigin)">
@@ -1449,7 +1535,7 @@
<param name="loc">From where.</param>
<returns>The new position.</returns>
<exception cref="T:System.ObjectDisposedException">Object has been disposed.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="offset"/> is larger than <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.Options.MaximumStreamCapacity"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="offset"/> is larger than <see cref="P:Microsoft.IO.RecyclableMemoryStreamManager.MaximumStreamCapacity"/>.</exception>
<exception cref="T:System.ArgumentException">Invalid seek origin.</exception>
<exception cref="T:System.IO.IOException">Attempt to set negative position.</exception>
</member>
@@ -1462,6 +1548,19 @@
<exception cref="T:System.ArgumentNullException"><paramref name="stream"/> is null.</exception>
<exception cref="T:System.ObjectDisposedException">Object has been disposed.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.WriteTo(System.IO.Stream,System.Int32,System.Int32)">
<summary>
Synchronously writes this stream's bytes, starting at offset, for count bytes, to the argument stream.
</summary>
<param name="stream">Destination stream.</param>
<param name="offset">Offset in source.</param>
<param name="count">Number of bytes to write.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="stream"/> is null.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> is less than 0, or <paramref name="offset"/> + <paramref name="count"/> is beyond this <paramref name="stream"/>'s length.
</exception>
<exception cref="T:System.ObjectDisposedException">Object has been disposed.</exception>
</member>
<member name="M:Microsoft.IO.RecyclableMemoryStream.WriteTo(System.IO.Stream,System.Int64,System.Int64)">
<summary>
Synchronously writes this stream's bytes, starting at offset, for count bytes, to the argument stream.