From 8589cae300f7b3182c576ccf1a1f0eadcb945ffc Mon Sep 17 00:00:00 2001 From: MihailRis Date: Thu, 12 Sep 2024 16:22:32 +0300 Subject: [PATCH] add ByteReader::remaining() --- src/coders/byte_utils.cpp | 8 ++++++-- src/coders/byte_utils.hpp | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/coders/byte_utils.cpp b/src/coders/byte_utils.cpp index d28e31ce..84e33a30 100644 --- a/src/coders/byte_utils.cpp +++ b/src/coders/byte_utils.cpp @@ -9,7 +9,7 @@ void ByteBuilder::put(ubyte b) { } void ByteBuilder::putCStr(const char* str) { - size_t size = strlen(str) + 1; + size_t size = std::strlen(str) + 1; buffer.reserve(buffer.size() + size); for (size_t i = 0; i < size; i++) { buffer.push_back(str[i]); @@ -188,7 +188,7 @@ const char* ByteReader::getCString() { } std::string ByteReader::getString() { - uint32_t length = (uint32_t)getInt32(); + uint32_t length = static_cast(getInt32()); if (pos + length > size) { throw std::runtime_error("buffer underflow"); } @@ -202,6 +202,10 @@ bool ByteReader::hasNext() const { return pos < size; } +size_t ByteReader::remaining() const { + return size - pos; +} + const ubyte* ByteReader::pointer() const { return data + pos; } diff --git a/src/coders/byte_utils.hpp b/src/coders/byte_utils.hpp index 20c5d150..3aefa1f0 100644 --- a/src/coders/byte_utils.hpp +++ b/src/coders/byte_utils.hpp @@ -74,6 +74,8 @@ public: std::string getString(); /// @return true if there is at least one byte remains bool hasNext() const; + /// @return Number of remaining bytes in buffer + size_t remaining() const; const ubyte* pointer() const; void skip(size_t n);