From 81700c2bcc8084b0d558b1c653fe9a6dd2978d71 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Mon, 22 Feb 2021 03:47:55 +0100 Subject: [PATCH] Added espcrc32builder.h --- CMakeLists.txt | 1 + src/espcrc32builder.h | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/espcrc32builder.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 704449a..3a2b175 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,6 @@ set(headers src/asyncudplistener.h + src/espcrc32builder.h src/esprandom.h src/lockhelper.h src/lockingqueue.h diff --git a/src/espcrc32builder.h b/src/espcrc32builder.h new file mode 100644 index 0000000..b4e9445 --- /dev/null +++ b/src/espcrc32builder.h @@ -0,0 +1,32 @@ +#pragma once + +// esp-idf includes +#include + +namespace espcpputils { + +class EspCrc32Builder +{ +public: + std::size_t write(uint8_t c) + { + return write(&c, 1); + } + + std::size_t write(const uint8_t *buf, std::size_t len) + { + crc = crc32_le(crc, buf, len); + + return len; + }; + + uint32_t hash() const + { + return crc; + } + +private: + uint32_t crc{}; +}; + +} // namespace espcpputils