stuff-from-scratch/src/compression/AbstractEncoder.h

35 lines
683 B
C
Raw Normal View History

2022-11-23 15:41:33 +00:00
#pragma once
2022-11-24 16:15:41 +00:00
#include "AbstractChecksumCalculator.h"
#include <vector>
2022-11-23 15:41:33 +00:00
class BitStream;
class AbstractEncoder
{
public:
AbstractEncoder(BitStream* inputStream, BitStream* outputStream)
: mInputStream(inputStream),
mOutputStream(outputStream)
{
}
virtual ~AbstractEncoder() = default;
2022-11-24 16:15:41 +00:00
void addChecksumCalculator(AbstractChecksumCalculator* calculator)
{
mChecksumCalculators.push_back(calculator);
}
2022-11-23 15:41:33 +00:00
virtual bool encode() = 0;
virtual bool decode() = 0;
protected:
2022-11-24 16:15:41 +00:00
std::vector<AbstractChecksumCalculator*> mChecksumCalculators;
2022-11-23 15:41:33 +00:00
BitStream* mInputStream{nullptr};
BitStream* mOutputStream{nullptr};
};