From 0ac8ded5b0046be772461e65bcb81dc09c4db810 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Thu, 1 Jan 2026 19:43:19 +0100 Subject: feat! API and namespace improvements. Signed-off-by: Amlal El Mahrouss --- include/ocl/fix/checksum.hpp | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'include') diff --git a/include/ocl/fix/checksum.hpp b/include/ocl/fix/checksum.hpp index 451e387..6492acf 100644 --- a/include/ocl/fix/checksum.hpp +++ b/include/ocl/fix/checksum.hpp @@ -27,7 +27,7 @@ namespace ocl::fix } /// \brief FIX message operators namespace. - namespace operators::fix + namespace operators { using checksum_type = long long; @@ -35,23 +35,21 @@ namespace ocl::fix /// \param in_ Pointer to the message buffer. /// \param len Length of the message in bytes. /// \return The checksum value (sum of all bytes modulo 256). - inline constexpr checksum_type - checksum(const char* in_, - const std::size_t len) + constexpr inline checksum_type + checksum(const std::string_view& in_) noexcept { - if (len < 1) - return 0L; - checksum_type cks{}; - for (std::size_t idx{}; idx < len; ++idx) - { - cks += static_cast(in_[idx]); - } + for (std::size_t idx{}; + idx < in_.size(); ++idx) + cks += static_cast(in_[idx]); + + // add \0 + cks += 1; return cks % 256; } - } // namespace operators::fix + } // namespace operators } // namespace ocl::fix -- cgit v1.2.3