view src/win32/7zip/7z/CPP/7zip/Compress/BZip2Crc.h @ 1:f9f4f1b99eed

importing src directory
author Robert McIntyre <rlm@mit.edu>
date Sat, 03 Mar 2012 10:31:27 -0600
parents
children
line wrap: on
line source
1 // BZip2Crc.h
3 #ifndef __BZIP2_CRC_H
4 #define __BZIP2_CRC_H
6 #include "Common/Types.h"
8 class CBZip2Crc
9 {
10 UInt32 _value;
11 static UInt32 Table[256];
12 public:
13 static void InitTable();
14 CBZip2Crc(): _value(0xFFFFFFFF) {};
15 void Init() { _value = 0xFFFFFFFF; }
16 void UpdateByte(Byte b) { _value = Table[(_value >> 24) ^ b] ^ (_value << 8); }
17 void UpdateByte(unsigned int b) { _value = Table[(_value >> 24) ^ b] ^ (_value << 8); }
18 UInt32 GetDigest() const { return _value ^ 0xFFFFFFFF; }
19 };
21 class CBZip2CombinedCrc
22 {
23 UInt32 _value;
24 public:
25 CBZip2CombinedCrc(): _value(0){};
26 void Init() { _value = 0; }
27 void Update(UInt32 v) { _value = ((_value << 1) | (_value >> 31)) ^ v; }
28 UInt32 GetDigest() const { return _value ; }
29 };
31 #endif