ARC SDK
|
Interface for checksum manipulations. More...
#include <arc/CheckSum.h>
Public Member Functions | |
CheckSum (void) | |
Default constructor. More... | |
virtual void | start (void)=0 |
Initiate the checksum algorithm. More... | |
virtual void | add (void *buf, unsigned long long int len)=0 |
Add data to be checksummed. More... | |
virtual void | end (void)=0 |
Finalize the checksumming. More... | |
virtual void | result (unsigned char *&res, unsigned int &len) const =0 |
Retrieve result of checksum as binary blob. More... | |
virtual int | print (char *buf, int len) const |
Retrieve result of checksum into a string. More... | |
virtual void | scan (const char *buf)=0 |
Set internal checksum state. More... | |
virtual | operator bool (void) const |
Indicates whether the checksum has been calculated. More... | |
virtual bool | operator! (void) const |
Indicates whether the checksum has not been calculated. More... | |
Interface for checksum manipulations.
This class is an interface and is extended in the specialized classes CRC32Sum, MD5Sum and Adler32Sum. The interface is among others used during data transfers through DataBuffer class. The helper class CheckSumAny can be used as an easier way of handling automatically the different checksum types.
|
inline |
Default constructor.
|
pure virtual |
Add data to be checksummed.
This method calculates the checksum of the passed data chunk, taking into account the previous state of this object.
buf | pointer to data chuck to be checksummed. |
len | size of the data chuck. |
Implemented in Arc::CheckSumAny, Arc::Adler32Sum, Arc::MD5Sum, and Arc::CRC32Sum.
|
pure virtual |
Finalize the checksumming.
This method finalizes the checksum algorithm, that is calculating the final checksum result.
Implemented in Arc::CheckSumAny, Arc::Adler32Sum, Arc::MD5Sum, and Arc::CRC32Sum.
|
inlinevirtual |
Indicates whether the checksum has been calculated.
Reimplemented in Arc::CheckSumAny, Arc::Adler32Sum, Arc::MD5Sum, and Arc::CRC32Sum.
|
inlinevirtual |
Indicates whether the checksum has not been calculated.
Reimplemented in Arc::CheckSumAny, Arc::Adler32Sum, Arc::MD5Sum, and Arc::CRC32Sum.
|
inlinevirtual |
Retrieve result of checksum into a string.
The passed string buf is filled with result of checksum algorithm in base 16. At most len characters are filled into buffer buf. The hexadecimal value is prepended with "algorithm:", where algorithm is one of "cksum", "md5" or "adler32" respectively corresponding to the result from the CRC32Sum, MD5Sum and Adler32 classes.
buf | pointer to buffer which should be filled with checksum result. |
len | max number of character filled into buffer. |
Reimplemented in Arc::CheckSumAny, Arc::Adler32Sum, Arc::MD5Sum, and Arc::CRC32Sum.
|
pure virtual |
Retrieve result of checksum as binary blob.
Implemented in Arc::CheckSumAny, Arc::Adler32Sum, Arc::MD5Sum, and Arc::CRC32Sum.
|
pure virtual |
Set internal checksum state.
This method sets the internal state to that of the passed textual representation. The format passed to this method must be the same as retrieved from the CheckSum::print method.
buf | string containing textual representation of checksum |
Implemented in Arc::CheckSumAny, Arc::Adler32Sum, Arc::MD5Sum, and Arc::CRC32Sum.
|
pure virtual |
Initiate the checksum algorithm.
This method must be called before starting a new checksum calculation.
Implemented in Arc::CheckSumAny, Arc::Adler32Sum, Arc::MD5Sum, and Arc::CRC32Sum.