Click or drag to resize
HashStreamT Class
A wrapper stream that calculates a hash of the base stream as it is being read or written. The calculated hash is only available after the stream is closed or CalculateHash is called. After calling CalculateHash, any further reads on the streams will not change the CalculatedHash. If an ExpectedHash is specified and is not equal to the calculated hash, Close or CalculateHash methods will throw an ClientException. If base stream's position is not 0 or HashOnReads is true and the entire stream is not read, the CalculatedHash will be set to an empty byte array and comparison to ExpectedHash will not be made.
Inheritance Hierarchy

Namespace: Aliyun.OSS.Common.Internal
Assembly: Aliyun.OSS (in Aliyun.OSS.dll) Version: 2.5.1.0 (2.5.1)
Syntax
public class HashStream<T> : HashStream
where T : new(), IHashingWrapper

Type Parameters

T

[Missing <typeparam name="T"/> documentation for "T:Aliyun.OSS.Common.Internal.HashStream`1"]

The HashStreamT type exposes the following members.

Constructors
Methods
  NameDescription
Public methodBeginRead
Begins an asynchronous read operation.
(Inherited from Stream.)
Public methodBeginWrite
Begins an asynchronous write operation.
(Inherited from Stream.)
Public methodCalculateHash
Calculates the hash for the stream so far and disables any further hashing.
(Inherited from HashStream.)
Public methodClose
Closes the underlying stream and finishes calculating the hash. If an ExpectedHash is specified and is not equal to the calculated hash, this method will throw an ClientException.
(Inherited from HashStream.)
Public methodCreateObjRef
Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.
(Inherited from MarshalByRefObject.)
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) (Inherited from HashStream.)
Public methodEndRead
Waits for the pending asynchronous read to complete.
(Inherited from Stream.)
Public methodEndWrite
Ends an asynchronous write operation.
(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 attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection.
(Inherited from Object.)
Public methodFlush
Clears all buffers for this stream and causes any buffered data to be written to the underlying device.
(Inherited from WrapperStream.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetLifetimeService
Retrieves the current lifetime service object that controls the lifetime policy for this instance.
(Inherited from MarshalByRefObject.)
Public methodGetNonWrapperBaseStream
Returns the first base non-WrapperStream.
(Inherited from WrapperStream.)
Public methodGetSeekableBaseStream
Returns the first base non-WrapperStream.
(Inherited from WrapperStream.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInitializeLifetimeService
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.)
Public methodRead
Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
(Inherited from HashStream.)
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 methodReset
Resets the hash stream to starting state. Use this if the underlying stream has been modified and needs to be rehashed without reconstructing the hierarchy.
(Inherited from HashStream.)
Public methodSearchWrappedStream(OssFuncStream, Boolean) (Inherited from WrapperStream.)
Public methodSeek
Sets the position within the current stream. HashStream does not support seeking, attempting to call Seek will throw NotSupportedException.
(Inherited from HashStream.)
Public methodSetLength
Sets the length of the current stream.
(Inherited from WrapperStream.)
Public methodToString
Returns a String that represents the current Object.
(Inherited from Object.)
Public methodWrite
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 WrapperStream.)
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
Properties
  NameDescription
Protected propertyAlgorithm
Algorithm to use to calculate hash.
(Inherited from HashStream.)
Protected propertyBaseStream
Base stream.
(Inherited from WrapperStream.)
Public propertyCalculatedHash
Calculated hash for the stream. This value is set only after the stream is closed.
(Inherited from HashStream.)
Public propertyCanRead
Gets a value indicating whether the current stream supports reading. True if the stream supports reading; otherwise, false.
(Inherited from WrapperStream.)
Public propertyCanSeek
Gets a value indicating whether the current stream supports seeking. HashStream does not support seeking, this will always be false.
(Inherited from HashStream.)
Public propertyCanTimeout
Gets a value that determines whether the current stream can time out.
(Inherited from Stream.)
Public propertyCanWrite
Gets a value indicating whether the current stream supports writing. True if the stream supports writing; otherwise, false.
(Inherited from WrapperStream.)
Protected propertyCurrentPosition
Current position in the stream.
(Inherited from HashStream.)
Public propertyExpectedHash
Expected hash value. Compared against CalculatedHash upon Close(). If the hashes are different, an ClientException is thrown.
(Inherited from HashStream.)
Public propertyExpectedLength
Expected length of stream.
(Inherited from HashStream.)
Protected propertyFinishedHashing
True if hashing is finished and no more hashing should be done; otherwise false.
(Inherited from HashStream.)
Public propertyLength
Gets the overridden length used to construct the HashStream
(Inherited from HashStream.)
Public propertyPosition
Gets or sets the position within the current stream. HashStream does not support seeking, attempting to set Position will throw NotSupportedException.
(Inherited from HashStream.)
Public propertyReadTimeout
Gets or sets a value, in miliseconds, that determines how long the stream will attempt to read before timing out.
(Inherited from WrapperStream.)
Public propertyWriteTimeout
Gets or sets a value, in miliseconds, that determines how long the stream will attempt to write before timing out.
(Inherited from WrapperStream.)
Top
Exceptions
ExceptionCondition
ClientException Exception thrown during Close() or CalculateHash(), if ExpectedHash is set and is different from CalculateHash that the stream calculates, provided that CalculatedHash is not a zero-length byte array.
See Also