/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: BlobWriter.hpp Date: 2021-6-10 Author: Reece ***/ #pragma once namespace Aurora::IO::Buffered { class BlobWriter : public IStreamWriter { public: AU_NO_COPY_NO_MOVE(BlobWriter) BlobWriter() {} ~BlobWriter() {} virtual EStreamError Open() override { return EStreamError::eErrorNone; } virtual EStreamError Write(const Memory::MemoryViewStreamRead & parameters) override { auto idx = buffer_.size(); buffer_.resize(idx + parameters.length); AuMemcpy(buffer_.data() + idx, parameters.ptr, buffer_.size() - idx); return EStreamError::eErrorNone; } virtual void Flush() override { } virtual void Close() override { } const Memory::ByteBuffer &GetBuffer() { return this->buffer_; } private: Memory::ByteBuffer buffer_; }; }