EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
crc32.h
Go to the documentation of this file.
1 /*
2  ------------------------------------------------------------------------------------
3  LICENSE:
4  ------------------------------------------------------------------------------------
5  This file is part of EVEmu: EVE Online Server Emulator
6  Copyright 2006 - 2021 The EVEmu Team
7  For the latest information visit https://evemu.dev
8  ------------------------------------------------------------------------------------
9  This program is free software; you can redistribute it and/or modify it under
10  the terms of the GNU Lesser General Public License as published by the Free Software
11  Foundation; either version 2 of the License, or (at your option) any later
12  version.
13 
14  This program is distributed in the hope that it will be useful, but WITHOUT
15  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
17 
18  You should have received a copy of the GNU Lesser General Public License along with
19  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
20  Place - Suite 330, Boston, MA 02111-1307, USA, or go to
21  http://www.gnu.org/copyleft/lesser.txt.
22  ------------------------------------------------------------------------------------
23  Author: Zhur
24 */
25 
26 #ifndef __UTILS__CRC32_H__INCL__
27 #define __UTILS__CRC32_H__INCL__
28 
30 extern const uint32 CRC32_LOOKUP_TABLE[ 0x100 ];
31 
37 class CRC32
38 {
39 public:
40  // one buffer CRC32
41  static uint32 Generate( const uint8* buf, size_t bufsize ) { return Finish( Update( buf, bufsize ) ); }
42  static uint32 GenerateNoFlip( const uint8* buf, size_t bufsize ) { return Update( buf, bufsize ); }
43 
44  // Multiple buffer CRC32
45  static uint32 Update( const uint8* buf, size_t bufsize, uint32 crc32 = 0xFFFFFFFF );
46  static uint32 Finish( uint32 crc32 ) { return ~crc32; }
47 };
48 
49 #endif /* !__UTILS__CRC32_H__INCL__ */
unsigned __int8 uint8
Definition: eve-compat.h:46
const uint32 CRC32_LOOKUP_TABLE[0x100]
Definition: crc32.cpp:30
static uint32 Update(const uint8 *buf, size_t bufsize, uint32 crc32=0xFFFFFFFF)
Definition: crc32.cpp:101
Wrapper class for generating CRC-32 checksums.
Definition: crc32.h:37
static uint32 Generate(const uint8 *buf, size_t bufsize)
Definition: crc32.h:41
static uint32 Finish(uint32 crc32)
Definition: crc32.h:46
unsigned __int32 uint32
Definition: eve-compat.h:50
static uint32 GenerateNoFlip(const uint8 *buf, size_t bufsize)
Definition: crc32.h:42