Annotation of elwix/tools/oldlzma/SRC/Common/CRC.h, revision 1.1.1.1
1.1 misho 1: // Common/CRC.h
2:
3: #ifndef __COMMON_CRC_H
4: #define __COMMON_CRC_H
5:
6: #include "Types.h"
7:
8: class CCRC
9: {
10: UInt32 _value;
11: public:
12: static UInt32 Table[256];
13: static void InitTable();
14:
15: CCRC(): _value(0xFFFFFFFF){};
16: void Init() { _value = 0xFFFFFFFF; }
17: void UpdateByte(Byte v);
18: void UpdateUInt16(UInt16 v);
19: void UpdateUInt32(UInt32 v);
20: void UpdateUInt64(UInt64 v);
21: void Update(const void *data, UInt32 size);
22: UInt32 GetDigest() const { return _value ^ 0xFFFFFFFF; }
23: static UInt32 CalculateDigest(const void *data, UInt32 size)
24: {
25: CCRC crc;
26: crc.Update(data, size);
27: return crc.GetDigest();
28: }
29: static bool VerifyDigest(UInt32 digest, const void *data, UInt32 size)
30: {
31: return (CalculateDigest(data, size) == digest);
32: }
33: };
34:
35: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>