15 #ifndef RAPIDJSON_FILEREADSTREAM_H_
16 #define RAPIDJSON_FILEREADSTREAM_H_
23 RAPIDJSON_DIAG_OFF(padded)
24 RAPIDJSON_DIAG_OFF(unreachable - code)
25 RAPIDJSON_DIAG_OFF(missing - noreturn)
48 bufferSize_(bufferSize),
60 Ch Peek()
const {
return *current_; }
67 size_t Tell()
const {
return count_ +
static_cast<size_t>(current_ - buffer_); }
84 const Ch*
Peek4()
const {
return (current_ + 4 - !eof_ <= bufferLast_) ? current_ : 0; }
89 if(current_ < bufferLast_)
94 readCount_ = std::fread(buffer_, 1, bufferSize_, fp_);
95 bufferLast_ = buffer_ + readCount_ - 1;
98 if(readCount_ < bufferSize_)
100 buffer_[readCount_] =
'\0';
File byte stream for input using fread().
Definition: filereadstream.h:35
const Ch * Peek4() const
Definition: filereadstream.h:84
void Put(Ch)
Definition: filereadstream.h:70
size_t PutEnd(Ch *)
Definition: filereadstream.h:77
Ch Peek() const
Definition: filereadstream.h:60
Ch * PutBegin()
Definition: filereadstream.h:72
void Flush()
Definition: filereadstream.h:71
Ch Take()
Definition: filereadstream.h:61
FileReadStream(std::FILE *fp, char *buffer, size_t bufferSize)
Constructor.
Definition: filereadstream.h:45
char Ch
Character type (byte).
Definition: filereadstream.h:37
size_t Tell() const
Definition: filereadstream.h:67
#define RAPIDJSON_ASSERT(x)
Assertion.
Definition: rapidjson.h:451
#define RAPIDJSON_NAMESPACE_BEGIN
provide custom rapidjson namespace (opening expression)
Definition: rapidjson.h:121
#define RAPIDJSON_NAMESPACE_END
provide custom rapidjson namespace (closing expression)
Definition: rapidjson.h:124