17#ifndef RAPIDJSON_STREAM_H_
18#define RAPIDJSON_STREAM_H_
22RAPIDJSON_NAMESPACE_BEGIN
61 size_t PutEnd(Ch* begin);
72template<
typename Stream>
79 enum { copyOptimization = 0 };
83template<
typename Stream>
90template<
typename Stream>
96template<
typename Stream,
typename Ch>
99 for (
size_t i = 0; i < n; i++)
109template <
typename Encoding>
111 typedef typename Encoding::Ch Ch;
115 Ch Peek()
const {
return *src_; }
116 Ch Take() {
return *src_++; }
117 size_t Tell()
const {
return static_cast<size_t>(src_ - head_); }
128template <
typename Encoding>
130 enum { copyOptimization = 1 };
143template <
typename Encoding>
145 typedef typename Encoding::Ch Ch;
150 Ch Peek() {
return *src_; }
151 Ch Take() {
return *src_++; }
152 size_t Tell() {
return static_cast<size_t>(src_ - head_); }
157 Ch* PutBegin() {
return dst_ = src_; }
158 size_t PutEnd(Ch* begin) {
return static_cast<size_t>(dst_ - begin); }
161 Ch* Push(
size_t count) { Ch* begin = dst_; dst_ += count;
return begin; }
162 void Pop(
size_t count) { dst_ -= count; }
169template <
typename Encoding>
171 enum { copyOptimization = 1 };
177RAPIDJSON_NAMESPACE_END
Concept for encoding of Unicode characters.
Concept for reading and writing characters.
#define RAPIDJSON_ASSERT(x)
Assertion.
定义 rapidjson.h:402
void PutUnsafe(Stream &stream, typename Stream::Ch c)
Write character to a stream, presuming buffer is reserved.
定义 stream.h:91
void PutN(FileWriteStream &stream, char c, size_t n)
Implement specialized version of PutN() with memset() for better performance.
定义 filewritestream.h:94
void PutReserve(Stream &stream, size_t count)
Reserve n characters for writing to a stream.
定义 stream.h:84
common definitions and configuration
A read-write string stream.
定义 stream.h:144
Read-only string stream.
定义 stream.h:110
const Ch * head_
Original head of the string.
定义 stream.h:125
const Ch * src_
Current read position.
定义 stream.h:124
Provides additional information for stream.
定义 stream.h:73