diff options
Diffstat (limited to 'crc.hpp')
-rw-r--r-- | crc.hpp | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/crc.hpp b/crc.hpp deleted file mode 100644 index 3793d9a..0000000 --- a/crc.hpp +++ /dev/null @@ -1,60 +0,0 @@ -#pragma once - -#include <cstdint> - -namespace blobs -{ - -using std::size_t; -using std::uint16_t; -using std::uint32_t; -using std::uint8_t; - -constexpr uint16_t crc16Ccitt = 0x1021; -/* Value from: http://srecord.sourceforge.net/crc16-ccitt.html for - * implementation without explicit bit adding. - */ -constexpr uint16_t crc16Initial = 0xFFFF; - -class CrcInterface -{ - public: - virtual ~CrcInterface() = default; - - /** - * Reset the crc. - */ - virtual void clear() = 0; - - /** - * Provide bytes against which to compute the crc. This method is - * meant to be only called once between clear() and get(). - * - * @param[in] bytes - the data against which to compute. - * @param[in] length - the number of bytes. - */ - virtual void compute(const uint8_t* bytes, uint32_t length) = 0; - - /** - * Read back the current crc value. - * - * @return the crc16 value. - */ - virtual uint16_t get() const = 0; -}; - -class Crc16 : public CrcInterface -{ - public: - Crc16() : poly(crc16Ccitt), value(crc16Initial){}; - ~Crc16() = default; - - void clear() override; - void compute(const uint8_t* bytes, uint32_t length) override; - uint16_t get() const override; - - private: - uint16_t poly; - uint16_t value; -}; -} // namespace blobs |