add ByteReader.get(dst, size) method

This commit is contained in:
MihailRis 2024-10-24 17:39:23 +03:00
parent f884455299
commit 229456ced5
2 changed files with 10 additions and 0 deletions

View File

@ -107,6 +107,14 @@ void ByteReader::checkMagic(const char* data, size_t size) {
pos += size;
}
void ByteReader::get(char* dst, size_t size) {
if (pos + size > this->size) {
throw std::runtime_error("buffer underflow");
}
std::memcpy(dst, data+pos, size);
pos += size;
}
ubyte ByteReader::get() {
if (pos == size) {
throw std::runtime_error("buffer underflow");

View File

@ -52,6 +52,8 @@ public:
ByteReader(const ubyte* data);
void checkMagic(const char* data, size_t size);
/// @brief Get N bytes
void get(char* dst, size_t size);
/// @brief Read one byte (unsigned 8 bit integer)
ubyte get();
/// @brief Read one byte (unsigned 8 bit integer) without pointer move