1#ifndef BYTEME_ISTREAM_READER_HPP
2#define BYTEME_ISTREAM_READER_HPP
10#include "check_buffer_size.hpp"
41template<
class Po
inter_>
49 my_input(std::move(input)),
51 check_buffer_size<std::streamsize>(
52 check_buffer_size(options.buffer_size)
63 my_input->read(
reinterpret_cast<char*
>(my_buffer.data()), my_buffer.size());
64 my_read = my_input->gcount();
66 if (my_read < my_buffer.size()) {
67 if (my_input->eof()) {
70 throw std::runtime_error(
"failed to finish reading the input stream");
77 const unsigned char*
buffer()
const {
78 return my_buffer.data();
87 std::vector<unsigned char> my_buffer;
88 std::size_t my_read = 0;
Read bytes from a std::istream.
Definition IstreamReader.hpp:42
IstreamReader(Pointer_ input, const IstreamReaderOptions &options)
Definition IstreamReader.hpp:48
const unsigned char * buffer() const
Definition IstreamReader.hpp:77
bool load()
Definition IstreamReader.hpp:58
std::size_t available() const
Definition IstreamReader.hpp:81
Virtual class for reading bytes from a source.
Definition Reader.hpp:17
Simple byte readers and writers.
Options for IstreamReader construction.
Definition IstreamReader.hpp:23
std::size_t buffer_size
Definition IstreamReader.hpp:28