(C++)  1.1.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
Crc16.h
1 #ifndef GRAIL_CRC16_H
2 #define GRAIL_CRC16_H
3 
4 #include <cstdint>
5 #include <cstddef>
6 #include <string>
7 
8 namespace grail
9 {
10  class Crc16
11  {
12  public:
13  Crc16();
14 
15  std::uint16_t ComputeChecksum(std::string bytes, std::size_t startingIndex, std::size_t length) const;
16  std::string ComputeChecksumBytes(const std::string& bytes) const;
17  std::string ComputeChecksumBytes(std::string bytes, std::size_t startingIndex, std::size_t length) const;
18 
19 
20  private:
21  constexpr static const std::uint16_t POLYNOMIAL = 0xA001;
22  constexpr static const std::size_t TABLE_SIZE = 256;
23  std::uint16_t table[TABLE_SIZE]{};
24 
25  const char BYTE_SIZE = 8;
26  };
27 }
28 
29 #endif // GRAIL_CRC16_H
Definition: Crc16.h:11