|
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().