Revision: | 1.1 |
Committed: | Thu Feb 15 18:09:34 2007 UTC (17 years, 5 months ago) by root |
Content type: | text/plain |
Branch: | MAIN |
CVS Tags: | rel-2_0, rel-2_1 |
Log Message: | - the damn rotate shift checksum just failed on me - add crc32 and use it for bmaps_checksum (probably also for images). |
# | Content |
---|---|
1 | #ifndef CRC_H__ |
2 | #define CRC_H__ |
3 | |
4 | #include "traits.h" |
5 | |
6 | struct crc32 |
7 | { |
8 | uint32_t crc; |
9 | |
10 | crc32 () |
11 | { |
12 | crc = ~uint32_t (0); |
13 | } |
14 | |
15 | void |
16 | operator ()(const uint8_t byte) |
17 | { |
18 | extern const uint32_t crc_32_tab[256]; |
19 | crc = crc_32_tab[uint8_t (crc) ^ byte] ^ (crc >> 8); |
20 | } |
21 | |
22 | operator uint32_t () { return crc; } |
23 | }; |
24 | |
25 | #endif |