8 #ifndef WPIUTIL_SUPPORT_RAW_ISTREAM_H_ 9 #define WPIUTIL_SUPPORT_RAW_ISTREAM_H_ 13 #include <system_error> 15 #include "llvm/SmallVector.h" 16 #include "llvm/StringRef.h" 17 #include "llvm/Twine.h" 46 size_t readsome(
void* data,
size_t len) {
47 size_t readlen = std::min(in_avail(), len);
48 if (readlen == 0)
return 0;
49 read_impl(data, readlen);
61 virtual void close() = 0;
62 virtual size_t in_avail()
const = 0;
64 bool has_error()
const {
return m_error; }
65 void clear_error() { m_error =
false; }
71 void error_detected() { m_error =
true; }
74 virtual void read_impl(
void* data,
size_t len) = 0;
82 raw_mem_istream(
const char* mem,
size_t len) : m_cur(mem), m_left(len) {}
83 void close()
override;
84 size_t in_avail()
const override;
87 void read_impl(
void* data,
size_t len)
override;
96 size_t bufSize = 4096);
99 void close()
override;
100 size_t in_avail()
const override;
103 void read_impl(
void* data,
size_t len)
override;
115 #endif // WPIUTIL_SUPPORT_RAW_ISTREAM_H_ Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
Definition: Twine.h:79
Definition: SocketError.cpp:17
Definition: raw_istream.h:21
Definition: raw_istream.h:93
Definition: raw_istream.h:79
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:42