pabigot  0.1.1
C++ support classes
Data Structures | Namespaces | Typedefs | Functions
crc.hpp File Reference

Templates supporting CRC calculation using Rocksoft^tm Model parameters. More...

#include <array>
#include <cstdint>
#include <limits>
#include <tuple>
#include <type_traits>
#include <utility>
#include <pabigot/byteorder.hpp>

Go to the source code of this file.

Data Structures

struct  pabigot::crc::details::uint_size_traits< C >
 Entry-point to identifying unsigned integral types supporting a specific number of bits. More...
 
struct  pabigot::crc::details::uint_size_traits< 4 >
 
struct  pabigot::crc::details::uint_size_traits< 3 >
 
struct  pabigot::crc::details::uint_size_traits< 2 >
 
struct  pabigot::crc::details::uint_size_traits< 1 >
 
struct  pabigot::crc::details::uint_traits< C >
 Extend the size-related traits with functionality operating on the specific types. More...
 
struct  pabigot::crc::details::uint_support< B >
 Type and policy traits providing support for operations on B-bit values. More...
 
class  pabigot::crc::details::base_crc< W, Rin >
 CRC core framework using Rocksoft^tm Model characteristics. More...
 
class  pabigot::crc::Tabler< CRC >
 Class encapsulating everything necessary for table-driven CRC calculations. More...
 
struct  pabigot::crc::Tabler< CRC >::params
 Rocksoft^TM model parameters for the checksum algorithm supported by this type. More...
 
class  pabigot::crc::crc< W, Poly, Rin, Rout, Init, XorOut >
 CRC calculation using Rocksoft^tm Model characteristics. More...
 

Namespaces

 pabigot
 Root for all pabigot namespaces.
 
 pabigot::crc
 Templates supporting CRC calculation using Rocksoft^tm Model parameters.
 
 pabigot::crc::details
 Internal support for pabigot::crc.
 

Typedefs

using pabigot::crc::details::uint8_traits = uint_traits< 4 >
 for uint8_t
 
using pabigot::crc::details::uint16_traits = uint_traits< 3 >
 for uint16_t
 
using pabigot::crc::details::uint32_traits = uint_traits< 2 >
 for uint32_t
 
using pabigot::crc::details::uint64_traits = uint_traits< 1 >
 for uint64_t
 
using pabigot::crc::CRC32 = crc< 32, 0x04c11db7, true, true, -1, -1 >
 The standard 32-bit CRC algorithm. More...
 

Functions

template<typename UI >
static constexpr UI pabigot::crc::details::reverse_low_bits (const UI &v, unsigned int bits)
 Reverse bits [0..bits) of v. More...
 
template<unsigned int B>
constexpr unsigned int pabigot::crc::details::uint_category ()
 Compute the #uint_size_traits category value for a required bit length. More...
 
template<typename CRC , size_t... n>
constexpr auto pabigot::crc::details::lookup_table (std::index_sequence< n... >)
 Use a template parameter pack to fill out a 256-element std::initializer_list for a std::array.
 
template<typename CRC >
constexpr auto pabigot::crc::details::lookup_table ()
 Return a std::array for the CRC byte-indexed table. More...
 

Detailed Description

Templates supporting CRC calculation using Rocksoft^tm Model parameters.