8 #ifndef WPIUTIL_SUPPORT_RAW_ISTREAM_H_ 9 #define WPIUTIL_SUPPORT_RAW_ISTREAM_H_ 13 #include <system_error> 17 class SmallVectorImpl;
48 std::size_t readsome(
void* data, std::size_t len) {
49 std::size_t readlen = std::min(in_avail(), len);
50 if (readlen == 0)
return 0;
51 read_impl(data, readlen);
63 virtual void close() = 0;
64 virtual std::size_t in_avail()
const = 0;
66 bool has_error()
const {
return m_error; }
67 void clear_error() { m_error =
false; }
73 void error_detected() { m_error =
true; }
76 virtual void read_impl(
void* data, std::size_t len) = 0;
84 raw_mem_istream(
const char* mem, std::size_t len) : m_cur(mem), m_left(len) {}
85 void close()
override;
86 std::size_t in_avail()
const override;
89 void read_impl(
void* data, std::size_t len)
override;
98 std::size_t bufSize = 4096);
99 raw_fd_istream(
int fd,
bool shouldClose, std::size_t bufSize = 4096);
101 void close()
override;
102 std::size_t in_avail()
const override;
105 void read_impl(
void* data, std::size_t len)
override;
110 std::size_t m_bufSize;
117 #endif // WPIUTIL_SUPPORT_RAW_ISTREAM_H_
Definition: SocketError.cpp:18
Definition: raw_istream.h:23
Definition: raw_istream.h:95
Definition: raw_istream.h:81
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:42