view src/core/byte_stream.cc @ 367:8d45d892be88 default tip

*: instead of pugixml, use Qt XML features this means we have one extra Qt dependency though...
author Paper <paper@tflc.us>
date Sun, 17 Nov 2024 22:55:47 -0500
parents 99c961c91809
children
line wrap: on
line source

#include "core/byte_stream.h"

ByteStream::ByteStream(std::uint8_t *bytes, std::size_t size) {
	bytes_ = bytes;
	size_ = size;
}

void ByteStream::ResetOffset() {
	offset_ = 0;
}

void ByteStream::SetEndianness(ByteStream::ByteOrder endian) {
	endian_ = endian;
}

bool ByteStream::ReadString(std::string& str, std::size_t size) {
	if (offset_ + size >= size_)
		return false;

	str.assign(reinterpret_cast<const char *>(bytes_ + offset_), size);
	Advance(size);
	return true;
}

bool ByteStream::Advance(std::size_t amount) {
	if (offset_ + amount >= size_)
		return false;

	offset_ += amount;
	return true;
}