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