Table of Contents

Namespace Amazon.Runtime.Internal.Util

Classes

AESDecryptionStream

A wrapper stream that decrypts the base stream using AES algorithm as it is being read.

AESEncryptionPutObjectStream

A wrapper stream that encrypts the base stream using AES algorithm as it is being read.

AESEncryptionUploadPartStream

A wrapper stream that encrypts the base stream as it is being read.

CachingWrapperStream

A stream which caches the contents of the underlying stream as it reads it.

ChunkedUploadWrapperStream

Stream wrapper that double-buffers from a wrapped stream and returns the buffered content as a series of signed 'chunks' for the AWS4 ('Signature V4') protocol.

DecryptStream

A wrapper stream that decrypts the base stream as it is being read.

DecryptStream<T>

A wrapper stream that decrypts the base stream as it is being read.

DecryptionWrapper
DecryptionWrapperAES
EncryptStream

A wrapper stream that encrypts the base stream as it is being read.

EncryptStream<T>

A wrapper stream that encrypts the base stream as it is being read.

EncryptUploadPartStream

A wrapper stream that encrypts the base stream as it is being read.

EncryptUploadPartStream<T>

A wrapper stream that encrypts the base stream as it is being read.

EncryptionWrapper
EncryptionWrapperAES
EndianConversionUtility

PCL doesn't have IPAddress. These methods are copied from the Microsoft source code.

Extensions
GuidUtils

Utilities for dealing with Guids

HashStream

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 AmazonClientException. If CalculatedHash is calculated for only the portion of the stream that is read.

HashStream<T>

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 AmazonClientException. 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.

Hashing
HashingWrapper
HashingWrapperMD5
HostPrefixUtils

Utilities for validating label values for host prefix templates

IniFile

Provides read/write access to a file in the INI format.

This class is not threadsafe.

LogMessage

A single logged message

Logger

This is a dynamic wrapper around log4net so we can avoid log4net being required to be distributed with the SDK.

LruCache<TKey, TValue>

a size-limited cache of key value pairs

Once the maximum size has been reached, the least recently used pairs will be evicted to make room for any new items.

LruListItem<TKey, TValue>

Item to be stored in the LruList linked list structure.

LruList<TKey, TValue>

Helper class to support LruCache. Does not implement the error checking and synchronization that would be necessary for it to stand alone.

MD5Stream

A wrapper stream that calculates an MD5 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 AmazonClientException. 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.

MetricError
NonDisposingWrapperStream

A wrapper stream which supresses disposal of the underlying stream.

OptimisticLockedTextFile

Provides line-based read/write access to a file. The file can be read into memory, changed, then written back to disk. When the file is persisted back to disk, an optimistic concurrency check is performed to make sure the file hasn't changed since it was originally read.

This class is not threadsafe.

PartialReadOnlyWrapperStream

Partial wrapper stream that only supports reading

PartialWrapperStream

This class is used to wrap a stream for a particular segment of a stream. It makes that segment look like you are reading from beginning to end of the stream.

ProfileIniFile

Subclass of IniFile that allows INI sections to be read with the profile keyword in front of the section name.

ReadOnlyWrapperStream

Wrapper stream that only supports reading

RequestMetrics
S3Uri

Uri wrapper that can parse out information (bucket, key, region, style) from an S3 URI.

SdkCache

SDK-wide cache. Provides access to caches specific to a particular set of credentials and target region.

StringUtils

Utilities for converting objects to strings. Used by the marshaller classes.

Timing

Timing information for a metric

TimingEvent

Timing event, stops timing of a metric when disposed

WrapperStream

A wrapper stream.

Interfaces

ICache

Interface for a non-generic cache.

ICache<TKey, TValue>

Interface for a generic cache.

IDecryptionWrapper
IEncryptionWrapper
IHashingWrapper
ILogger