34 lines
718 B
C++
34 lines
718 B
C++
#pragma once
|
|
|
|
#include "AbstractEncoder.h"
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
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<AbstractEncoder> mWorkingEncoder;
|
|
};
|