Quick Links:

bal | bbl | bdl | bsl

Public Types | Public Member Functions | Static Public Member Functions | Friends

bdlde::Md5 Class Reference

#include <bdlde_md5.h>

List of all members.

Public Types

typedef bsls::AlignedBuffer< 16 > Md5Digest

Public Member Functions

 Md5 ()
 Md5 (const void *data, int length)
 Md5 (const Md5 &original)
 ~Md5 ()
template<class STREAM >
STREAM & bdexStreamIn (STREAM &stream, int version)
void reset ()
void update (const void *data, int length)
void loadDigestAndReset (Md5Digest *result)
template<class STREAM >
STREAM & bdexStreamOut (STREAM &stream, int version) const
bsl::ostream & print (bsl::ostream &stream) const
void loadDigest (Md5Digest *result) const

Static Public Member Functions

static int maxSupportedBdexVersion (int)
static int maxSupportedBdexVersion ()

Friends

bool operator== (const Md5 &, const Md5 &)

Detailed Description

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

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.

See Component bdlde_md5


Member Typedef Documentation


Constructor & Destructor Documentation

bdlde::Md5::Md5 (  ) 

Construct an MD5 digest having the value corresponding to no data having been provided.

bdlde::Md5::Md5 ( const void *  data,
int  length 
)

Construct an MD5 digest corresponding to the specified data having the specified length (in bytes). The behavior is undefined unless 0 <= length. Note that if data is 0, then length also must be 0.

bdlde::Md5::Md5 ( const Md5 original  ) 

Construct an MD5 digest having the value of the specified original digest.

bdlde::Md5::~Md5 (  ) 

Destroy this MD5 digest. Assign to this MD5 digest the value of the specified rhs MD5 digest and return a reference to this modifiable MD5 digest. Note that this method's definition is compiler generated.


Member Function Documentation

static int bdlde::Md5::maxSupportedBdexVersion ( int   )  [static]

Return the maximum valid BDEX format version, as indicated by the specified versionSelector, to be passed to the bdexStreamOut method. Note that the versionSelector is expected to be formatted as yyyymmdd, a date representation. See the bslx package-level documentation for more information on BDEX streaming of value-semantic types and containers.

template<class STREAM >
STREAM& bdlde::Md5::bdexStreamIn ( STREAM &  stream,
int  version 
)

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

void bdlde::Md5::reset (  ) 

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

void bdlde::Md5::update ( const void *  data,
int  length 
)

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.

void bdlde::Md5::loadDigestAndReset ( Md5Digest result  ) 

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.

template<class STREAM >
STREAM& bdlde::Md5::bdexStreamOut ( STREAM &  stream,
int  version 
) const

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

bsl::ostream& bdlde::Md5::print ( bsl::ostream &  stream  )  const

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

void bdlde::Md5::loadDigest ( Md5Digest result  )  const

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

static int bdlde::Md5::maxSupportedBdexVersion (  )  [static]

Return the most current bdex streaming version number supported by this class. (See the package-group-level documentation for more information on bdex streaming of container types.)


Friends And Related Function Documentation

bool operator== ( const Md5 ,
const Md5  
) [friend]

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.


The documentation for this class was generated from the following file: