Click or drag to resize

WriteBufferedStream Class

Provides an extra layer of write buffering for a stream.
Inheritance Hierarchy

Namespace:  Ookii.Jumbo.IO
Assembly:  Ookii.Jumbo (in Ookii.Jumbo.dll) Version: 2.0.0
Syntax
public class WriteBufferedStream : Stream

The WriteBufferedStream type exposes the following members.

Constructors
  NameDescription
Public methodWriteBufferedStream(Stream)
Initializes a new instance of the WriteBufferedStream class with the default buffer size of 64KB.
Public methodWriteBufferedStream(Stream, Int32)
Initializes a new instance of the WriteBufferedStream class with the specified buffer size.
Top
Properties
  NameDescription
Public propertyCanRead
Gets a value that indicates whether the current stream supports reading.
(Overrides StreamCanRead.)
Public propertyCanSeek
Gets a value that indicates whether the current stream supports seeking.
(Overrides StreamCanSeek.)
Public propertyCanTimeout
Gets a value that determines whether the current stream can time out.
(Inherited from Stream.)
Public propertyCanWrite
Gets a value that indicates whether the current stream supports writing.
(Overrides StreamCanWrite.)
Public propertyLength
Gets the length of the stream.
(Overrides StreamLength.)
Public propertyPosition
Gets or sets the current stream position.
(Overrides StreamPosition.)
Public propertyReadTimeout
Gets or sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out.
(Inherited from Stream.)
Public propertyWriteTimeout
Gets or sets a value, in milliseconds, that determines how long the stream will attempt to write before timing out.
(Inherited from Stream.)
Top
Methods
  NameDescription
Public methodBeginRead (Inherited from Stream.)
Public methodBeginWrite (Inherited from Stream.)
Public methodClose
Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. Instead of calling this method, ensure that the stream is properly disposed.
(Inherited from Stream.)
Public methodCopyTo(Stream)
Reads the bytes from the current stream and writes them to another stream.
(Inherited from Stream.)
Public methodCopyTo(Stream, Int32)
Reads the bytes from the current stream and writes them to another stream, using a specified buffer size.
(Inherited from Stream.)
Public methodCopyToAsync(Stream)
Asynchronously reads the bytes from the current stream and writes them to another stream.
(Inherited from Stream.)
Public methodCopyToAsync(Stream, Int32)
Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size.
(Inherited from Stream.)
Public methodCopyToAsync(Stream, CancellationToken)
Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified cancellation token.
(Inherited from Stream.)
Public methodCopyToAsync(Stream, Int32, CancellationToken)
Asynchronously reads the bytes from the current stream and writes them to another stream, using a specified buffer size and cancellation token.
(Inherited from Stream.)
Protected methodCreateWaitHandle Obsolete.
Allocates a WaitHandle object.
(Inherited from Stream.)
Public methodDispose
Releases all resources used by the Stream.
(Inherited from Stream.)
Protected methodDispose(Boolean)
Releases the unmanaged resources used by the WriteBufferedStream and optionally releases the managed resources.
(Overrides StreamDispose(Boolean).)
Public methodDisposeAsync
Asynchronously releases the unmanaged resources used by the Stream.
(Inherited from Stream.)
Public methodEndRead (Inherited from Stream.)
Public methodEndWrite (Inherited from Stream.)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodFlush
Flushes the contents of the write buffer to the underlying stream.
(Overrides StreamFlush.)
Public methodFlushAsync
Asynchronously clears all buffers for this stream and causes any buffered data to be written to the underlying device.
(Inherited from Stream.)
Public methodFlushAsync(CancellationToken)
Asynchronously clears all buffers for this stream, causes any buffered data to be written to the underlying device, and monitors cancellation requests.
(Inherited from Stream.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetLifetimeService Obsolete.
Retrieves the current lifetime service object that controls the lifetime policy for this instance.
(Inherited from MarshalByRefObject.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInitializeLifetimeService Obsolete.
Obtains a lifetime service object to control the lifetime policy for this instance.
(Inherited from MarshalByRefObject.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodMemberwiseClone(Boolean)
Creates a shallow copy of the current MarshalByRefObject object.
(Inherited from MarshalByRefObject.)
Protected methodObjectInvariant Obsolete.
Provides support for a Contract.
(Inherited from Stream.)
Public methodRead(SpanByte)
When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
(Inherited from Stream.)
Public methodRead(Byte, Int32, Int32)
Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
(Overrides StreamRead(Byte, Int32, Int32).)
Public methodReadAsync(MemoryByte, CancellationToken)
Asynchronously reads a sequence of bytes from the current stream, advances the position within the stream by the number of bytes read, and monitors cancellation requests.
(Inherited from Stream.)
Public methodReadAsync(Byte, Int32, Int32)
Asynchronously reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
(Inherited from Stream.)
Public methodReadAsync(Byte, Int32, Int32, CancellationToken)
Asynchronously reads a sequence of bytes from the current stream, advances the position within the stream by the number of bytes read, and monitors cancellation requests.
(Inherited from Stream.)
Public methodReadByte
Reads a byte from the stream and advances the position within the stream by one byte, or returns -1 if at the end of the stream.
(Inherited from Stream.)
Public methodSeek
Sets the position within the current stream.
(Overrides StreamSeek(Int64, SeekOrigin).)
Public methodSetLength
Sets the length of the current stream.
(Overrides StreamSetLength(Int64).)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodWrite(ReadOnlySpanByte)
When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
(Inherited from Stream.)
Public methodWrite(Byte, Int32, Int32)
Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
(Overrides StreamWrite(Byte, Int32, Int32).)
Public methodWriteAsync(ReadOnlyMemoryByte, CancellationToken)
Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.
(Inherited from Stream.)
Public methodWriteAsync(Byte, Int32, Int32)
Asynchronously writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
(Inherited from Stream.)
Public methodWriteAsync(Byte, Int32, Int32, CancellationToken)
Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.
(Inherited from Stream.)
Public methodWriteByte
Writes a byte to the current position in the stream and advances the position within the stream by one byte.
(Inherited from Stream.)
Top
Extension Methods
  NameDescription
Public Extension MethodCopySize(Stream, Int64)Overloaded.
Copies the specified number of bytes from one stream to another using the default buffer size.
(Defined by StreamExtensions.)
Public Extension MethodCopySize(Stream, Int64, Int32)Overloaded.
Copies the specified number of bytes from one stream to another using the specified buffer size.
(Defined by StreamExtensions.)
Public Extension MethodCopyTo(Stream)Overloaded.
Copies one stream to another.
(Defined by StreamExtensions.)
Public Extension MethodCopyTo(Stream, Int32)Overloaded.
Copies one stream to another using the specified buffer size.
(Defined by StreamExtensions.)
Public Extension MethodCreateCompressor
Creates a compressor for the specified stream.
(Defined by CompressionUtility.)
Public Extension MethodCreateDecompressor
Creates a decompressor for the specified stream.
(Defined by CompressionUtility.)
Top
Remarks

This class is intended for use by the data servers when they send blocks to more efficiently pack the data into packets than what NetworkStream provides.

Unfortunately, the BufferedStream class did not provide the required behaviour on Mono (it would bypass the buffer on a large write) so that's why this class is necessary.

See Also