AuroraRuntime/Source/Compression/BlockCompressor.hpp
Reece 3be51018c9 [-] Remove Flush from public compression interface
[+] Improved base block [de]compression objects
2021-07-11 12:36:15 +01:00

30 lines
810 B
C++

/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: BlockCompressor.hpp
Date: 2021-6-17
Author: Reece
***/
#pragma once
namespace Aurora::Compression
{
class BaseStreamDeflate : public ICompressionStream
{
public:
virtual ~BaseStreamDeflate() { }
virtual std::pair<AuUInt32, AuUInt32> IngestImpl(AuUInt32 input);
virtual void Flush() = 0;
virtual bool Init(Aurora::IO::IStreamReader *reader, const CompressionInfo &info) = 0;
bool Read(void * /*opt*/ buffer, AuUInt32 &len, bool ingestUntilError) override;
std::pair<AuUInt32, AuUInt32> Ingest(AuUInt32 input) override;
protected:
AuUInt32 _count {};
AuUInt32 _lastCount {};
AuList<AuUInt8> _outbuffer;
};
}