C# Class Revenj.ChunkedMemoryStream

In memory stream with 8192 blocks to avoid LOH issues. Since .NET places objects larger that 85000 bytes into LOH, avoid it as much as possible by using list of smaller blocks.
Inheritance: Stream
Afficher le fichier Open project: ngs-doo/revenj Class Usage Examples

Méthodes publiques

Méthode Description
ChunkedMemoryStream ( ) : System

Create new empty stream

ChunkedMemoryStream ( Stream another ) : System

Create in memory stream based on another stream. Provided stream will not be disposed.

ChunkedMemoryStream ( Stream another, bool dispose, bool reset ) : System

Create in memory stream based on another stream. Specify whether should provided stream be disposed after copying.

CopyTo ( Stream stream ) : void

Optimized version of copy to stream

Equals ( Stream another ) : bool

Compare two streams. Length and content will be compared.

Flush ( ) : void

Flush stream. Does nothing.

Read ( byte buffer, int offset, int count ) : int

Read buffer from the stream. Can return less then specified count if remaining block size is less than specified count

ReadByte ( ) : int

Read a single byte

Seek ( long offset, SeekOrigin origin ) : long

Seek to position in the stream.

SetLength ( long value ) : void

Set new length of the stream. Adjusts the current position if new length is larger then it.

Write ( byte buffer, int offset, int count ) : void

Write buffer to stream. Advances current position by count. Increases length if necessary. New blocks will be added as required. It's best to use buffer of size 8192

WriteByte ( byte value ) : void

Write byte to stream. Advances current position by one. Adds a new block if necessary.

Méthodes protégées

Méthode Description
Dispose ( bool disposing ) : void

Method Details

ChunkedMemoryStream() public méthode

Create new empty stream
public ChunkedMemoryStream ( ) : System
Résultat System

ChunkedMemoryStream() public méthode

Create in memory stream based on another stream. Provided stream will not be disposed.
public ChunkedMemoryStream ( Stream another ) : System
another Stream stream to copy
Résultat System

ChunkedMemoryStream() public méthode

Create in memory stream based on another stream. Specify whether should provided stream be disposed after copying.
public ChunkedMemoryStream ( Stream another, bool dispose, bool reset ) : System
another Stream stream to copy
dispose bool dispose provided stream
reset bool reset provided stream to original position
Résultat System

CopyTo() public méthode

Optimized version of copy to stream
public CopyTo ( Stream stream ) : void
stream Stream destination stream
Résultat void

Dispose() protected méthode

protected Dispose ( bool disposing ) : void
disposing bool
Résultat void

Equals() public méthode

Compare two streams. Length and content will be compared.
public Equals ( Stream another ) : bool
another Stream stream to compare
Résultat bool

Flush() public méthode

Flush stream. Does nothing.
public Flush ( ) : void
Résultat void

Read() public méthode

Read buffer from the stream. Can return less then specified count if remaining block size is less than specified count
public Read ( byte buffer, int offset, int count ) : int
buffer byte copy to buffer
offset int offset in the buffer
count int maximum size to read
Résultat int

ReadByte() public méthode

Read a single byte
public ReadByte ( ) : int
Résultat int

Seek() public méthode

Seek to position in the stream.
public Seek ( long offset, SeekOrigin origin ) : long
offset long offset at stream
origin SeekOrigin position type
Résultat long

SetLength() public méthode

Set new length of the stream. Adjusts the current position if new length is larger then it.
public SetLength ( long value ) : void
value long new length
Résultat void

Write() public méthode

Write buffer to stream. Advances current position by count. Increases length if necessary. New blocks will be added as required. It's best to use buffer of size 8192
public Write ( byte buffer, int offset, int count ) : void
buffer byte provided bytes
offset int offset in bytes
count int total length
Résultat void

WriteByte() public méthode

Write byte to stream. Advances current position by one. Adds a new block if necessary.
public WriteByte ( byte value ) : void
value byte byte to write
Résultat void