stuff-from-scratch/src/base/core/streams/BufferBitStream.h
2023-01-23 11:06:30 +00:00

30 lines
676 B
C++

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