#pragma once #include "BitStream.h" #include #include class BufferBitStream : public BitStream { public: const std::vector& getBuffer() const; bool isFinished() const override; std::vector peekNextNBytes(unsigned n) const override; std::optional readNextByte() override; void reset() override; void setBuffer(const std::vector& data); void writeByte(unsigned char data, bool checkOverflow = true) override; void writeBytes(const std::vector data) override; private: unsigned mBufferSize{0}; std::vector mBuffer; };