This class represents an MD5 digest that can be updated as additional data is provided.

Synopsis

Declared in <bdlde_md5.h>

class Md5;

Description

More generally, this class supports a complete set of value semantic operations, including copy construction, assignment, equality comparison, ostream printing, and bdex serialization. (A precise operational definition of when two instances have the same value can be found in the description of operator== for the class.) This container is exception neutral with no guarantee of rollback: if an exception is thrown during the invocation of a method on a pre‐existing instance, the class is left in a valid state, but its value is undefined. In no event is memory leaked. Finally, aliasing (e.g., using all or part of an object as both source and destination) is supported in all cases.

Type Aliases

Name

Description

Md5Digest

A maximally‐aligned, 16‐byte object type used to represent an MD5 digest.

Member Functions

Name

Description

Md5 [constructor]

Constructors

~Md5 [destructor]

Destroy this MD5 digest.

operator=

Assign to this MD5 digest the value of the specified rhs MD5 digest and return a reference to this modifiable MD5 digest.

bdexStreamIn

Assign to this object the value read from the specified input stream using the specified version format and return a reference to the modifiable stream. If stream is initially invalid, this operation has no effect. If stream becomes invalid during this operation, this object is valid, but its value is undefined. If the specified version is not supported, stream is marked invalid, but this object is unaltered. Note that no version is read from stream. (See the package‐group‐level documentation for more information on bdex streaming of container types.)

bdexStreamOut

Write this value to the specified output stream and return a reference to the modifiable stream. Optionally specify an explicit version format; by default, the maximum supported version is written to stream and used as the format. If version is specified, that format is used, but not written to stream. If version is not supported, stream is left unmodified. (See the package‐group‐level documentation for more information on bdex streaming of container types).

loadDigest

Load the current value of this MD5 digest into the specified result.

loadDigestAndReset

Load the current value of this MD5 digest into the specified result and set the value of this MD5 digest to the value provided by the default constructor.

print

Format the current value of this MD5 digest to the specified output stream and return a reference to the modifiable stream.

reset

Reset the value of this MD5 digest to the value provided by the default constructor.

update

Update the value of this MD5 digest to incorporate the specified data having the specified length in bytes. If the current state is the default state, the resultant value of this MD5 digest is the application of the MD5 algorithm upon the currently given data of the given length. If this digest has been previously provided data and has not been subsequently reset, the current state is not the default state and the resultant value is equivalent to applying the MD5 algorithm upon the concatenation of all the provided data. The behavior is undefined unless 0 <= length. Note that if data is 0, then length also must be 0.

Static Member Functions

Name

Description

maxSupportedBdexVersion

maxSupportedBdexVersion overloads

Friends

Name

Description

BloombergLP::bdlde::operator==

Return true if the specified lhs and rhs MD5 digests have the same value, and false otherwise. Two digests have the same value if the values obtained from their respective loadDigest methods are identical.

Non-Member Functions

Name

Description

operator!=

Return true if the specified lhs and rhs MD5 digests do not have the same value, and false otherwise. Two digests do not have the same value if the values obtained from their respective loadDigest methods differ.

Created with MrDocs