/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: BlockCompressor.cpp Date: 2021-6-17 Author: Reece ***/ #include #include "Compression.hpp" #include "BlockCompressor.hpp" #include "bzlib.h" #include "zstd.h" #include "zlib.h" #include "lz4.h" namespace Aurora::Compression { std::pair BaseStreamDeflate::Ingest(AuUInt32 input) { auto ingest = IngestImpl(input); _count += ingest.first; return ingest; } bool BaseStreamDeflate::Read(void * /*opt*/ buffer, AuUInt32 &len, bool ingestUntilError) { if (_count != _lastCount) { Flush(); } if (ingestUntilError) { while (this->_outbuffer.size() < len) { if (Ingest(4096).second == 0) { if (this->_outbuffer.size()) { break; } return false; } } } return StreamRead(buffer, len, this->_outbuffer); } AUKN_SYM ICompressionStream *CompressorNew(IO::IStreamReader *reader, const CompressionInfo &info) { return nullptr; } AUKN_SYM void CompressorRelease(ICompressionStream * stream) { SafeDelete(stream); } }