Class BufferSegmentReadingStream
Implements a read-only stream wrapper around a segment of byte[]. Unlike MemoryStream, this class allows for use of long indexes and reuse the same stream instance with different byte[].
Inheritance
System.Object
System.MarshalByRefObject
System.IO.Stream
BufferSegmentReadingStream
Implements
System.IDisposable
Inherited Members
System.IO.Stream.Null
System.IO.Stream.BeginRead(System.Byte[], System.Int32, System.Int32, System.AsyncCallback, System.Object)
System.IO.Stream.BeginWrite(System.Byte[], System.Int32, System.Int32, System.AsyncCallback, System.Object)
System.IO.Stream.CopyTo(System.IO.Stream)
System.IO.Stream.CopyTo(System.IO.Stream, System.Int32)
System.IO.Stream.CopyToAsync(System.IO.Stream)
System.IO.Stream.CopyToAsync(System.IO.Stream, System.Int32)
System.IO.Stream.CopyToAsync(System.IO.Stream, System.Int32, System.Threading.CancellationToken)
System.IO.Stream.CreateWaitHandle()
System.IO.Stream.Dispose()
System.IO.Stream.EndRead(System.IAsyncResult)
System.IO.Stream.EndWrite(System.IAsyncResult)
System.IO.Stream.FlushAsync()
System.IO.Stream.FlushAsync(System.Threading.CancellationToken)
System.IO.Stream.ObjectInvariant()
System.IO.Stream.ReadAsync(System.Byte[], System.Int32, System.Int32)
System.IO.Stream.ReadAsync(System.Byte[], System.Int32, System.Int32, System.Threading.CancellationToken)
System.IO.Stream.Synchronized(System.IO.Stream)
System.IO.Stream.WriteAsync(System.Byte[], System.Int32, System.Int32)
System.IO.Stream.WriteAsync(System.Byte[], System.Int32, System.Int32, System.Threading.CancellationToken)
System.IO.Stream.WriteByte(System.Byte)
System.IO.Stream.CanTimeout
System.IO.Stream.ReadTimeout
System.IO.Stream.WriteTimeout
System.MarshalByRefObject.GetLifetimeService()
System.MarshalByRefObject.InitializeLifetimeService()
System.MarshalByRefObject.MemberwiseClone(System.Boolean)
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Azos.IO
Assembly: Azos.dll
Syntax
public sealed class BufferSegmentReadingStream : Stream, IDisposable
Constructors
BufferSegmentReadingStream()
Declaration
public BufferSegmentReadingStream()
Properties
Buffer
Target stream that this stream wraps
Declaration
public byte[] Buffer { get; }
Property Value
Type | Description |
---|---|
System.Byte[] |
CanRead
Declaration
public override bool CanRead { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Overrides
System.IO.Stream.CanRead
CanSeek
Declaration
public override bool CanSeek { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Overrides
System.IO.Stream.CanSeek
CanWrite
Declaration
public override bool CanWrite { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Overrides
System.IO.Stream.CanWrite
Length
Declaration
public override long Length { get; }
Property Value
Type | Description |
---|---|
System.Int64 |
Overrides
System.IO.Stream.Length
Position
Declaration
public override long Position { get; set; }
Property Value
Type | Description |
---|---|
System.Int64 |
Overrides
System.IO.Stream.Position
Methods
BindBuffer(Byte[], Int64, Int64)
Sets byte[] as stream source
Declaration
public void BindBuffer(byte[] buffer, long idxStart, long count)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | buffer | |
System.Int64 | idxStart | |
System.Int64 | count |
Close()
Declaration
public override void Close()
Overrides
System.IO.Stream.Close()
Dispose(Boolean)
Declaration
protected override void Dispose(bool disposing)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | disposing |
Overrides
System.IO.Stream.Dispose(System.Boolean)
Flush()
Declaration
public override void Flush()
Overrides
System.IO.Stream.Flush()
Read(Byte[], Int32, Int32)
Declaration
public override int Read(byte[] buffer, int offset, int count)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | buffer | |
System.Int32 | offset | |
System.Int32 | count |
Returns
Type | Description |
---|---|
System.Int32 |
Overrides
System.IO.Stream.Read(System.Byte[], System.Int32, System.Int32)
ReadByte()
Declaration
public override int ReadByte()
Returns
Type | Description |
---|---|
System.Int32 |
Overrides
System.IO.Stream.ReadByte()
Seek(Int64, SeekOrigin)
Declaration
public override long Seek(long offset, SeekOrigin origin)
Parameters
Type | Name | Description |
---|---|---|
System.Int64 | offset | |
System.IO.SeekOrigin | origin |
Returns
Type | Description |
---|---|
System.Int64 |
Overrides
System.IO.Stream.Seek(System.Int64, System.IO.SeekOrigin)
SetLength(Int64)
Declaration
public override void SetLength(long value)
Parameters
Type | Name | Description |
---|---|---|
System.Int64 | value |
Overrides
System.IO.Stream.SetLength(System.Int64)
UnsafeBindBuffer(Byte[], Int64, Int64)
Sets byte[] as stream source this method does the same as BindBuffer without extra if statements, correct data is expected to be supplied
Declaration
public void UnsafeBindBuffer(byte[] buffer, long idxStart, long count)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | buffer | |
System.Int64 | idxStart | |
System.Int64 | count |
Write(Byte[], Int32, Int32)
Declaration
public override void Write(byte[] buffer, int offset, int count)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | buffer | |
System.Int32 | offset | |
System.Int32 | count |
Overrides
System.IO.Stream.Write(System.Byte[], System.Int32, System.Int32)
Implements
System.IDisposable