CUBRID Engine
latest
|
Static class for computing CRCs. More...
#include <CRC.h>
Classes | |
struct | Parameters |
CRC parameters. More... | |
struct | Table |
CRC lookup table. After construction, the CRC parameters are fixed. More... | |
Static Public Member Functions | |
template<typename CRCType , crcpp_uint16 CRCWidth> | |
static CRCType | Calculate (const void *data, crcpp_size size, const Parameters< CRCType, CRCWidth > ¶meters) |
Computes a CRC. More... | |
template<typename CRCType , crcpp_uint16 CRCWidth> | |
static CRCType | Calculate (const void *data, crcpp_size size, const Parameters< CRCType, CRCWidth > ¶meters, CRCType crc) |
Appends additional data to a previous CRC calculation. More... | |
template<typename CRCType , crcpp_uint16 CRCWidth> | |
static CRCType | Calculate (const void *data, crcpp_size size, const Table< CRCType, CRCWidth > &lookupTable) |
Computes a CRC via a lookup table. More... | |
template<typename CRCType , crcpp_uint16 CRCWidth> | |
static CRCType | Calculate (const void *data, crcpp_size size, const Table< CRCType, CRCWidth > &lookupTable, CRCType crc) |
Appends additional data to a previous CRC calculation using a lookup table. More... | |
static const Parameters< crcpp_uint8, 8 > & | CRC_8 () |
Returns a set of parameters for CRC-8 SMBus. More... | |
static const Parameters< crcpp_uint16, 16 > & | CRC_16_ARC () |
Returns a set of parameters for CRC-16 ARC (aka CRC-16 IBM, CRC-16 LHA). More... | |
static const Parameters< crcpp_uint16, 16 > & | CRC_16_BUYPASS () |
Returns a set of parameters for CRC-16 BUYPASS (aka CRC-16 VERIFONE, CRC-16 UMTS). More... | |
static const Parameters< crcpp_uint16, 16 > & | CRC_16_CCITTFALSE () |
Returns a set of parameters for CRC-16 CCITT FALSE. More... | |
static const Parameters< crcpp_uint16, 16 > & | CRC_16_GENIBUS () |
Returns a set of parameters for CRC-16 GENIBUS (aka CRC-16 EPC, CRC-16 I-CODE, CRC-16 DARC). More... | |
static const Parameters< crcpp_uint16, 16 > & | CRC_16_KERMIT () |
Returns a set of parameters for CRC-16 KERMIT (aka CRC-16 CCITT, CRC-16 CCITT-TRUE). More... | |
static const Parameters< crcpp_uint16, 16 > & | CRC_16_X25 () |
Returns a set of parameters for CRC-16 X-25 (aka CRC-16 IBM-SDLC, CRC-16 ISO-HDLC, CRC-16 B). More... | |
static const Parameters< crcpp_uint16, 16 > & | CRC_16_XMODEM () |
Returns a set of parameters for CRC-16 XMODEM (aka CRC-16 ZMODEM, CRC-16 ACORN, CRC-16 LTE). More... | |
static const Parameters< crcpp_uint32, 32 > & | CRC_32 () |
Returns a set of parameters for CRC-32 (aka CRC-32 ADCCP, CRC-32 PKZip). More... | |
static const Parameters< crcpp_uint32, 32 > & | CRC_32_BZIP2 () |
Returns a set of parameters for CRC-32 BZIP2 (aka CRC-32 AAL5, CRC-32 DECT-B, CRC-32 B-CRC). More... | |
static const Parameters< crcpp_uint32, 32 > & | CRC_32_MPEG2 () |
Returns a set of parameters for CRC-32 MPEG-2. More... | |
static const Parameters< crcpp_uint32, 32 > & | CRC_32_POSIX () |
Returns a set of parameters for CRC-32 POSIX. More... | |
Private Member Functions | |
CRC () | |
CRC (const CRC &other) | |
CRC & | operator= (const CRC &other) |
Static Private Member Functions | |
template<typename IntegerType > | |
static IntegerType | Reflect (IntegerType value, crcpp_uint16 numBits) |
Reflects (i.e. reverses the bits within) an integer value. More... | |
template<typename CRCType , crcpp_uint16 CRCWidth> | |
static CRCType | Finalize (CRCType remainder, CRCType finalXOR, bool reflectOutput) |
Computes the final reflection and XOR of a CRC remainder. More... | |
template<typename CRCType , crcpp_uint16 CRCWidth> | |
static CRCType | UndoFinalize (CRCType remainder, CRCType finalXOR, bool reflectOutput) |
Undoes the process of computing the final reflection and XOR of a CRC remainder. More... | |
template<typename CRCType , crcpp_uint16 CRCWidth> | |
static CRCType | CalculateRemainder (const void *data, crcpp_size size, const Parameters< CRCType, CRCWidth > ¶meters, CRCType remainder) |
Computes a CRC remainder. More... | |
template<typename CRCType , crcpp_uint16 CRCWidth> | |
static CRCType | CalculateRemainder (const void *data, crcpp_size size, const Table< CRCType, CRCWidth > &lookupTable, CRCType remainder) |
Computes a CRC remainder using lookup table. More... | |
Static class for computing CRCs.
|
private |
|
inlinestatic |
Computes a CRC.
[in] | data | Data over which CRC will be computed |
[in] | size | Size of the data |
[in] | parameters | CRC parameters |
CRCType | Integer type for storing the CRC result |
CRCWidth | Number of bits in the CRC |
Definition at line 436 of file CRC.h.
References CalculateRemainder(), CRC::Parameters< CRCType, CRCWidth >::finalXOR, CRC::Parameters< CRCType, CRCWidth >::initialValue, CRC::Parameters< CRCType, CRCWidth >::reflectInput, and CRC::Parameters< CRCType, CRCWidth >::reflectOutput.
Referenced by crypt_crc32().
|
inlinestatic |
Appends additional data to a previous CRC calculation.
[in] | data | Data over which CRC will be computed |
[in] | size | Size of the data |
[in] | parameters | CRC parameters |
[in] | crc | CRC from a previous calculation |
CRCType | Integer type for storing the CRC result |
CRCWidth | Number of bits in the CRC |
Definition at line 456 of file CRC.h.
References CalculateRemainder(), CRC::Parameters< CRCType, CRCWidth >::finalXOR, CRC::Parameters< CRCType, CRCWidth >::reflectInput, and CRC::Parameters< CRCType, CRCWidth >::reflectOutput.
|
inlinestatic |
Computes a CRC via a lookup table.
[in] | data | Data over which CRC will be computed |
[in] | size | Size of the data |
[in] | lookupTable | CRC lookup table |
CRCType | Integer type for storing the CRC result |
CRCWidth | Number of bits in the CRC |
Definition at line 477 of file CRC.h.
References CalculateRemainder(), CRC::Parameters< CRCType, CRCWidth >::finalXOR, CRC::Table< CRCType, CRCWidth >::GetParameters(), CRC::Parameters< CRCType, CRCWidth >::initialValue, CRC::Table< CRCType, CRCWidth >::parameters, CRC::Parameters< CRCType, CRCWidth >::reflectInput, and CRC::Parameters< CRCType, CRCWidth >::reflectOutput.
|
inlinestatic |
Appends additional data to a previous CRC calculation using a lookup table.
[in] | data | Data over which CRC will be computed |
[in] | size | Size of the data |
[in] | lookupTable | CRC lookup table |
[in] | crc | CRC from a previous calculation |
CRCType | Integer type for storing the CRC result |
CRCWidth | Number of bits in the CRC |
Definition at line 500 of file CRC.h.
References CalculateRemainder(), CRC::Parameters< CRCType, CRCWidth >::finalXOR, CRC::Table< CRCType, CRCWidth >::GetParameters(), CRC::Table< CRCType, CRCWidth >::parameters, CRC::Parameters< CRCType, CRCWidth >::reflectInput, and CRC::Parameters< CRCType, CRCWidth >::reflectOutput.
|
inlinestaticprivate |
Computes a CRC remainder.
[in] | data | Data over which the remainder will be computed |
[in] | size | Size of the data |
[in] | parameters | CRC parameters |
[in] | remainder | Running CRC remainder. Can be an initial value or the result of a previous CRC remainder calculation. |
CRCType | Integer type for storing the CRC result |
CRCWidth | Number of bits in the CRC |
Definition at line 603 of file CRC.h.
References crcpp_constexpr, crcpp_size, i, CRC::Parameters< CRCType, CRCWidth >::polynomial, Reflect(), and CRC::Parameters< CRCType, CRCWidth >::reflectInput.
Referenced by Calculate().
|
inlinestaticprivate |
Computes a CRC remainder using lookup table.
[in] | data | Data over which the remainder will be computed |
[in] | size | Size of the data |
[in] | lookupTable | CRC lookup table |
[in] | remainder | Running CRC remainder. Can be an initial value or the result of a previous CRC remainder calculation. |
CRCType | Integer type for storing the CRC result |
CRCWidth | Number of bits in the CRC |
Definition at line 720 of file CRC.h.
References crcpp_constexpr, CRC::Table< CRCType, CRCWidth >::GetParameters(), and CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestatic |
Returns a set of parameters for CRC-16 ARC (aka CRC-16 IBM, CRC-16 LHA).
Definition at line 1164 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestatic |
Returns a set of parameters for CRC-16 BUYPASS (aka CRC-16 VERIFONE, CRC-16 UMTS).
Definition at line 1182 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestatic |
Returns a set of parameters for CRC-16 CCITT FALSE.
Definition at line 1200 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestatic |
Returns a set of parameters for CRC-16 GENIBUS (aka CRC-16 EPC, CRC-16 I-CODE, CRC-16 DARC).
Definition at line 1310 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestatic |
Returns a set of parameters for CRC-16 KERMIT (aka CRC-16 CCITT, CRC-16 CCITT-TRUE).
Definition at line 1328 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestatic |
Returns a set of parameters for CRC-16 X-25 (aka CRC-16 IBM-SDLC, CRC-16 ISO-HDLC, CRC-16 B).
Definition at line 1421 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestatic |
Returns a set of parameters for CRC-16 XMODEM (aka CRC-16 ZMODEM, CRC-16 ACORN, CRC-16 LTE).
Definition at line 1439 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestatic |
Returns a set of parameters for CRC-32 (aka CRC-32 ADCCP, CRC-32 PKZip).
Definition at line 1567 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
Referenced by crypt_crc32().
|
inlinestatic |
Returns a set of parameters for CRC-32 BZIP2 (aka CRC-32 AAL5, CRC-32 DECT-B, CRC-32 B-CRC).
Definition at line 1585 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestatic |
Returns a set of parameters for CRC-32 MPEG-2.
Definition at line 1623 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestatic |
Returns a set of parameters for CRC-32 POSIX.
Definition at line 1641 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestatic |
Returns a set of parameters for CRC-8 SMBus.
Definition at line 928 of file CRC.h.
References CRC::Table< CRCType, CRCWidth >::parameters.
|
inlinestaticprivate |
Computes the final reflection and XOR of a CRC remainder.
[in] | remainder | CRC remainder to reflect and XOR |
[in] | finalXOR | Final value to XOR with the remainder |
[in] | reflectOutput | true to reflect each byte of the remainder before the XOR |
CRCType | Integer type for storing the CRC result |
CRCWidth | Number of bits in the CRC |
Definition at line 544 of file CRC.h.
References crcpp_constexpr, and Reflect().
|
inlinestaticprivate |
Reflects (i.e. reverses the bits within) an integer value.
[in] | value | Value to reflect |
[in] | numBits | Number of bits in the integer which will be reflected |
IntegerType | Integer type of the value being reflected |
Definition at line 521 of file CRC.h.
References crcpp_uint16, and i.
Referenced by CalculateRemainder(), Finalize(), and UndoFinalize().
|
inlinestaticprivate |
Undoes the process of computing the final reflection and XOR of a CRC remainder.
CRCType x = ...; CRCType y = Finalize(x, finalXOR, reflectOutput); CRCType z = UndoFinalize(y, finalXOR, reflectOutput); assert(x == z);
[in] | crc | Reflected and XORed CRC |
[in] | finalXOR | Final value XORed with the remainder |
[in] | reflectOutput | true if the remainder is to be reflected |
CRCType | Integer type for storing the CRC result |
CRCWidth | Number of bits in the CRC |
Definition at line 576 of file CRC.h.
References crcpp_constexpr, and Reflect().