BDE 4.14.0 Production release
|
#include <bdlde_crc64.h>
Public Member Functions | |
Crc64 () | |
Crc64 (const void *data, bsl::size_t length) | |
Crc64 (const Crc64 &original) | |
~Crc64 ()=default | |
Crc64 & | operator= (const Crc64 &rhs) |
template<class STREAM > | |
STREAM & | bdexStreamIn (STREAM &stream, int version) |
bsls::Types::Uint64 | checksumAndReset () |
void | reset () |
void | update (const void *data, bsl::size_t length) |
template<class STREAM > | |
STREAM & | bdexStreamOut (STREAM &stream, int version) const |
bsls::Types::Uint64 | checksum () const |
Return the current value of this checksum. | |
bsl::ostream & | print (bsl::ostream &stream) const |
Static Public Member Functions | |
static int | maxSupportedBdexVersion (int versionSelector) |
Friends | |
bool | operator== (const Crc64 &, const Crc64 &) |
This class represents a CRC-64 checksum value that can be updated as 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 objects have the same value can be found in the description of operator==
for the class.) This class is exception neutral with no guarantee of rollback: if an exception is thrown during the invocation of a method on a pre-existing object, 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 bdlde_crc64
|
inline |
Construct a checksum having the value corresponding to no data having been provided (i.e., having the value 0).
|
inline |
Construct a checksum corresponding to the specified data
having the specified length
(in bytes). Note that if data
is 0, then length
also must be 0.
|
inline |
Construct a checksum having the value of the specified original
checksum.
|
default |
Destroy this checksum. Note that this trivial destructor is generated by the compiler.
STREAM & bdlde::Crc64::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 stream
. If stream
is initially invalid, this operation has no effect. If version
is not supported, this object is unaltered and stream
is invalidated but otherwise unmodified. If version
is supported but stream
becomes invalid during this operation, this object has an undefined, but valid, state. Note that no version is read from stream
. See the bslx
package-level documentation for more information on BDEX streaming of value-semantic types and containers.
STREAM & bdlde::Crc64::bdexStreamOut | ( | STREAM & | stream, |
int | version | ||
) | const |
Write this value to the specified output stream
using the specified version
format, and return a reference to stream
. If stream
is initially invalid, this operation has no effect. If version
is not supported, stream
is invalidated but otherwise unmodified. Note that version
is not written to stream
. See the bslx
package-level documentation for more information on BDEX streaming of value-semantic types and containers.
|
inline |
|
inline |
Return the current value of this checksum and set the value of this checksum to the value the default constructor provides.
|
inlinestatic |
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.
Assign to this checksum the value of the specified rhs
checksum, and return a reference to this modifiable checksum.
bsl::ostream & bdlde::Crc64::print | ( | bsl::ostream & | stream | ) | const |
Format this object to the specified output stream
at the (absolute value of) the optionally specified indentation level
and return a reference to stream
. If level
is specified, optionally specify spacesPerLevel
, the number of spaces per indentation level for this and all of its nested objects. If level
is negative, suppress indentation of the first line. If spacesPerLevel
is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level
). If stream
is not valid on entry, this operation has no effect.
|
inline |
Reset the value of this checksum to the value the default constructor provides.
void bdlde::Crc64::update | ( | const void * | data, |
bsl::size_t | length | ||
) |
Update the value of this checksum to incorporate the specified data
having the specified length
. If the current state is the default state, the resultant value of this checksum is the application of the CRC-64 algorithm upon the currently given data
of the given length
. If this checksum 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 CRC-64 algorithm upon the concatenation of all the provided data. Note that if data
is 0, then length
also must be 0.
Return true
if the specified lhs
and rhs
checksums have the same value, and false
otherwise. Two checksums have the same value if the values obtained from their checksum
methods are identical.