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 "Reader.hpp"
6
13namespace byteme {
14
21class RawBufferReader : public Reader {
22public:
27 RawBufferReader(const unsigned char* buffer, size_t length) : my_buffer(buffer), my_length(length) {}
28
33 RawBufferReader(const char* buffer, size_t length) : RawBufferReader(reinterpret_cast<const unsigned char*>(buffer), length) {}
34
35public:
36 bool load() {
37 if (my_used) {
38 return false;
39 }
40 my_used = true;
41 return true;
42 }
43
44 const unsigned char* buffer() const {
45 return my_buffer;
46 }
47
48 size_t available() const {
49 return my_length;
50 }
51
52private:
53 const unsigned char* my_buffer;
54 size_t my_length;
55 bool my_used = false;
56};
57
58}
59
60#endif
Read an input source.
Read bytes from a raw buffer, usually text.
Definition RawBufferReader.hpp:21
RawBufferReader(const unsigned char *buffer, size_t length)
Definition RawBufferReader.hpp:27
bool load()
Definition RawBufferReader.hpp:36
const unsigned char * buffer() const
Definition RawBufferReader.hpp:44
size_t available() const
Definition RawBufferReader.hpp:48
RawBufferReader(const char *buffer, size_t length)
Definition RawBufferReader.hpp:33
Virtual class for reading bytes from a source.
Definition Reader.hpp:15
Simple byte readers and writers.