Click or drag to resize

WriteBufferedStream Class

Provides an extra layer of write buffering for a stream.
Inheritance Hierarchy
SystemObject
  SystemMarshalByRefObject
    System.IOStream
      Ookii.Jumbo.IOWriteBufferedStream

Namespace: Ookii.Jumbo.IO
Assembly: Ookii.Jumbo (in Ookii.Jumbo.dll) Version: 0.3.0+dc1307f20e065bb638e0b73a34cd216f57e486f1
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 propertyCanTimeoutGets 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 propertyReadTimeoutGets or sets a value, in milliseconds, that determines how long the stream will attempt to read before timing out.
(Inherited from Stream)
Public propertyWriteTimeoutGets 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 methodBeginReadBegins an asynchronous read operation. (Consider using ReadAsync(Byte, Int32, Int32) instead.)
(Inherited from Stream)
Public methodBeginWriteBegins an asynchronous write operation. (Consider using WriteAsync(Byte, Int32, Int32) instead.)
(Inherited from Stream)
Public methodCloseCloses 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. Both streams positions are advanced by the number of bytes copied.
(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. Both streams positions are advanced by the number of bytes copied.
(Inherited from Stream)
Public methodCopyToAsync(Stream)Asynchronously reads the bytes from the current stream and writes them to another stream. Both streams positions are advanced by the number of bytes copied.
(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. Both streams positions are advanced by the number of bytes copied.
(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. Both streams positions are advanced by the number of bytes copied.
(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. Both streams positions are advanced by the number of bytes copied.
(Inherited from Stream)
Protected methodCreateWaitHandleObsolete.
Allocates a WaitHandle object.
(Inherited from Stream)
Public methodDisposeReleases 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 methodDisposeAsyncAsynchronously releases the unmanaged resources used by the Stream.
(Inherited from Stream)
Public methodEndReadWaits for the pending asynchronous read to complete. (Consider using ReadAsync(Byte, Int32, Int32) instead.)
(Inherited from Stream)
Public methodEndWriteEnds an asynchronous write operation. (Consider using WriteAsync(Byte, Int32, Int32) instead.)
(Inherited from Stream)
Public methodEqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Protected methodFinalizeAllows 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 methodFlushAsyncAsynchronously 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 methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetLifetimeServiceObsolete.
Retrieves the current lifetime service object that controls the lifetime policy for this instance.
(Inherited from MarshalByRefObject)
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Public methodInitializeLifetimeServiceObsolete.
Obtains a lifetime service object to control the lifetime policy for this instance.
(Inherited from MarshalByRefObject)
Protected methodMemberwiseCloneCreates 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 methodObjectInvariantObsolete.
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 methodReadAtLeastReads at least a minimum number of bytes from the current stream and advances the position within the stream by the number of bytes read.
(Inherited from Stream)
Public methodReadAtLeastAsyncAsynchronously reads at least a minimum number 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 methodReadByteReads 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 methodReadExactly(SpanByte)Reads bytes from the current stream and advances the position within the stream until the buffer is filled.
(Inherited from Stream)
Public methodReadExactly(Byte, Int32, Int32)Reads count number of bytes from the current stream and advances the position within the stream.
(Inherited from Stream)
Public methodReadExactlyAsync(MemoryByte, CancellationToken)Asynchronously reads bytes from the current stream, advances the position within the stream until the buffer is filled, and monitors cancellation requests.
(Inherited from Stream)
Public methodReadExactlyAsync(Byte, Int32, Int32, CancellationToken)Asynchronously reads count number of bytes from the current stream, advances the position within the stream, and monitors cancellation requests.
(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 methodToStringReturns 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 methodWriteByteWrites 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 Copies the specified number of bytes from one stream to another using the default buffer size.
(Defined by StreamExtensions)
Public Extension MethodCopySize Copies the specified number of bytes from one stream to another using the specified buffer size.
(Defined by StreamExtensions)
Public Extension MethodCopyTo Copies one stream to another.
(Defined by StreamExtensions)
Public Extension MethodCopyTo 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