17 #ifndef CEREAL_RAPIDJSON_STREAM_H_
18 #define CEREAL_RAPIDJSON_STREAM_H_
72 template<
typename Stream>
83 template<
typename Stream>
90 template<
typename Stream>
96 template<
typename Stream,
typename Ch>
99 for (
size_t i = 0; i < n; i++)
112 #if defined(_MSC_VER) && _MSC_VER <= 1800
113 CEREAL_RAPIDJSON_DIAG_PUSH
114 CEREAL_RAPIDJSON_DIAG_OFF(4702)
115 CEREAL_RAPIDJSON_DIAG_OFF(4512)
118 template <
typename InputStream,
typename Encoding = UTF8<> >
121 typedef typename Encoding::Ch
Ch;
143 #if defined(_MSC_VER) && _MSC_VER <= 1800
144 CEREAL_RAPIDJSON_DIAG_POP
153 template <
typename Encoding>
155 typedef typename Encoding::Ch
Ch;
172 template <
typename Encoding>
187 template <
typename Encoding>
189 typedef typename Encoding::Ch
Ch;
213 template <
typename Encoding>
#define CEREAL_RAPIDJSON_ASSERT(x)
Definition: json.hpp:50
A Stream Wrapper.
Definition: stream.h:119
Ch Take()
Definition: stream.h:125
void Flush()
Definition: stream.h:129
InputStream & is_
Definition: stream.h:140
void Put(Ch ch)
Definition: stream.h:128
Ch * PutBegin()
Definition: stream.h:127
size_t Tell()
Definition: stream.h:126
bool HasBOM() const
Definition: stream.h:137
UTFType GetType() const
Definition: stream.h:136
GenericStreamWrapper(InputStream &is)
Definition: stream.h:122
size_t PutEnd(Ch *ch)
Definition: stream.h:130
Ch Peek() const
Definition: stream.h:124
Encoding::Ch Ch
Definition: stream.h:121
const Ch * Peek4() const
Definition: stream.h:133
Concept for encoding of Unicode characters.
Concept for reading and writing characters.
UTFType
Runtime-specified UTF encoding type of a stream.
Definition: encodings.h:603
#define CEREAL_RAPIDJSON_NAMESPACE_BEGIN
provide custom rapidjson namespace (opening expression)
Definition: rapidjson.h:121
#define CEREAL_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:178
GenericInsituStringStream< UTF8<> > InsituStringStream
Insitu string stream with UTF8 encoding.
Definition: stream.h:219
void PutReserve(Stream &stream, size_t count)
Reserve n characters for writing to a stream.
Definition: stream.h:84
void PutN(Stream &stream, Ch c, size_t n)
Put N copies of a character to a stream.
Definition: stream.h:97
void PutUnsafe(Stream &stream, typename Stream::Ch c)
Write character to a stream, presuming buffer is reserved.
Definition: stream.h:91
A read-write string stream.
Definition: stream.h:188
Encoding::Ch Ch
Definition: stream.h:189
void Flush()
Definition: stream.h:203
void Put(Ch c)
Definition: stream.h:199
size_t PutEnd(Ch *begin)
Definition: stream.h:202
size_t Tell()
Definition: stream.h:196
Ch * dst_
Definition: stream.h:209
void Pop(size_t count)
Definition: stream.h:206
GenericInsituStringStream(Ch *src)
Definition: stream.h:191
Ch Peek()
Definition: stream.h:194
Ch * src_
Definition: stream.h:208
Ch * head_
Definition: stream.h:210
Ch * Push(size_t count)
Definition: stream.h:205
Ch * PutBegin()
Definition: stream.h:201
Ch Take()
Definition: stream.h:195
Read-only string stream.
Definition: stream.h:154
size_t PutEnd(Ch *)
Definition: stream.h:166
Ch Peek() const
Definition: stream.h:159
Ch Take()
Definition: stream.h:160
const Ch * head_
Original head of the string.
Definition: stream.h:169
Encoding::Ch Ch
Definition: stream.h:155
void Flush()
Definition: stream.h:165
GenericStringStream(const Ch *src)
Definition: stream.h:157
Ch * PutBegin()
Definition: stream.h:163
void Put(Ch)
Definition: stream.h:164
size_t Tell() const
Definition: stream.h:161
const Ch * src_
Current read position.
Definition: stream.h:168
Provides additional information for stream.
Definition: stream.h:73
@ copyOptimization
Definition: stream.h:79