Class PooledMemoryBufferStream
Readable and writeable stream implementation backed by a pooled memory area
Inheritance
Implements
Inherited Members
Namespace: EPiServer.BaseLibrary.IO
Assembly: EPiServer.BaseLibrary.dll
Version: 8.11.0Syntax
public class PooledMemoryBufferStream : Stream, IDisposable
Constructors
PooledMemoryBufferStream(MemoryBufferPool)
Initializes a new instance of the PooledMemoryBufferStream class
Declaration
public PooledMemoryBufferStream(MemoryBufferPool pool)
Parameters
Type | Name | Description |
---|---|---|
MemoryBufferPool | pool | Use this pool to allocate memory from |
Properties
CanRead
True if not closed
Declaration
public override bool CanRead { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Overrides
CanSeek
True if not closed
Declaration
public override bool CanSeek { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Overrides
CanWrite
True if not closed
Declaration
public override bool CanWrite { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Overrides
Length
The length of the stream. (How many bytes you can read from position 0).
Declaration
public override long Length { get; }
Property Value
Type | Description |
---|---|
System.Int64 |
Overrides
Position
Gets or sets the next position to read or write from or to.
Declaration
public override long Position { get; set; }
Property Value
Type | Description |
---|---|
System.Int64 |
Overrides
Methods
Close()
Close the stream and Dispose() of the memory buffers
Declaration
public override void Close()
Overrides
Dispose()
Releases all resources used by the System.IO.Stream.
Declaration
public void Dispose()
Dispose(Boolean)
Clean up. This is important since we want to keep track of re-usable buffers from the backing memory store.
Declaration
protected override void Dispose(bool disposing)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | disposing | true of called via Dispose(), false if called by framework Finalize() |
Overrides
Finalize()
Releases unmanaged resources and performs other cleanup operations before the PooledMemoryBufferStream is reclaimed by garbage collection.
Declaration
protected void Finalize()
Flush()
Do nothing
Declaration
public override void Flush()
Overrides
Read(Byte[], Int32, Int32)
Read from the stream
Declaration
public override int Read(byte[] buffer, int offset, int count)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | buffer | Where to put the result |
System.Int32 | offset | Offset into the buffer to place the result |
System.Int32 | count | How many bytes to read |
Returns
Type | Description |
---|---|
System.Int32 | The actual number of bytes read. 0 for end of file. |
Overrides
Seek(Int64, SeekOrigin)
Set the position of next read and write
Declaration
public override long Seek(long offset, SeekOrigin origin)
Parameters
Type | Name | Description |
---|---|---|
System.Int64 | offset | Whence the seek is relative to |
System.IO.SeekOrigin | origin | The amount to seek from the offset |
Returns
Type | Description |
---|---|
System.Int64 | The new position |
Overrides
Remarks
No actual allocation of space is done by Seeking
SetLength(Int64)
Set the length of stream.
Declaration
public override void SetLength(long value)
Parameters
Type | Name | Description |
---|---|---|
System.Int64 | value | The length |
Overrides
Remarks
No actual allocation of space is done, this just limits how far you can read
Write(Byte[], Int32, Int32)
Write to the stream
Declaration
public override void Write(byte[] buffer, int offset, int count)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | buffer | The buffer to write from |
System.Int32 | offset | The offset in the buffer to start from |
System.Int32 | count | The number of bytes to write |