#pragma once #include "AbstractEncoder.h" #include #include class ZlibEncoder : public AbstractEncoder { public: ZlibEncoder(BitStream* inputStream, BitStream* outputStream); ~ZlibEncoder(); void setCompressionMethod(unsigned char method); void setExtraFlags(unsigned char extraFlags); bool encode() override; bool decode() override; private: unsigned char mCmf{0}; unsigned char mFlg{0}; unsigned char mCompressionMethod{8}; unsigned char mCompressionInfo{0}; unsigned char mFlagCheck{0}; unsigned char mFlagDict{0}; unsigned char mFlagLevel{0}; unsigned char mCheckValue{0}; std::unique_ptr mWorkingEncoder; };