17 #ifndef RAPIDJSON_STREAM_H_
18 #define RAPIDJSON_STREAM_H_
72 template <
typename Stream>
87 template <
typename Stream>
95 template <
typename Stream>
102 template <
typename Stream,
typename Ch>
106 for(
size_t i = 0; i < n; i++)
119 #if defined(_MSC_VER) && _MSC_VER <= 1800
121 RAPIDJSON_DIAG_OFF(4702)
122 RAPIDJSON_DIAG_OFF(4512)
125 template <
typename InputStream,
typename Encoding = UTF8<>>
129 typedef typename Encoding::Ch
Ch;
151 #if defined(_MSC_VER) && _MSC_VER <= 1800
161 template <
typename Encoding>
164 typedef typename Encoding::Ch
Ch;
189 template <
typename Encoding>
208 template <
typename Encoding>
211 typedef typename Encoding::Ch
Ch;
244 template <
typename Encoding>
A Stream Wrapper.
Definition: stream.h:127
Ch Take()
Definition: stream.h:133
void Flush()
Definition: stream.h:137
InputStream & is_
Definition: stream.h:148
void Put(Ch ch)
Definition: stream.h:136
Ch * PutBegin()
Definition: stream.h:135
size_t Tell()
Definition: stream.h:134
bool HasBOM() const
Definition: stream.h:145
UTFType GetType() const
Definition: stream.h:144
GenericStreamWrapper(InputStream &is)
Definition: stream.h:130
size_t PutEnd(Ch *ch)
Definition: stream.h:138
Ch Peek() const
Definition: stream.h:132
Encoding::Ch Ch
Definition: stream.h:129
const Ch * Peek4() const
Definition: stream.h:141
Concept for encoding of Unicode characters.
Concept for reading and writing characters.
UTFType
Runtime-specified UTF encoding type of a stream.
Definition: encodings.h:757
#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
common definitions and configuration
GenericStringStream< UTF8<> > StringStream
String stream with UTF8 encoding.
Definition: stream.h:199
GenericInsituStringStream< UTF8<> > InsituStringStream
Insitu string stream with UTF8 encoding.
Definition: stream.h:254
void PutReserve(Stream &stream, size_t count)
Reserve n characters for writing to a stream.
Definition: stream.h:88
void PutN(Stream &stream, Ch c, size_t n)
Put N copies of a character to a stream.
Definition: stream.h:103
void PutUnsafe(Stream &stream, typename Stream::Ch c)
Write character to a stream, presuming buffer is reserved.
Definition: stream.h:96
A read-write string stream.
Definition: stream.h:210
Encoding::Ch Ch
Definition: stream.h:211
void Flush()
Definition: stream.h:229
void Put(Ch c)
Definition: stream.h:221
size_t PutEnd(Ch *begin)
Definition: stream.h:228
size_t Tell()
Definition: stream.h:218
Ch * dst_
Definition: stream.h:240
void Pop(size_t count)
Definition: stream.h:237
GenericInsituStringStream(Ch *src)
Definition: stream.h:213
Ch Peek()
Definition: stream.h:216
Ch * src_
Definition: stream.h:239
Ch * head_
Definition: stream.h:241
Ch * Push(size_t count)
Definition: stream.h:231
Ch * PutBegin()
Definition: stream.h:227
Ch Take()
Definition: stream.h:217
Read-only string stream.
Definition: stream.h:163
size_t PutEnd(Ch *)
Definition: stream.h:179
Ch Peek() const
Definition: stream.h:168
Ch Take()
Definition: stream.h:169
const Ch * head_
Original head of the string.
Definition: stream.h:186
Encoding::Ch Ch
Definition: stream.h:164
void Flush()
Definition: stream.h:178
GenericStringStream(const Ch *src)
Definition: stream.h:166
Ch * PutBegin()
Definition: stream.h:172
void Put(Ch)
Definition: stream.h:177
size_t Tell() const
Definition: stream.h:170
const Ch * src_
Current read position.
Definition: stream.h:185
Provides additional information for stream.
Definition: stream.h:74
@ copyOptimization
Definition: stream.h:82