14#include <system_error>
17#include "wpi/util/SmallVector.hpp"
47 size_t readlen = (std::min)(
in_avail(), len);
51 read_impl(data, readlen);
56 size_t old_size = buf.size();
58 read_impl(&buf[old_size], len);
59 buf.resize(old_size + m_read_count);
64 size_t old_size = buf.size();
66 read_impl(&buf[old_size], len);
67 buf.resize(old_size + m_read_count);
72 size_t old_size = buf.size();
73 buf.insert(buf.end(), len, 0);
74 read_impl(&buf[old_size], len);
75 buf.resize(old_size + m_read_count);
80 size_t old_size = buf.size();
81 buf.insert(buf.end(), len, 0);
82 read_impl(&buf[old_size], len);
83 buf.resize(old_size + m_read_count);
88 size_t old_size = buf.size();
89 buf.insert(buf.end(), len, 0);
90 read_impl(&buf[old_size], len);
91 buf.resize(old_size + m_read_count);
124 virtual void read_impl(
void* data,
size_t len) = 0;
126 bool m_error =
false;
127 size_t m_read_count = 0;
138 :
raw_mem_istream(reinterpret_cast<const char*>(mem.data()), mem.size()) {
141 : m_cur(str), m_left(
std::strlen(str)) {}
147 void read_impl(
void* data,
size_t len)
override;
156 size_t bufSize = 4096);
163 void read_impl(
void* data,
size_t len) override;
Definition BooleanTopic.hpp:24
raw_fd_istream(std::string_view filename, std::error_code &ec, size_t bufSize=4096)
size_t in_avail() const override
raw_fd_istream(int fd, bool shouldClose, size_t bufSize=4096)
~raw_fd_istream() override
bool has_error() const
Definition raw_istream.hpp:113
raw_istream & read(unsigned char &c)
Definition raw_istream.hpp:31
virtual ~raw_istream()=default
raw_istream & readinto(std::vector< uint8_t > &buf, size_t len)
Definition raw_istream.hpp:79
raw_istream(const raw_istream &)=delete
size_t readsome(void *data, size_t len)
Definition raw_istream.hpp:46
raw_istream & operator=(const raw_istream &)=delete
void set_read_count(size_t count)
Definition raw_istream.hpp:121
std::string_view getline(SmallVectorImpl< char > &buf, int maxLen)
raw_istream & read(char &c)
Definition raw_istream.hpp:26
raw_istream & readinto(std::vector< char > &buf, size_t len)
Definition raw_istream.hpp:71
virtual size_t in_avail() const =0
raw_istream & readinto(SmallVectorImpl< uint8_t > &buf, size_t len)
Definition raw_istream.hpp:63
size_t read_count() const
Definition raw_istream.hpp:111
raw_istream & read(signed char &c)
Definition raw_istream.hpp:36
void error_detected()
Definition raw_istream.hpp:120
raw_istream & read(void *data, size_t len)
Definition raw_istream.hpp:41
raw_istream & readinto(std::string &buf, size_t len)
Definition raw_istream.hpp:87
void clear_error()
Definition raw_istream.hpp:114
raw_istream & readinto(SmallVectorImpl< char > &buf, size_t len)
Definition raw_istream.hpp:55
raw_mem_istream(std::string &str)
Definition raw_istream.hpp:133
raw_mem_istream(std::span< const uint8_t > mem)
Definition raw_istream.hpp:137
raw_mem_istream(std::span< const char > mem)
Definition raw_istream.hpp:135
raw_mem_istream(const char *mem, size_t len)
Definition raw_istream.hpp:142
size_t in_avail() const override
raw_mem_istream(const char *str)
Definition raw_istream.hpp:140
Definition StringMap.hpp:773
Definition raw_os_ostream.hpp:19