AuroraRuntime/Source/Compression/BlockCompressor.hpp

30 lines
810 B
C++
Raw Normal View History

2021-06-27 21:25:29 +00:00
/***
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
2021-06-27 21:25:29 +00:00
{
public:
virtual ~BaseStreamDeflate() { }
virtual std::pair<AuUInt32, AuUInt32> IngestImpl(AuUInt32 input);
virtual void Flush() = 0;
2021-06-27 21:25:29 +00:00
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;
2021-06-27 21:25:29 +00:00
protected:
AuUInt32 _count {};
AuUInt32 _lastCount {};
2021-06-27 21:25:29 +00:00
AuList<AuUInt8> _outbuffer;
};
}