diff options
author | Andrew <forkk@forkk.net> | 2013-01-25 12:35:14 -0600 |
---|---|---|
committer | Andrew <forkk@forkk.net> | 2013-01-25 12:35:14 -0600 |
commit | f5ee069ea989a07915eb20c62ec4e812dfa9e701 (patch) | |
tree | 7d2895bf49925aa6ef7cc91caf9a01de694b2eee /quazip/quachecksum32.h | |
parent | 3b422b54aa13be4eb59c80b1f7bb2a514aac583f (diff) | |
parent | 00893b3cfc68f12c09e84643d255044a488b0eb6 (diff) | |
download | MultiMC-f5ee069ea989a07915eb20c62ec4e812dfa9e701.tar MultiMC-f5ee069ea989a07915eb20c62ec4e812dfa9e701.tar.gz MultiMC-f5ee069ea989a07915eb20c62ec4e812dfa9e701.tar.lz MultiMC-f5ee069ea989a07915eb20c62ec4e812dfa9e701.tar.xz MultiMC-f5ee069ea989a07915eb20c62ec4e812dfa9e701.zip |
Merge branch 'master' of git://github.com/peterix/MultiMC5
Diffstat (limited to 'quazip/quachecksum32.h')
-rw-r--r-- | quazip/quachecksum32.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/quazip/quachecksum32.h b/quazip/quachecksum32.h new file mode 100644 index 00000000..773ec2a4 --- /dev/null +++ b/quazip/quachecksum32.h @@ -0,0 +1,54 @@ +#ifndef QUACHECKSUM32_H +#define QUACHECKSUM32_H + +#include <QtCore/QByteArray> +#include "quazip_global.h" + +/// Checksum interface. +/** \class QuaChecksum32 quachecksum32.h <quazip/quachecksum32.h> + * This is an interface for 32 bit checksums. + * Classes implementing this interface can calcunate a certin + * checksum in a single step: + * \code + * QChecksum32 *crc32 = new QuaCrc32(); + * rasoult = crc32->calculate(data); + * \endcode + * or by streaming the data: + * \code + * QChecksum32 *crc32 = new QuaCrc32(); + * while(!fileA.atEnd()) + * crc32->update(fileA.read(bufSize)); + * resoultA = crc32->value(); + * crc32->reset(); + * while(!fileB.atEnd()) + * crc32->update(fileB.read(bufSize)); + * resoultB = crc32->value(); + * \endcode + */ +class QUAZIP_EXPORT QuaChecksum32 +{ + +public: + ///Calculates the checksum for data. + /** \a data source data + * \return data checksum + * + * This function has no efect on the value returned by value(). + */ + virtual quint32 calculate(const QByteArray &data) = 0; + + ///Resets the calculation on a checksun for a stream. + virtual void reset() = 0; + + ///Updates the calculated checksum for the stream + /** \a buf next portion of data from the stream + */ + virtual void update(const QByteArray &buf) = 0; + + ///Value of the checksum calculated for the stream passed throw update(). + /** \return checksum + */ + virtual quint32 value() = 0; +}; + +#endif //QUACHECKSUM32_H |