Files
Acrux/include/acrux/buffers/BufferReader.hpp
T
2026-09-19 23:00:15 -03:00

34 lines
738 B
C++

#pragma once
#include <cstddef>
#include "BufferBase.hpp"
#include "acrux/memory/Endian.hpp"
namespace acrux::buffers
{
class BufferReader : public IBuffer
{
public:
[[nodiscard]] virtual bool read(void* s, size_t bitCount) = 0;
template <typename T>
[[nodiscard]] bool read(T& value, acrux::memory::Endian endianness);
[[nodiscard]] const IBuffer* getBuffer() const;
IBuffer* getBuffer();
BufferReader(IBuffer* buffer);
~BufferReader() = default;
BufferReader(const BufferReader&) = default;
BufferReader(BufferReader&&) noexcept = default;
BufferReader& operator=(BufferReader&&) noexcept = default;
BufferReader& operator=(const BufferReader&) = default;
private:
IBuffer* m_buffer{nullptr};
};
}