Class PooledMemoryStream
Creates a stream whose backing store is memory. Instances of this type are kept in a pool for recycling.
Inheritance
Namespace: System.IO
Assembly: Nuqleon.Memory.dll
Syntax
public class PooledMemoryStream : MemoryStream, IFreeable, IClearable
Methods
Clear()
Clears the object.
Declaration
public void Clear()
Free()
Frees the object and returns it to the pool.
Declaration
public void Free()
GetBuffer()
Gets the buffer with the contents of the memory stream. Users should be careful not to use the returned buffer beyond the point of returning the pooled memory stream back to the pool.
Declaration
public byte[] GetBuffer()
Returns
Type | Description |
---|---|
System.Byte[] | Byte array with the contents of the memory stream. |
GetBufferAndFree(Action<Byte[]>)
Exposes the buffer with the contents of the memory stream and returns the memory stream back to the pool.
Declaration
public void GetBufferAndFree(Action<byte[]> processBuffer)
Parameters
Type | Name | Description |
---|---|---|
System.Action<System.Byte[]> | processBuffer | Delegate to process the buffer. Once the delegate invocation returns, the buffer should no longer be accessed. |
GetInstance()
Gets a System.IO.MemoryStream instance from the global memory stream pool.
Declaration
public static PooledMemoryStream GetInstance()
Returns
Type | Description |
---|---|
PooledMemoryStream | A System.IO.MemoryStream instance obtained from the global pool. |
New()
Gets a pooled System.IO.MemoryStream instance, from the global pool, with RAII capabilities to return it to the pool.
Declaration
public static PooledMemoryStreamHolder New()
Returns
Type | Description |
---|---|
PooledMemoryStreamHolder | Pooled memory stream instance. |
New(MemoryStreamPool)
Gets a pooled System.IO.MemoryStream instance, from the specified pool, with RAII capabilities to return it to the pool.
Declaration
public static PooledMemoryStreamHolder New(MemoryStreamPool pool)
Parameters
Type | Name | Description |
---|---|---|
MemoryStreamPool | pool | Pool to allocate from. |
Returns
Type | Description |
---|---|
PooledMemoryStreamHolder | Pooled memory stream instance. |
Exceptions
Type | Condition |
---|---|
System.NullReferenceException | Thrown if |
ToArray()
Gets a copy of the contents of the memory stream. Note that this method does not return the memory stream back to the pool. Consider using ToArrayAndFree() to copy the contents of the memory stream to an array and return the memory stream to the pool.
Declaration
public byte[] ToArray()
Returns
Type | Description |
---|---|
System.Byte[] | Byte array with a copy of the contents of the memory stream. |
ToArrayAndFree()
Gets a copy of the contents of the memory stream and returns the memory stream back to the pool.
Declaration
public byte[] ToArrayAndFree()
Returns
Type | Description |
---|---|
System.Byte[] | Byte array with a copy of the contents of the memory stream. |