From 3241ebb3495328e4bb2a75463314b25087afca13 Mon Sep 17 00:00:00 2001 From: Jamie Reece Wilson Date: Sun, 2 Jun 2024 00:13:56 +0100 Subject: [PATCH] [+] The missing AuByteBuffer::ByteBuffer(const MemoryViewRead &readView, ...) constructor --- Include/Aurora/Memory/ByteBuffer.hpp | 2 ++ Include/Aurora/Memory/ByteBuffer_Utils.inl | 19 ++++++++++++++++++- Include/Aurora/Memory/MemoryView.hpp | 9 +++++++-- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/Include/Aurora/Memory/ByteBuffer.hpp b/Include/Aurora/Memory/ByteBuffer.hpp index 7eb8d7d5..9e95ae37 100644 --- a/Include/Aurora/Memory/ByteBuffer.hpp +++ b/Include/Aurora/Memory/ByteBuffer.hpp @@ -123,6 +123,8 @@ namespace Aurora::Memory */ inline ByteBuffer(const void *in, AuUInt length, bool circular = false, bool expandable = false); + inline ByteBuffer(const MemoryViewRead &readView, bool circular = false, bool expandable = false); + inline ByteBuffer(const AuList &vector, bool circular = false, bool expandable = false); inline ByteBuffer(AuUInt length, bool circular = false, bool expandable = false); diff --git a/Include/Aurora/Memory/ByteBuffer_Utils.inl b/Include/Aurora/Memory/ByteBuffer_Utils.inl index 986f9f15..6ed47b28 100644 --- a/Include/Aurora/Memory/ByteBuffer_Utils.inl +++ b/Include/Aurora/Memory/ByteBuffer_Utils.inl @@ -278,7 +278,24 @@ namespace Aurora::Memory this->writePtr = this->readPtr + this->length; AuMemcpy(this->base, in, this->length); } - + + ByteBuffer::ByteBuffer(const MemoryViewRead &readView, bool circular, bool expandable) : + flagCircular(circular), flagExpandable(expandable), flagReadError(0), flagWriteError(0) + { + this->scaleSize = kBufferInitialPower; + this->base = readView.Size() ? ZAlloc(readView.Size()) : nullptr; + if (!this->base) + { + Reset(); + return; + } + this->length = readView.Size(); + this->allocSize = this->length; + this->readPtr = this->base; + this->writePtr = this->readPtr + this->length; + AuMemcpy(this->base, readView.Begin(), this->length); + } + ByteBuffer::ByteBuffer(const AuList &vector, bool circular, bool expandable) : flagCircular(circular), flagExpandable(expandable), flagReadError(0), flagWriteError(0) { diff --git a/Include/Aurora/Memory/MemoryView.hpp b/Include/Aurora/Memory/MemoryView.hpp index 5a897881..98902bcc 100644 --- a/Include/Aurora/Memory/MemoryView.hpp +++ b/Include/Aurora/Memory/MemoryView.hpp @@ -336,7 +336,12 @@ namespace Aurora::Memory return reinterpret_cast(this->ptr) + this->length; } - MemoryView AtOffset(AuUInt uOffset) + AuUInt size() const + { + return this->length; + } + + MemoryView AtOffset(AuUInt uOffset) const { if (uOffset < this->uLength) { @@ -350,7 +355,7 @@ namespace Aurora::Memory } } - MemoryView Take(AuUInt uLength) + MemoryView Take(AuUInt uLength) const { if (uLength <= this->uLength) {