/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: AuIOAdapterCompression.hpp Date: 2022-6-6 Author: Reece ***/ #pragma once namespace Aurora::IO { struct CompressionStreamReader : IStreamReader { AuSPtr pCompressionStream; CompressionStreamReader(const AuSPtr &compressionStream); EStreamError IsOpen() override; EStreamError Read(const Memory::MemoryViewStreamWrite ¶meters) override; void Close() override; bool bErrored_ {}; }; struct CompressionSeekingReader : ISeekingReader { AuSPtr pCompressionStream; CompressionSeekingReader(const AuSPtr &compressionStream); EStreamError IsOpen() override; EStreamError ArbitraryRead(AuUInt offset, const Memory::MemoryViewStreamWrite ¶meters) override; void Close() override; bool bErrored_ {}; AuUInt uOffset {}; }; }