From 92e0b944a96073e358a6bd5120c90391092dca84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Thu, 19 Apr 2018 15:23:14 +0300 Subject: [PATCH] MXS-1810: Create reset method for Checksum Resetting checksum calculations avoids some unnecessary calculations when the result is not needed. --- include/maxscale/utils.hh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/maxscale/utils.hh b/include/maxscale/utils.hh index 1feb71f5a..ad0fe2cac 100644 --- a/include/maxscale/utils.hh +++ b/include/maxscale/utils.hh @@ -377,6 +377,11 @@ public: */ virtual void finalize(GWBUF* buffer = NULL) = 0; + /** + * Reset the checksum to a zero state + */ + virtual void reset() = 0; + /** * Get hexadecimal representation of the checksum * @@ -411,6 +416,10 @@ public: { update(buffer); SHA1_Final(&m_sum.front(), &m_ctx); + } + + void reset() + { SHA1_Init(&m_ctx); } @@ -464,6 +473,11 @@ public: { update(buffer); m_sum = m_ctx; + reset(); + } + + void reset() + { m_ctx = crc32(0L, NULL, 0); }