| Revision: | 1.1 |
| Committed: | Thu Feb 15 18:09:34 2007 UTC (19 years, 8 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). |
| # | User | Rev | Content |
|---|---|---|---|
| 1 | root | 1.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 |