#ifndef _VNDATA_ERROR_DETECTION_H_ #define _VNDATA_ERROR_DETECTION_H_ #include #include #include "int.h" namespace vn { namespace data { namespace integrity { /// \brief Helpful class for working with 8-bit checksums. class Checksum8 { // Public Methods ///////////////////////////////////////////////////////// public: /// \brief Computes the 8-bit checksum of the provided data. /// /// \param[in] data The data array to compute the 8-bit checksum for. /// \param[in] length The length of data bytes from the array to compute /// the checksum over. /// \return The computed checksum. static uint8_t compute(const char data[], size_t length); }; /// \brief Helpful class for working with 16-bit CRCs. class Crc16 { // Public Methods ///////////////////////////////////////////////////////// public: /// \brief Computes the 16-bit CRC of the provided data. /// /// \param[in] data The data array to compute the 16-bit CRC for. /// \param[in] length The length of data bytes from the array to compute /// the CRC over. /// \return The computed CRC. static uint16_t compute(const char data[], size_t length); }; } } } #endif