byteme
Read/write bytes from various sources
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
22class RawBufferReader final : public Reader {
23public:
29 RawBufferReader(const unsigned char* buffer, std::size_t length) : my_buffer(buffer), my_remaining(length) {}
30
31public:
32 std::size_t read(unsigned char* buffer, std::size_t n) {
33 const auto to_copy = std::min(n, my_remaining);
34 std::copy_n(my_buffer, to_copy, buffer);
35 my_buffer += to_copy;
36 my_remaining -= to_copy;
37 return to_copy;
38 }
39
40private:
41 const unsigned char* my_buffer;
42 std::size_t my_remaining;
43};
44
45}
46
47#endif
Read an input source.
Read bytes from a raw buffer, usually text.
Definition RawBufferReader.hpp:22
RawBufferReader(const unsigned char *buffer, std::size_t length)
Definition RawBufferReader.hpp:29
std::size_t read(unsigned char *buffer, std::size_t n)
Definition RawBufferReader.hpp:32
Virtual class for reading bytes from a source.
Definition Reader.hpp:17
Simple byte readers and writers.
Definition BufferedReader.hpp:21