byteme
C++ wrappers for buffered inputs
Loading...
Searching...
No Matches
RawBufferReader.hpp
Go to the documentation of this file.
1#ifndef BYTEME_RAW_BUFFER_READER_HPP
2#define BYTEME_RAW_BUFFER_READER_HPP
3
4#include <algorithm>
5#include <cstddef>
6
7#include "Reader.hpp"
8
15namespace byteme {
16
23class RawBufferReader final : public Reader {
24public:
29 RawBufferReader(const unsigned char* buffer, std::size_t length) : my_buffer(buffer), my_length(length) {}
30
31public:
32 bool load() {
33 if (my_used) {
34 return false;
35 }
36 my_used = true;
37 return true;
38 }
39
40 const unsigned char* buffer() const {
41 return my_buffer;
42 }
43
44 std::size_t available() const {
45 return my_length;
46 }
47
48private:
49 const unsigned char* my_buffer;
50 std::size_t my_length;
51 bool my_used = false;
52};
53
54}
55
56#endif
Read an input source.
Read bytes from a raw buffer, usually text.
Definition RawBufferReader.hpp:23
bool load()
Definition RawBufferReader.hpp:32
RawBufferReader(const unsigned char *buffer, std::size_t length)
Definition RawBufferReader.hpp:29
const unsigned char * buffer() const
Definition RawBufferReader.hpp:40
std::size_t available() const
Definition RawBufferReader.hpp:44
Virtual class for reading bytes from a source.
Definition Reader.hpp:17
Simple byte readers and writers.