PageRenderTime 162ms CodeModel.GetById 80ms app.highlight 2ms RepoModel.GetById 78ms app.codeStats 0ms

/src/libtomahawk/thirdparty/quazip/quazip/quachecksum32.h

http://github.com/tomahawk-player/tomahawk
C++ Header | 54 lines | 13 code | 7 blank | 34 comment | 0 complexity | 8dc05519125e6d7b045484a364239b3c MD5 | raw file
 1#ifndef QUACHECKSUM32_H
 2#define QUACHECKSUM32_H
 3
 4#include <QByteArray>
 5#include "quazip_global.h"
 6
 7/// Checksum interface.
 8/** \class QuaChecksum32 quachecksum32.h <quazip/quachecksum32.h>
 9 * This is an interface for 32 bit checksums.
10 * Classes implementing this interface can calcunate a certin
11 * checksum in a single step:
12 * \code
13 * QChecksum32 *crc32 = new QuaCrc32(); 
14 * rasoult = crc32->calculate(data);
15 * \endcode
16 * or by streaming the data:
17 * \code
18 * QChecksum32 *crc32 = new QuaCrc32(); 
19 * while(!fileA.atEnd())
20 *     crc32->update(fileA.read(bufSize));
21 * resoultA = crc32->value();
22 * crc32->reset();
23 * while(!fileB.atEnd())
24 *     crc32->update(fileB.read(bufSize));
25 * resoultB = crc32->value();
26 * \endcode
27 */
28class QUAZIP_EXPORT QuaChecksum32
29{
30
31public:
32	///Calculates the checksum for data.
33	/** \a data source data
34	 * \return data checksum
35	 *
36	 * This function has no efect on the value returned by value().
37	 */
38	virtual quint32 calculate(const QByteArray &data) = 0;
39
40	///Resets the calculation on a checksun for a stream.
41	virtual void reset() = 0;
42
43	///Updates the calculated checksum for the stream
44	/** \a buf next portion of data from the stream
45	 */
46	virtual void update(const QByteArray &buf) = 0;
47
48	///Value of the checksum calculated for the stream passed throw update().
49	/** \return checksum
50	 */
51	virtual quint32 value() = 0;
52};
53
54#endif //QUACHECKSUM32_H