stuff-from-scratch/src/compression/AbstractEncoder.h
2022-11-24 16:15:41 +00:00

34 lines
683 B
C++

#pragma once
#include "AbstractChecksumCalculator.h"
#include <vector>
class BitStream;
class AbstractEncoder
{
public:
AbstractEncoder(BitStream* inputStream, BitStream* outputStream)
: mInputStream(inputStream),
mOutputStream(outputStream)
{
}
virtual ~AbstractEncoder() = default;
void addChecksumCalculator(AbstractChecksumCalculator* calculator)
{
mChecksumCalculators.push_back(calculator);
}
virtual bool encode() = 0;
virtual bool decode() = 0;
protected:
std::vector<AbstractChecksumCalculator*> mChecksumCalculators;
BitStream* mInputStream{nullptr};
BitStream* mOutputStream{nullptr};
};