Mercurial > vba-linux
annotate 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 |
rev | line source |
---|---|
rlm@1 | 1 // BZip2Crc.h |
rlm@1 | 2 |
rlm@1 | 3 #ifndef __BZIP2_CRC_H |
rlm@1 | 4 #define __BZIP2_CRC_H |
rlm@1 | 5 |
rlm@1 | 6 #include "Common/Types.h" |
rlm@1 | 7 |
rlm@1 | 8 class CBZip2Crc |
rlm@1 | 9 { |
rlm@1 | 10 UInt32 _value; |
rlm@1 | 11 static UInt32 Table[256]; |
rlm@1 | 12 public: |
rlm@1 | 13 static void InitTable(); |
rlm@1 | 14 CBZip2Crc(): _value(0xFFFFFFFF) {}; |
rlm@1 | 15 void Init() { _value = 0xFFFFFFFF; } |
rlm@1 | 16 void UpdateByte(Byte b) { _value = Table[(_value >> 24) ^ b] ^ (_value << 8); } |
rlm@1 | 17 void UpdateByte(unsigned int b) { _value = Table[(_value >> 24) ^ b] ^ (_value << 8); } |
rlm@1 | 18 UInt32 GetDigest() const { return _value ^ 0xFFFFFFFF; } |
rlm@1 | 19 }; |
rlm@1 | 20 |
rlm@1 | 21 class CBZip2CombinedCrc |
rlm@1 | 22 { |
rlm@1 | 23 UInt32 _value; |
rlm@1 | 24 public: |
rlm@1 | 25 CBZip2CombinedCrc(): _value(0){}; |
rlm@1 | 26 void Init() { _value = 0; } |
rlm@1 | 27 void Update(UInt32 v) { _value = ((_value << 1) | (_value >> 31)) ^ v; } |
rlm@1 | 28 UInt32 GetDigest() const { return _value ; } |
rlm@1 | 29 }; |
rlm@1 | 30 |
rlm@1 | 31 #endif |