Click or drag to resize
HashStream Class
A wrapper stream that calculates a hash of the base stream as it is being read. 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 CalculatedHash is calculated for only the portion of the stream that is read.
Inheritance Hierarchy

Namespace: Aliyun.OSS.Common.Internal
Assembly: Aliyun.OSS (in Aliyun.OSS.dll) Version: 2.5.1.0 (2.5.1)
Syntax
public abstract class HashStream : WrapperStream

The HashStream type exposes the following members.

Constructors
  NameDescription
Protected methodHashStream(Stream, Int64)
Initializes an HashStream with a hash algorithm and a base stream.
Protected methodHashStream(Stream, Byte, Int64)
Initializes an HashStream with a hash algorithm and a base stream.
Top
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.
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.
(Overrides WrapperStreamClose.)
Protected methodStatic memberCompareHashes
Compares two hashes (arrays of bytes).
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)
Releases the unmanaged resources used by the HashStream and optionally releases the managed resources
(Overrides StreamDispose(Boolean).)
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.
(Overrides WrapperStreamRead(Byte, Int32, Int32).)
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.
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.
(Overrides WrapperStreamSeek(Int64, SeekOrigin).)
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.
Protected propertyBaseStream
Base stream.
(Inherited from WrapperStream.)
Public propertyCalculatedHash
Calculated hash for the stream. This value is set only after the stream is closed.
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.
(Overrides WrapperStreamCanSeek.)
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.
Public propertyExpectedHash
Expected hash value. Compared against CalculatedHash upon Close(). If the hashes are different, an ClientException is thrown.
Public propertyExpectedLength
Expected length of stream.
Protected propertyFinishedHashing
True if hashing is finished and no more hashing should be done; otherwise false.
Public propertyLength
Gets the overridden length used to construct the HashStream
(Overrides WrapperStreamLength.)
Public propertyPosition
Gets or sets the position within the current stream. HashStream does not support seeking, attempting to set Position will throw NotSupportedException.
(Overrides WrapperStreamPosition.)
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